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.

126 lines
3.7 KiB

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