You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

93 lines
2.5 KiB

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<ArgumentNullException>(() => 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<ArgumentException>(() => 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<ArgumentException>(() => 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<ArgumentException>(() => fakeOrderItem.AddUnits(-1));
}
}