public void EndpointValidatorDefault() { var validator = new EndpointValidator(); Assert.True(validator.Validate(new Uri("http://google.com"))); Assert.False(validator.Validate(new Uri("https://storagesample.blob.core.windows.net"))); }
public void EndpointValidatorRegexp() { var validator = new EndpointValidator(new[] { "[a-z]+.com" }); Assert.True(validator.Validate(new Uri("http://bing.com"))); Assert.False(validator.Validate(new Uri("http://bing123.com"))); }
public void Validate_HasChildEndpoints_CallsValidateForChildEndpoints() { // When an endpoint has child endpoints, Validate method calls // itself. No nice way to validate this, so setting up the child // endpoints to fail the path validation, and validate that is // happening // Arrange var validator = new EndpointValidator(_actionValidator.Object); var section = new Endpoint { Path = _defaultValidPath, Actions = _defaultValidActionList, Endpoints = new List <Endpoint> { new Endpoint { Path = _defaultInvalidPath, Actions = _defaultValidActionList }, new Endpoint { Path = _defaultInvalidPath, Actions = _defaultValidActionList } } }; // Act var result = validator.Validate(section, _name); // Assert Assert.True(result.HasErrors); Assert.Equal(2, result.Errors.Length); }
public void Validate_InvalidPathAndActionsInArray_MergesErrors() { // Arrange var validator = new EndpointValidator(_actionValidator.Object); var section = new Endpoint { Path = _defaultInvalidPath, Actions = _defaultValidActionList }; var invalidValidationResult = new ValidationResult(); invalidValidationResult.AddError(new SectionName("$"), "Something broke"); _actionValidator.Setup( m => m.Validate(It.IsAny <EndpointAction>(), It.IsAny <SectionName>()) ).Returns(invalidValidationResult); // Act var result = validator.Validate(section, _name); // Assert Assert.True(result.HasErrors); Assert.Equal(2, result.Errors.Length); }
public void EndpointValidatorBlacklist() { var validator = new EndpointValidator(new[] { "google" }, false); Assert.False(validator.Validate(new Uri("http://google.com"))); Assert.True(validator.Validate(new Uri("http://bing.com"))); Assert.True(validator.Validate(new Uri("http://microsoft.com"))); Assert.True(validator.Validate(new Uri("http://visualstudio.com"))); }
public void EndpointValidatorWhitelist() { var validator = new EndpointValidator(new [] { "bing", "microsoft", "visualstudio" }); Assert.False(validator.Validate(new Uri("http://google.com"))); Assert.True(validator.Validate(new Uri("http://bing.com"))); Assert.True(validator.Validate(new Uri("http://microsoft.com"))); Assert.True(validator.Validate(new Uri("http://visualstudio.com"))); }
public void Validate_NullSection_ReturnsSingleError() { // Arrange var validator = new EndpointValidator(_actionValidator.Object); // Act var result = validator.Validate(null, _name); // Assert Assert.True(result.HasErrors); var error = Assert.Single(result.Errors); Assert.Equal(ErrorMessageFormatter.Format("$", "Endpoint is null"), error); }
public void Validate_ValidPath_ReturnsNoError(string path) { // Arrange var validator = new EndpointValidator(_actionValidator.Object); var section = new Endpoint { Path = path, Actions = _defaultValidActionList }; // Act var result = validator.Validate(section, _name); // Assert Assert.False(result.HasErrors); }
public Endpoint Execute(EndpointVO endpointVo) { var matchedEndpoint = dao.FindOne(endpointVo.serialNumber); if (matchedEndpoint == null) { throw new AppException(I18nService.GetTranslate("DONT_HAVE_SERIAL_NUMBER")); } var endpoint = new Endpoint() { serialNumber = endpointVo.serialNumber, }; EndpointValidator.ValidateSwitchState(endpointVo.switchState, endpoint); return(dao.Edit(endpoint)); }
public void Validate_HasEmptyChildEndpointList_ReturnsNoError() { // Arrange var validator = new EndpointValidator(_actionValidator.Object); var section = new Endpoint { Path = _defaultValidPath, Actions = _defaultValidActionList, Endpoints = new List <Endpoint>() }; // Act var result = validator.Validate(section, _name); // Assert Assert.False(result.HasErrors); }
public void Validate_InvalidPath_ReturnsSingleError(string path) { // Arrange var validator = new EndpointValidator(_actionValidator.Object); var section = new Endpoint { Path = path, Actions = _defaultValidActionList }; // Act var result = validator.Validate(section, _name); // Assert Assert.True(result.HasErrors); var error = Assert.Single(result.Errors); Assert.Equal(ErrorMessageFormatter.Format("$.path", $"Invalid path '{path}'. Path can only contain A-Z, a-z, 0-9 and slashes (/)."), error); }
public void Validate_NullAndWhitespacePath_ReturnsSingleError(string path) { // Arrange var validator = new EndpointValidator(_actionValidator.Object); var section = new Endpoint { Path = path, Actions = _defaultValidActionList }; // Act var result = validator.Validate(section, _name); // Assert Assert.True(result.HasErrors); var error = Assert.Single(result.Errors); Assert.Equal(ErrorMessageFormatter.Format("$.path", "Endpoint must have a path"), error); }
public void Validate_EmptyActions_ReturnsSingleError() { // Arrange var validator = new EndpointValidator(_actionValidator.Object); var section = new Endpoint { Path = _defaultValidPath, Actions = new List <EndpointAction>() }; // Act var result = validator.Validate(section, _name); // Assert Assert.True(result.HasErrors); var error = Assert.Single(result.Errors); Assert.Equal(ErrorMessageFormatter.Format("$.actions", $"Actions array must have at least one item"), error); }
public void Validate_NullActions_ReturnsSingleError() { // Arrange var validator = new EndpointValidator(_actionValidator.Object); var section = new Endpoint { Path = _defaultValidPath, Actions = null }; // Act var result = validator.Validate(section, _name); // Assert Assert.True(result.HasErrors); var error = Assert.Single(result.Errors); Assert.Equal(ErrorMessageFormatter.Format("$.actions", $"Endpoints must have an actions array"), error); }
public Endpoint Execute(EndpointVO endpointVo) { if (dao.FindOne(endpointVo.serialNumber) != null) { throw new AppException(I18nService.GetTranslate("SERIAL_NUMBER_DUPLICATED")); } var endpoint = new Endpoint() { serialNumber = endpointVo.serialNumber, meterFirmwareVersion = endpointVo.meterFirmwareVersion, meterNumber = int.Parse(endpointVo.meterNumber), }; EndpointValidator.ValidateModelId(endpointVo.meterModelId, endpoint); EndpointValidator.ValidateSwitchState(endpointVo.switchState, endpoint); return(dao.Create(endpoint)); }
public async Task SuccessFlowCustomInjectorBlockedEndpoint() { var injector = new InjectorMock(); var validator = new EndpointValidator(); validator.AddEndpoint("google.com"); var config = new AspNetCoreCorrelationConfiguration() .WithEndpointValidator(validator); ContextTracingInstrumentation.Enable(config); var correlationId = Guid.NewGuid().ToString(); ContextResolver.SetRequestContext(new CorrelationContext(correlationId)); var client = new HttpClient(); await client.GetAsync("http://google.com"); Assert.False(injector.WasCalled); }
public void Validate_MultipleActionsInArray_CallsActionValidatorForAllActions() { // Arrange var validator = new EndpointValidator(_actionValidator.Object); var action1 = new EndpointAction(); var action2 = new EndpointAction(); var action3 = new EndpointAction(); var section = new Endpoint { Path = _defaultValidPath, Actions = new List <EndpointAction> { action1, action2, action3 } }; // Act var result = validator.Validate(section, _name); // Assert Assert.False(result.HasErrors); _actionValidator.Verify(m => m.Validate( action1, It.Is <SectionName>(s => s.PropertyPath == "$.actions[0]") ), Times.Once()); _actionValidator.Verify(m => m.Validate( action2, It.Is <SectionName>(s => s.PropertyPath == "$.actions[1]") ), Times.Once()); _actionValidator.Verify(m => m.Validate( action3, It.Is <SectionName>(s => s.PropertyPath == "$.actions[2]") ), Times.Once()); }
public void EndpointValidatorEmpty() { var validator = new EndpointValidator(new string[0]); Assert.True(validator.Validate(new Uri("http://google.com"))); }