public void Validate_ResponseStreamIsNotValidJson_ValidationFails() { // Arrange const string content = "Some non-JSON content"; JsonContentValidator validator = new JsonContentValidator(); ResponseDataMock responseData = CreateDefaultResponseDataMock(content); // Act ValidationResult validationResult = validator.Validate(responseData, null, null); // Assert Assert.IsTrue(validationResult.HasFailures); }
public void Validate_ValidatingBooleanPropertyWithNoExpectedValueAndNoExpectedStateKey_ValidationSucceeds() { // Arrange const string content = "{ propertyName: 'true' }"; JsonContentValidator validator = new JsonContentValidator( new JsonContentValidator.JsonBooleanPropertyValidator("propertyName", true, false, false, null)); ResponseDataMock responseData = CreateDefaultResponseDataMock(content); // Act ValidationResult validationResult = validator.Validate(responseData, null, null); // Assert Assert.IsFalse(validationResult.HasFailures); }
public void Validate_ValidatingStringPropertyWithIsRequiredSetToTrue_ValidationSucceeds() { // Arrange const string content = "{ propertyName: 'value' }"; JsonContentValidator validator = new JsonContentValidator( new JsonContentValidator.JsonStringPropertyValidator("propertyName", true, "value", false, null, null)); ResponseDataMock responseData = CreateDefaultResponseDataMock(content); // Act ValidationResult validationResult = validator.Validate(responseData, null, null); // Assert Assert.IsFalse(validationResult.HasFailures); }
public void Validate_ValidatingStringArrayPropertyWithActualValueAsEmptyArrayAndIsRequiredSetToTrue_ValidationFails() { // Arrange const string content = "{ propertyName: [] }"; JsonContentValidator validator = new JsonContentValidator( new JsonContentValidator.JsonArrayPropertyValidator("propertyName", true, "value", false, null)); ResponseDataMock responseData = CreateDefaultResponseDataMock(content); // Act ValidationResult validationResult = validator.Validate(responseData, null, null); // Assert Assert.IsTrue(validationResult.HasFailures); }
public void Validate_NotRequiredValidatingAbsoluteUrlPropertyWithNoValue_ValidationSucceeds() { // Arrange const string content = "{ }"; JsonContentValidator validator = new JsonContentValidator( new JsonContentValidator.JsonAbsoluteUrlPropertyValidator("propertyName", false, null)); ResponseDataMock responseData = CreateDefaultResponseDataMock(content); // Act ValidationResult validationResult = validator.Validate(responseData, null, null); // Assert Assert.IsFalse(validationResult.HasFailures); }
public void Validate_ValidatingAbsoluteUrlPropertyWithCorrectValue_RequiresAccessToken_ValidationSucceeds() { // Arrange const string content = "{ propertyName: 'https://contoso.com/?access_token=abc123' }"; JsonContentValidator validator = new JsonContentValidator( new JsonContentValidator.JsonAbsoluteUrlPropertyValidator("propertyName", false, true, null)); ResponseDataMock responseData = CreateDefaultResponseDataMock(content); // Act ValidationResult validationResult = validator.Validate(responseData, null, null); // Assert Assert.IsFalse(validationResult.HasFailures); }
public void Validate_ValidatingStringArrayPropertyIgnoresCase_ValidationSucceeds() { // Arrange const string content = "{ propertyName: ['value', 'value2'] }"; JsonContentValidator validator = new JsonContentValidator( new JsonContentValidator.JsonArrayPropertyValidator("propertyName", true, "Value", false, null)); ResponseDataMock responseData = CreateDefaultResponseDataMock(content); // Act ValidationResult validationResult = validator.Validate(responseData, null, null); // Assert Assert.IsFalse(validationResult.HasFailures); }
public void Validate_ValidatingStringArrayPropertyWithExpectedValueNotPresent_ValidationFails() { // Arrange const string content = "{ propertyName: ['value', 'value2'] }"; JsonContentValidator validator = new JsonContentValidator( new JsonContentValidator.JsonArrayPropertyValidator("propertyName", true, "differentValue", true, null)); ResponseDataMock responseData = CreateDefaultResponseDataMock(content); // Act ValidationResult validationResult = validator.Validate(responseData, null, null); // Assert Assert.IsTrue(validationResult.HasFailures); }
public void Validate_ValidatingAbsoluteUrlPropertyWithIncorrectValue_ValidationFails() { // Arrange const string content = "{ propertyName: 'bing.com' }"; JsonContentValidator validator = new JsonContentValidator( new JsonContentValidator.JsonAbsoluteUrlPropertyValidator("propertyName", false, null)); ResponseDataMock responseData = CreateDefaultResponseDataMock(content); // Act ValidationResult validationResult = validator.Validate(responseData, null, null); // Assert Assert.IsTrue(validationResult.HasFailures); }
public void Validate_ValidatingIntegerPropertyWithIncorrectExpectedValueAndNoExpectedState_ValidationFails() { // Arrange const string content = "{ propertyName: '2' }"; JsonContentValidator validator = new JsonContentValidator( new JsonContentValidator.JsonIntegerPropertyValidator("propertyName", true, 3, true, null)); ResponseDataMock responseData = CreateDefaultResponseDataMock(content); // Act ValidationResult validationResult = validator.Validate(responseData, null, null); // Assert Assert.IsTrue(validationResult.HasFailures); }
public void Validate_ValidatingStringPropertyEndsWith_ValidationFails() { // Arrange const string content = "{ propertyName: 'propertyValueSuffix' }"; JsonContentValidator validator = new JsonContentValidator( new JsonContentValidator.JsonStringPropertyValidator("propertyName", true, "propertyValueSuffix", true, "Value", null)); ResponseDataMock responseData = CreateDefaultResponseDataMock(content); // Act ValidationResult validationResult = validator.Validate(responseData, null, null); // Assert Assert.IsTrue(validationResult.HasFailures); }
public void Validate_ValidatingBooleanPropertyWithNonBooleanActualValue_ValidationFails() { // Arrange const string content = "{ propertyName: 'value' }"; JsonContentValidator validator = new JsonContentValidator( new JsonContentValidator.JsonBooleanPropertyValidator("propertyName", true, true, true, null)); ResponseDataMock responseData = CreateDefaultResponseDataMock(content); // Act ValidationResult validationResult = validator.Validate(responseData, null, null); // Assert Assert.IsTrue(validationResult.HasFailures); }
public void Validate_ResponseStreamIsNull_ValidationFails() { // Arrange JsonContentValidator validator = new JsonContentValidator(); ResponseDataMock responseData = new ResponseDataMock { ResponseStream = null }; // Act ValidationResult validationResult = validator.Validate(responseData, null, null); // Assert Assert.IsTrue(validationResult.HasFailures); }
public void Validate_ValidatingIntegerPropertyWithCorrectExpectedStateValue_ValidationSucceeds() { // Arrange const string content = "{ propertyName: '2' }"; Dictionary <string, string> savedState = new Dictionary <string, string>() { { "StateKey", "2" } }; JsonContentValidator validator = new JsonContentValidator( new JsonContentValidator.JsonIntegerPropertyValidator("propertyName", true, 1, true, "StateKey")); ResponseDataMock responseData = CreateDefaultResponseDataMock(content); // Act ValidationResult validationResult = validator.Validate(responseData, null, savedState); // Assert Assert.IsFalse(validationResult.HasFailures); }
public void Validate_ValidatingStringArrayPropertyWithExpectedValueNotPresentAndIncorrectExpectedStateValue_ValidationFails() { // Arrange const string content = "{ propertyName: ['value', 'value2'] }"; Dictionary <string, string> savedState = new Dictionary <string, string>() { { "StateKey", "incorrect value" } }; JsonContentValidator validator = new JsonContentValidator( new JsonContentValidator.JsonArrayPropertyValidator("propertyName", true, "incorrect value", true, "StateKey")); ResponseDataMock responseData = CreateDefaultResponseDataMock(content); // Act ValidationResult validationResult = validator.Validate(responseData, null, savedState); // Assert Assert.IsTrue(validationResult.HasFailures); }
public void Validate_ValidatingBooleanPropertyWithNoExpectedValueAndNonBooleanExpectedStateValue_ValidationFails() { // Arrange const string content = "{ propertyName: '2' }"; Dictionary <string, string> savedState = new Dictionary <string, string>() { { "StateKey", "non boolean" } }; JsonContentValidator validator = new JsonContentValidator( new JsonContentValidator.JsonBooleanPropertyValidator("propertyName", true, false, false, "StateKey")); ResponseDataMock responseData = CreateDefaultResponseDataMock(content); // Act ValidationResult validationResult = validator.Validate(responseData, null, savedState); // Assert Assert.IsTrue(validationResult.HasFailures); }
public void Validate_Null_Content_String_Validation_Fails() { // Arrange const string content = ""; JsonContentValidator validator = new JsonContentValidator( new JsonContentValidator.JsonStringPropertyValidator("propertyName", true, "value", true, null, null)); ResponseDataMock responseData = new ResponseDataMock { ResponseStream = new MemoryStream(Encoding.UTF8.GetBytes(content)), ResponseContentText = null, IsTextResponse = true }; // Act ValidationResult validationResult = validator.Validate(responseData, null, null); // Assert Assert.IsTrue(validationResult.HasFailures); }