From 4b1467a7b9d61616692204255693f4ea80b40fad Mon Sep 17 00:00:00 2001 From: Cesar De la Torre Date: Tue, 2 May 2017 17:42:59 -0700 Subject: [PATCH] Fixing the CreateOrderCommand so it is 100% immutable. It shouldn't have the AddOrderItem() method. In any case, it was not really used but in the tets, since this Command is serialized in the client side, then deserialized in the service level. --- .../Commands/CreateOrderCommand.cs | 8 ++----- .../Services/Ordering/OrderingScenarios.cs | 21 +++++++++------- .../Services/Ordering/OrderingScenarios.cs | 24 ++++++++++++------- .../IdentifierCommandHandlerTest.cs | 1 + .../Application/NewOrderCommandHandlerTest.cs | 1 + 5 files changed, 31 insertions(+), 24 deletions(-) diff --git a/src/Services/Ordering/Ordering.API/Application/Commands/CreateOrderCommand.cs b/src/Services/Ordering/Ordering.API/Application/Commands/CreateOrderCommand.cs index 1485a536f..950c4bdc5 100644 --- a/src/Services/Ordering/Ordering.API/Application/Commands/CreateOrderCommand.cs +++ b/src/Services/Ordering/Ordering.API/Application/Commands/CreateOrderCommand.cs @@ -61,20 +61,16 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands [DataMember] public IEnumerable OrderItems => _orderItems; - public void AddOrderItem(OrderItemDTO item) - { - _orderItems.Add(item); - } - public CreateOrderCommand() { _orderItems = new List(); } - public CreateOrderCommand(string city, string street, string state, string country, string zipcode, + public CreateOrderCommand(List orderItems, string city, string street, string state, string country, string zipcode, string cardNumber, string cardHolderName, DateTime cardExpiration, string cardSecurityNumber, int cardTypeId, int paymentId, int buyerId) : this() { + _orderItems = orderItems; City = city; Street = street; State = state; diff --git a/test/Services/FunctionalTests/Services/Ordering/OrderingScenarios.cs b/test/Services/FunctionalTests/Services/Ordering/OrderingScenarios.cs index 5f52e1771..5b2424114 100644 --- a/test/Services/FunctionalTests/Services/Ordering/OrderingScenarios.cs +++ b/test/Services/FunctionalTests/Services/Ordering/OrderingScenarios.cs @@ -45,7 +45,19 @@ namespace FunctionalTests.Services.Ordering string BuildOrder() { + List orderItemsList = new List(); + orderItemsList.Add(new OrderItemDTO() + { + ProductId = 1, + Discount = 8M, + UnitPrice = 10, + Units = 1, + ProductName = "Some name" + } + ); + var order = new CreateOrderCommand( + orderItemsList, cardExpiration: DateTime.UtcNow.AddYears(1), cardNumber: "5145-555-5555", cardHolderName: "Jhon Senna", @@ -60,15 +72,6 @@ namespace FunctionalTests.Services.Ordering buyerId: 3 ); - order.AddOrderItem(new OrderItemDTO() - { - ProductId = 1, - Discount = 8M, - UnitPrice = 10, - Units = 1, - ProductName = "Some name" - }); - return JsonConvert.SerializeObject(order); } } diff --git a/test/Services/IntegrationTests/Services/Ordering/OrderingScenarios.cs b/test/Services/IntegrationTests/Services/Ordering/OrderingScenarios.cs index 3e2350c9d..49f04fa3b 100644 --- a/test/Services/IntegrationTests/Services/Ordering/OrderingScenarios.cs +++ b/test/Services/IntegrationTests/Services/Ordering/OrderingScenarios.cs @@ -9,7 +9,9 @@ using System.Text; using System.Threading.Tasks; using Xunit; + using System.Collections; using static Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands.CreateOrderCommand; + using System.Collections.Generic; public class OrderingScenarios : OrderingScenarioBase @@ -59,7 +61,19 @@ string BuildOrder() { + List orderItemsList = new List(); + orderItemsList.Add(new OrderItemDTO() + { + ProductId = 1, + Discount = 10M, + UnitPrice = 10, + Units = 1, + ProductName = "Some name" + } + ); + var order = new CreateOrderCommand( + orderItemsList, cardExpiration: DateTime.UtcNow.AddYears(1), cardNumber: "5145-555-5555", cardHolderName: "Jhon Senna", @@ -74,20 +88,12 @@ buyerId: 1 ); - order.AddOrderItem(new OrderItemDTO() - { - ProductId = 1, - Discount = 10M, - UnitPrice = 10, - Units = 1, - ProductName = "Some name" - }); - return JsonConvert.SerializeObject(order); } string BuildOrderWithInvalidExperationTime() { var order = new CreateOrderCommand( + null, cardExpiration: DateTime.UtcNow.AddYears(-1), cardNumber: "5145-555-5555", cardHolderName: "Jhon Senna", diff --git a/test/Services/UnitTest/Ordering/Application/IdentifierCommandHandlerTest.cs b/test/Services/UnitTest/Ordering/Application/IdentifierCommandHandlerTest.cs index 66070c497..2a4a356ec 100644 --- a/test/Services/UnitTest/Ordering/Application/IdentifierCommandHandlerTest.cs +++ b/test/Services/UnitTest/Ordering/Application/IdentifierCommandHandlerTest.cs @@ -70,6 +70,7 @@ namespace UnitTest.Ordering.Application private CreateOrderCommand FakeOrderRequest(Dictionary args = null) { return new CreateOrderCommand( + null, city: args != null && args.ContainsKey("city") ? (string)args["city"] : null, street: args != null && args.ContainsKey("street") ? (string)args["street"] : null, state: args != null && args.ContainsKey("state") ? (string)args["state"] : null, diff --git a/test/Services/UnitTest/Ordering/Application/NewOrderCommandHandlerTest.cs b/test/Services/UnitTest/Ordering/Application/NewOrderCommandHandlerTest.cs index 22760fc7d..9a4a70bf8 100644 --- a/test/Services/UnitTest/Ordering/Application/NewOrderCommandHandlerTest.cs +++ b/test/Services/UnitTest/Ordering/Application/NewOrderCommandHandlerTest.cs @@ -72,6 +72,7 @@ namespace UnitTest.Ordering.Application private CreateOrderCommand FakeOrderRequestWithBuyer(Dictionary args = null) { return new CreateOrderCommand( + null, city: args != null && args.ContainsKey("city") ? (string)args["city"] : null, street: args != null && args.ContainsKey("street") ? (string)args["street"] : null, state: args != null && args.ContainsKey("state") ? (string)args["state"] : null,