public void Validate_All_Invalid_Returned(bool dateTimeIsPast, string amount) { // Arrange var model = new PaymentModel { CardHolderName = "Mr Tinkle", CardNumber = "11223344", Cvv = "12", ExpiryDate = dateTimeIsPast ? DateTime.UtcNow.AddDays(-1).ToString() : "123", Amount = decimal.Parse(amount), Currency = "AAA" }; var provider = new PaymentModelValidationProvider(); // Act var res = provider.Validate(model); // Assert var decodedContent = Encoding.UTF8.GetString(res.Content); if (dateTimeIsPast) { // Test: Amount too low, date is in past Assert.AreEqual(decodedContent, "{\"Cvv\":{\"ErrorCode\":\"invalid_cvv\"},\"ExpiryDate\":{\"ErrorCode\":\"expirydate_in_the_past\"},\"Amount\":{\"ErrorCode\":\"amount_too_low\"},\"Currency\":{\"ErrorCode\":\"currency_not_supported\"}}"); } else { // Test: Amount too high, date is incorrect format Assert.AreEqual(decodedContent, "{\"Cvv\":{\"ErrorCode\":\"invalid_cvv\"},\"ExpiryDate\":{\"ErrorCode\":\"incorrect_format\"},\"Amount\":{\"ErrorCode\":\"amount_too_high\"},\"Currency\":{\"ErrorCode\":\"currency_not_supported\"}}"); } }
public void Validate_Test_All_Missing_Errors_Returned() { // Arrange var model = new PaymentModel { }; var provider = new PaymentModelValidationProvider(); // Act var res = provider.Validate(model); // Assert var decodedContent = Encoding.UTF8.GetString(res.Content); Assert.AreEqual(decodedContent, "{\"CardNumber\":{\"ErrorCode\":\"missing\"},\"Cvv\":{\"ErrorCode\":\"missing\"},\"CardHolderName\":{\"ErrorCode\":\"missing\"},\"ExpiryDate\":{\"ErrorCode\":\"missing\"},\"Amount\":{\"ErrorCode\":\"missing\"},\"Currency\":{\"ErrorCode\":\"missing\"}}"); }
public void Validate_All_Passed_Returns_Null() { // Arrange var model = new PaymentModel { CardHolderName = "Mr Tinkle", CardNumber = "4916132996393639", Cvv = "123", ExpiryDate = DateTime.UtcNow.AddDays(1).ToString(), Amount = 5, Currency = "GBP" }; var provider = new PaymentModelValidationProvider(); // Act var res = provider.Validate(model); // Assert Assert.AreEqual(res, null); }