using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate; using System; using Xunit; public class OrderAggregateTest { public OrderAggregateTest() { } [Fact] public void Create_order_item_success() { //Arrange var productId = 1; var productName = "FakeProductName"; var unitPrice = 12; var discount = 15; var pictureUrl = "FakeUrl"; var units = 5; //Act var fakeOrderItem = new OrderItem(productId, productName, unitPrice, discount, pictureUrl, units); //Assert Assert.NotNull(fakeOrderItem); } [Fact] public void Invalid_number_of_units() { //Arrange var productId = 1; var productName = "FakeProductName"; var unitPrice = 12; var discount = 15; var pictureUrl = "FakeUrl"; var units = -1; //Act - Assert Assert.Throws(() => new OrderItem(productId, productName, unitPrice, discount, pictureUrl, units)); } [Fact] public void Invalid_total_of_order_item_lower_than_discount_applied() { //Arrange var productId = 1; var productName = "FakeProductName"; var unitPrice = 12; var discount = 15; var pictureUrl = "FakeUrl"; var units = 1; //Act - Assert Assert.Throws(() => new OrderItem(productId, productName, unitPrice, discount, pictureUrl, units)); } [Fact] public void Invalid_discount_setting() { //Arrange var productId = 1; var productName = "FakeProductName"; var unitPrice = 12; var discount = 15; var pictureUrl = "FakeUrl"; var units = 5; //Act var fakeOrderItem = new OrderItem(productId, productName, unitPrice, discount, pictureUrl, units); //Assert Assert.Throws(() => fakeOrderItem.SetNewDiscount(-1)); } [Fact] public void Invalid_units_setting() { //Arrange var productId = 1; var productName = "FakeProductName"; var unitPrice = 12; var discount = 15; var pictureUrl = "FakeUrl"; var units = 5; //Act var fakeOrderItem = new OrderItem(productId, productName, unitPrice, discount, pictureUrl, units); //Assert Assert.Throws(() => fakeOrderItem.AddUnits(-1)); } }