public void Function_ReturnsBadRequest_ForMissingDeviceId() { var request = new Mock <HttpRequest>(); request.SetupGet(r => r.Query) .Returns(new QueryCollection()); var principal = new ClaimsPrincipal(new ClaimsIdentity(new[] { new Claim("roles", GetStatusFunction.GetDeviceStatusRoleName) })); var logger = new MockLogger(); var result = GetStatusFunction.Run(request.Object, null, principal, logger); Assert.IsType <BadRequestObjectResult>(result); }
public void Function_ReturnsUnauthorized_ForPrincipalWithNonRequiredRoles() { var request = new Mock <HttpRequest>(); request.SetupGet(r => r.Query) .Returns(new QueryCollection()); var principal = new ClaimsPrincipal(new ClaimsIdentity(new[] { new Claim("SomeRole", "SomeOtherRole") })); var logger = new MockLogger(); var result = GetStatusFunction.Run(request.Object, null, principal, logger); Assert.IsType <UnauthorizedResult>(result); Assert.Contains( logger.Entries, e => e.logLevel == LogLevel.Warning && e.state is IEnumerable <KeyValuePair <string, object> > properties && properties.Any(p => p.Key == "roles" && (string)p.Value == GetStatusFunction.GetDeviceStatusRoleName)); }
public async Task Function_ReturnsBadRequest_ForMissingDeviceId() { var request = new Mock <HttpRequest>(); request.SetupGet(r => r.Query) .Returns(new QueryCollection()); request.Setup(r => r.Headers) .Returns(new HeaderDictionary { [HttpRequestAuthorizationExtensions.ClientPrincipalHeaderKey] = CreatePrincipalWithRoles(GetStatusFunction.GetDeviceStatusRoleName) }); var logger = new MockLogger(); var result = await GetStatusFunction.Run(request.Object, null, logger); Assert.IsType <BadRequestObjectResult>(result); }
public void Function_ReturnsNotFound_ForMissingDocument() { var queryValues = new Dictionary <string, StringValues> { { "deviceId", "device1" } }; var request = new Mock <HttpRequest>(); request.SetupGet(r => r.Query) .Returns(new QueryCollection(queryValues)); var principal = new ClaimsPrincipal(new ClaimsIdentity(new[] { new Claim("roles", GetStatusFunction.GetDeviceStatusRoleName) })); var logger = new MockLogger(); var result = GetStatusFunction.Run(request.Object, null, principal, logger); Assert.IsType <NotFoundResult>(result); }
public async Task Function_ReturnsUnauthorized_ForMissingPrincipalHeader() { var request = new Mock <HttpRequest>(); request.SetupGet(r => r.Query) .Returns(new QueryCollection()); request.Setup(r => r.Headers) .Returns(new HeaderDictionary()); var logger = new MockLogger(); var result = await GetStatusFunction.Run(request.Object, null, logger); Assert.IsType <UnauthorizedResult>(result); Assert.Contains( logger.Entries, e => e.logLevel == LogLevel.Error && e.state is IEnumerable <KeyValuePair <string, object> > properties && properties.Any(p => p.Key == "header" && (string)p.Value == HttpRequestAuthorizationExtensions.ClientPrincipalHeaderKey)); }
public async Task Function_ReturnsUnauthorized_ForPrincipalWithNonRequiredRoles() { var request = new Mock <HttpRequest>(); request.SetupGet(r => r.Query) .Returns(new QueryCollection()); request.Setup(r => r.Headers) .Returns(new HeaderDictionary { [HttpRequestAuthorizationExtensions.ClientPrincipalHeaderKey] = CreatePrincipalWithRoles("SomeRole", "SomeOtherRole") }); var logger = new MockLogger(); var result = await GetStatusFunction.Run(request.Object, null, logger); Assert.IsType <UnauthorizedResult>(result); Assert.Contains( logger.Entries, e => e.logLevel == LogLevel.Warning && e.state is IEnumerable <KeyValuePair <string, object> > properties && properties.Any(p => p.Key == "roles" && (string)p.Value == GetStatusFunction.GetDeviceStatusRoleName)); }
public async Task Function_ReturnsNotFound_ForMissingDocument() { var queryValues = new Dictionary <string, StringValues> { { "deviceId", "device1" } }; var request = new Mock <HttpRequest>(); request.SetupGet(r => r.Query) .Returns(new QueryCollection(queryValues)); request.Setup(r => r.Headers) .Returns(new HeaderDictionary { [HttpRequestAuthorizationExtensions.ClientPrincipalHeaderKey] = CreatePrincipalWithRoles(GetStatusFunction.GetDeviceStatusRoleName) }); var logger = new MockLogger(); var result = await GetStatusFunction.Run(request.Object, null, logger); Assert.IsType <NotFoundResult>(result); }