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.

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