|
|
- using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate;
- using Ordering.Domain.Exceptions;
- using System;
- using Xunit;
-
- public class BuyerAggregateTest
- {
- public BuyerAggregateTest()
- { }
-
- [Fact]
- public void Create_buyer_item_success()
- {
- //Arrange
- var identity = new Guid().ToString();
-
- //Act
- var fakeBuyerItem = new Buyer(identity);
-
- //Assert
- Assert.NotNull(fakeBuyerItem);
- }
-
- [Fact]
- public void Create_buyer_item_fail()
- {
- //Arrange
- var identity = string.Empty;
-
- //Act - Assert
- Assert.Throws<ArgumentNullException>(() => new Buyer(identity));
- }
-
- [Fact]
- public void add_payment_success()
- {
- //Arrange
- var cardTypeId = 1;
- var alias = "fakeAlias";
- var cardNumber = "124";
- var securityNumber = "1234";
- var cardHolderName = "FakeHolderNAme";
- var expiration = DateTime.Now.AddYears(1);
- var orderId = 1;
- var identity = new Guid().ToString();
- var fakeBuyerItem = new Buyer(identity);
-
- //Act
- var result = fakeBuyerItem.VerifyOrAddPaymentMethod(cardTypeId, alias, cardNumber, securityNumber, cardHolderName, expiration, orderId);
-
- //Assert
- Assert.NotNull(result);
- }
-
- [Fact]
- public void create_payment_method_success()
- {
- //Arrange
- var cardTypeId = 1;
- var alias = "fakeAlias";
- var cardNumber = "124";
- var securityNumber = "1234";
- var cardHolderName = "FakeHolderNAme";
- var expiration = DateTime.Now.AddYears(1);
- var fakePaymentMethod = new PaymentMethod(cardTypeId, alias, cardNumber, securityNumber, cardHolderName, expiration);
-
- //Act
- var result = new PaymentMethod(cardTypeId, alias, cardNumber, securityNumber, cardHolderName, expiration);
-
- //Assert
- Assert.NotNull(result);
- }
-
- [Fact]
- public void create_payment_method_expiration_fail()
- {
- //Arrange
- var cardTypeId = 1;
- var alias = "fakeAlias";
- var cardNumber = "124";
- var securityNumber = "1234";
- var cardHolderName = "FakeHolderNAme";
- var expiration = DateTime.Now.AddYears(-1);
-
- //Act - Assert
- Assert.Throws<OrderingDomainException>(() => new PaymentMethod(cardTypeId, alias, cardNumber, securityNumber, cardHolderName, expiration));
- }
-
- [Fact]
- public void payment_method_isEqualTo()
- {
- //Arrange
- var cardTypeId = 1;
- var alias = "fakeAlias";
- var cardNumber = "124";
- var securityNumber = "1234";
- var cardHolderName = "FakeHolderNAme";
- var expiration = DateTime.Now.AddYears(1);
-
- //Act
- var fakePaymentMethod = new PaymentMethod(cardTypeId, alias, cardNumber, securityNumber, cardHolderName, expiration);
- var result = fakePaymentMethod.IsEqualTo(cardTypeId, cardNumber, expiration);
-
- //Assert
- Assert.True(result);
- }
-
- [Fact]
- public void Add_new_PaymentMethod_raises_new_event()
- {
- //Arrange
- var alias = "fakeAlias";
- var orderId = 1;
- var cardTypeId = 5;
- var cardNumber = "12";
- var cardSecurityNumber = "123";
- var cardHolderName = "FakeName";
- var cardExpiration = DateTime.Now.AddYears(1);
- var expectedResult = 1;
-
- //Act
- var fakeBuyer = new Buyer(Guid.NewGuid().ToString());
- fakeBuyer.VerifyOrAddPaymentMethod(cardTypeId, alias, cardNumber, cardSecurityNumber, cardHolderName, cardExpiration, orderId);
-
- //Assert
- Assert.Equal(fakeBuyer.DomainEvents.Count, expectedResult);
- }
- }
|