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.

127 lines
3.7 KiB

  1. using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate;
  2. using Ordering.Domain.Exceptions;
  3. using System;
  4. using Xunit;
  5. public class BuyerAggregateTest
  6. {
  7. public BuyerAggregateTest()
  8. { }
  9. [Fact]
  10. public void Create_buyer_item_success()
  11. {
  12. //Arrange
  13. var identity = new Guid().ToString();
  14. //Act
  15. var fakeBuyerItem = new Buyer(identity);
  16. //Assert
  17. Assert.NotNull(fakeBuyerItem);
  18. }
  19. [Fact]
  20. public void Create_buyer_item_fail()
  21. {
  22. //Arrange
  23. var identity = string.Empty;
  24. //Act - Assert
  25. Assert.Throws<ArgumentNullException>(() => new Buyer(identity));
  26. }
  27. [Fact]
  28. public void add_payment_success()
  29. {
  30. //Arrange
  31. var cardTypeId = 1;
  32. var alias = "fakeAlias";
  33. var cardNumber = "124";
  34. var securityNumber = "1234";
  35. var cardHolderName = "FakeHolderNAme";
  36. var expiration = DateTime.Now.AddYears(1);
  37. var orderId = 1;
  38. var identity = new Guid().ToString();
  39. var fakeBuyerItem = new Buyer(identity);
  40. //Act
  41. var result = fakeBuyerItem.VerifyOrAddPaymentMethod(cardTypeId, alias, cardNumber, securityNumber, cardHolderName, expiration, orderId);
  42. //Assert
  43. Assert.NotNull(result);
  44. }
  45. [Fact]
  46. public void create_payment_method_success()
  47. {
  48. //Arrange
  49. var cardTypeId = 1;
  50. var alias = "fakeAlias";
  51. var cardNumber = "124";
  52. var securityNumber = "1234";
  53. var cardHolderName = "FakeHolderNAme";
  54. var expiration = DateTime.Now.AddYears(1);
  55. var fakePaymentMethod = new PaymentMethod(cardTypeId, alias, cardNumber, securityNumber, cardHolderName, expiration);
  56. //Act
  57. var result = new PaymentMethod(cardTypeId, alias, cardNumber, securityNumber, cardHolderName, expiration);
  58. //Assert
  59. Assert.NotNull(result);
  60. }
  61. [Fact]
  62. public void create_payment_method_expiration_fail()
  63. {
  64. //Arrange
  65. var cardTypeId = 1;
  66. var alias = "fakeAlias";
  67. var cardNumber = "124";
  68. var securityNumber = "1234";
  69. var cardHolderName = "FakeHolderNAme";
  70. var expiration = DateTime.Now.AddYears(-1);
  71. //Act - Assert
  72. Assert.Throws<OrderingDomainException>(() => new PaymentMethod(cardTypeId, alias, cardNumber, securityNumber, cardHolderName, expiration));
  73. }
  74. [Fact]
  75. public void payment_method_isEqualTo()
  76. {
  77. //Arrange
  78. var cardTypeId = 1;
  79. var alias = "fakeAlias";
  80. var cardNumber = "124";
  81. var securityNumber = "1234";
  82. var cardHolderName = "FakeHolderNAme";
  83. var expiration = DateTime.Now.AddYears(1);
  84. //Act
  85. var fakePaymentMethod = new PaymentMethod(cardTypeId, alias, cardNumber, securityNumber, cardHolderName, expiration);
  86. var result = fakePaymentMethod.IsEqualTo(cardTypeId, cardNumber, expiration);
  87. //Assert
  88. Assert.True(result);
  89. }
  90. [Fact]
  91. public void Add_new_PaymentMethod_raises_new_event()
  92. {
  93. //Arrange
  94. var alias = "fakeAlias";
  95. var orderId = 1;
  96. var cardTypeId = 5;
  97. var cardNumber = "12";
  98. var cardSecurityNumber = "123";
  99. var cardHolderName = "FakeName";
  100. var cardExpiration = DateTime.Now.AddYears(1);
  101. var expectedResult = 1;
  102. //Act
  103. var fakeBuyer = new Buyer(Guid.NewGuid().ToString());
  104. fakeBuyer.VerifyOrAddPaymentMethod(cardTypeId, alias, cardNumber, cardSecurityNumber, cardHolderName, cardExpiration, orderId);
  105. //Assert
  106. Assert.Equal(fakeBuyer.DomainEvents.Count, expectedResult);
  107. }
  108. }