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