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(() => 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(() => 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); } }