From 9669d433a674c35384f5bd6245ef1238338cbee6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ram=C3=B3n=20Tom=C3=A1s?= Date: Tue, 14 Mar 2017 18:58:27 +0100 Subject: [PATCH] Added unit tests for entity domain events --- .../Ordering/Domain/BuyerAggregateTest.cs | 21 ++++++ .../Ordering/Domain/OrderAggregateTest.cs | 72 +++++++++++++++++++ 2 files changed, 93 insertions(+) diff --git a/test/Services/UnitTest/Ordering/Domain/BuyerAggregateTest.cs b/test/Services/UnitTest/Ordering/Domain/BuyerAggregateTest.cs index 1ffb8f6ca..2cf035205 100644 --- a/test/Services/UnitTest/Ordering/Domain/BuyerAggregateTest.cs +++ b/test/Services/UnitTest/Ordering/Domain/BuyerAggregateTest.cs @@ -103,4 +103,25 @@ public class BuyerAggregateTest //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.AddPaymentMethod(cardTypeId, alias, cardNumber, cardSecurityNumber, cardHolderName, cardExpiration, orderId); + + //Assert + Assert.Equal(fakeBuyer.Events.Count, expectedResult); + } } \ No newline at end of file diff --git a/test/Services/UnitTest/Ordering/Domain/OrderAggregateTest.cs b/test/Services/UnitTest/Ordering/Domain/OrderAggregateTest.cs index 5aefbf0c6..dab34f528 100644 --- a/test/Services/UnitTest/Ordering/Domain/OrderAggregateTest.cs +++ b/test/Services/UnitTest/Ordering/Domain/OrderAggregateTest.cs @@ -1,4 +1,5 @@ using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate; +using Ordering.Domain.Events; using System; using Xunit; @@ -90,4 +91,75 @@ public class OrderAggregateTest //Assert Assert.Throws(() => fakeOrderItem.AddUnits(-1)); } + + [Fact] + public void Add_new_Order_raises_new_event() + { + //Arrange + var street = "fakeStreet"; + var city = "FakeCity"; + var state = "fakeState"; + var country = "fakeCountry"; + var zipcode = "FakeZipCode"; + var cardTypeId = 5; + var cardNumber = "12"; + var cardSecurityNumber = "123"; + var cardHolderName = "FakeName"; + var cardExpiration = DateTime.Now.AddYears(1); + var expectedResult = 1; + + //Act + var fakeOrder = new Order(new Address(street, city, state, country, zipcode), cardTypeId, cardNumber, cardSecurityNumber, cardHolderName, cardExpiration); + + //Assert + Assert.Equal(fakeOrder.Events.Count, expectedResult); + } + + [Fact] + public void Add_event_Order_explicitly_raises_new_event() + { + //Arrange + var street = "fakeStreet"; + var city = "FakeCity"; + var state = "fakeState"; + var country = "fakeCountry"; + var zipcode = "FakeZipCode"; + var cardTypeId = 5; + var cardNumber = "12"; + var cardSecurityNumber = "123"; + var cardHolderName = "FakeName"; + var cardExpiration = DateTime.Now.AddYears(1); + var expectedResult = 2; + + //Act + var fakeOrder = new Order(new Address(street, city, state, country, zipcode), cardTypeId, cardNumber, cardSecurityNumber, cardHolderName, cardExpiration); + fakeOrder.AddEvent(new OrderCreated(fakeOrder,cardTypeId,cardNumber,cardSecurityNumber,cardHolderName,cardExpiration)); + //Assert + Assert.Equal(fakeOrder.Events.Count, expectedResult); + } + + [Fact] + public void Remove_event_Order_explicitly() + { + //Arrange + var street = "fakeStreet"; + var city = "FakeCity"; + var state = "fakeState"; + var country = "fakeCountry"; + var zipcode = "FakeZipCode"; + var cardTypeId = 5; + var cardNumber = "12"; + var cardSecurityNumber = "123"; + var cardHolderName = "FakeName"; + var cardExpiration = DateTime.Now.AddYears(1); + var fakeOrder = new Order(new Address(street, city, state, country, zipcode), cardTypeId, cardNumber, cardSecurityNumber, cardHolderName, cardExpiration); + var @fakeEvent = new OrderCreated(fakeOrder, cardTypeId, cardNumber, cardSecurityNumber, cardHolderName, cardExpiration); + var expectedResult = 1; + + //Act + fakeOrder.AddEvent(@fakeEvent); + fakeOrder.RemoveEvent(@fakeEvent); + //Assert + Assert.Equal(fakeOrder.Events.Count, expectedResult); + } } \ No newline at end of file