public async Task ApplySecurityContractAsync_WithNullInput_ReturnsBadRequest() { // Arrange var securityContractService = Substitute.For <ISecurityContractService>(); var controller = new SecurityContractController(securityContractService); // Act var actionResult = await controller.ApplySecurityContractAsync(null); // Assert var badRequestResult = actionResult as BadRequestResult; Assert.NotNull(badRequestResult); }
public async Task ApplySecurityContractAsync_WithValidNoSectionsInput_ReturnsNoContent() { // Arrange var securityContractService = Substitute.For <ISecurityContractService>(); var controller = new SecurityContractController(securityContractService); // A security contract with all it's sub components set to null is a valid security contract. var securityContract = new SecurityContract(); // Act var actionResult = await controller.ApplySecurityContractAsync(securityContract); // Assert var NoContent = actionResult as NoContentResult; Assert.NotNull(NoContent); }
public async Task GetSecurityContractAsync_Executed_ReturnsSecurityContract() { // Arrange var securityContractService = Substitute.For <ISecurityContractService>(); var controller = new SecurityContractController(securityContractService); // A security contract with all it's sub components set to null is a valid security contract. var securityContract = new SecurityContract(); securityContract.Applications = new List <SecurityContractApplication> { new SecurityContractApplication { Fullname = "Test application" } }; securityContract.Clients = new List <Oauth2ClientSubmit> { new Oauth2ClientSubmit { ClientId = "test-client-id", Name = "Test-Client-Name", AllowedOfflineAccess = true, AllowedCorsOrigins = new List <string> { "http://test-cors-origin.com" }, ClientSecrets = new List <string> { "test-client-secret" }, PostLogoutRedirectUris = new List <string> { "http://test-post-logout-uri.com" }, AllowedGrantTypes = new List <string> { "password" }, AllowedScopes = new List <string> { "test-client-scope" }, RedirectUris = new List <string> { "http://test-redirect-uri.com" } } }; securityContract.DefaultConfigurations = new List <SecurityContractDefaultConfiguration> { new SecurityContractDefaultConfiguration { Name = "test default configuration" } }; securityContractService.GetSecurityContractDefinitionAsync().Returns(securityContract); // Act var actionResult = await controller.GetSecurityContractAsync(); // Assert var okResult = actionResult as OkObjectResult; Assert.NotNull(okResult); var outContract = okResult.Value as SecurityContract; Assert.NotNull(outContract); Assert.True(outContract != null, "Retrieved security contract should not be null"); Assert.True(outContract.Clients != null && outContract.Clients.Count > 0, "Retrieved security contract Clients should not be null or empty"); Assert.True(outContract.Applications != null && outContract.Applications.Count > 0, "Retrieved security contract Applications should not be null or empty"); Assert.True(outContract.DefaultConfigurations != null && outContract.DefaultConfigurations.Count > 0, "Retrieved security contract DefaultConfigurations should not be null or empty"); Assert.True(outContract.Clients[0].Name == "Test-Client-Name", "Retrieved client Name should be 'Test-Client-Name'"); Assert.True(outContract.Applications[0].Fullname == "Test application", "Retrieved Applications Fullname should be 'Test application'"); Assert.True(outContract.DefaultConfigurations[0].Name == "test default configuration", "Retrieved DefaultConfigurations name should be 'test default configuration'"); }