public async Task ReturnUnauthorizedtResult_WhenOwnerGuidIsNotFoundInClaims() { await Task.Run(() => { // Arrange var authorizeOwnerIntIdAttribute = new AuthorizeOwnerIntIdAttribute(typeof(CategoryOfmRepository)); // Mock ActionConstraintContext var actionContext = new ActionContext( new DefaultHttpContext(), new RouteData(), new ActionDescriptor(), new ModelStateDictionary()); var authorizationFilterContext = new AuthorizationFilterContext(actionContext, new List <IFilterMetadata>()); // Mock ServiceProvider to avoid exception when getting EF Context from Dependency Container var serviceProvider = new Mock <IServiceProvider>(); serviceProvider .Setup(x => x.GetService(typeof(FittifyContext))) .Returns(new FittifyContext(new DbContextOptions <FittifyContext>())); authorizationFilterContext.HttpContext.RequestServices = serviceProvider.Object; // Mock User or the sut exits earlier than reaching the code to be tested var userMock = new Mock <ClaimsPrincipal>(); userMock .SetupGet(x => x.Identity.IsAuthenticated) .Returns(true); //userMock // .Setup(s => s.Claims) // .Returns(new Claim[] { new Claim("sub", "this-is-not-a-guid") }); authorizationFilterContext.HttpContext.User = userMock.Object; authorizationFilterContext.RouteData.Values.Add("id", "1"); // Act authorizeOwnerIntIdAttribute.OnAuthorization(authorizationFilterContext); // Assert var actualObjectResult = JsonConvert.SerializeObject(authorizationFilterContext.Result, new JsonSerializerSettings() { Formatting = Formatting.Indented }).MinifyJson().PrettifyJson(); var expectedObjectResult = @" { ""StatusCode"": 401 } ".MinifyJson().PrettifyJson(); Assert.AreEqual(actualObjectResult, expectedObjectResult); }); }
public async Task ReturnUnauthorizedResult_WhenUserIsNotAuthenticated() { await Task.Run(() => { // Arrange var authorizeOwnerIntIdAttribute = new AuthorizeOwnerIntIdAttribute(typeof(CategoryOfmRepository)); // Mock ActionConstraintContext var actionContext = new ActionContext( new DefaultHttpContext(), new RouteData(), new ActionDescriptor(), new ModelStateDictionary()); var authorizationFilterContext = new AuthorizationFilterContext(actionContext, new List <IFilterMetadata>()); var serviceProvider = new Mock <IServiceProvider>(); serviceProvider .Setup(x => x.GetService(typeof(FittifyContext))) .Returns(new FittifyContext(new DbContextOptions <FittifyContext>())); authorizationFilterContext.HttpContext.RequestServices = serviceProvider.Object; // Act authorizeOwnerIntIdAttribute.OnAuthorization(authorizationFilterContext); // Assert var actualObjectResult = JsonConvert.SerializeObject(authorizationFilterContext.Result, new JsonSerializerSettings() { Formatting = Formatting.Indented }).MinifyJson().PrettifyJson(); var expectedObjectResult = @" { ""StatusCode"": 401 } ".MinifyJson().PrettifyJson(); Assert.AreEqual(actualObjectResult, expectedObjectResult); }); }
public async Task ReturnInternalServerErrorObjectResult_WhenOfmRepositoryCouldNotBeRetrievedFromDependencyContainer() { await Task.Run(() => { // Arrange var authorizeOwnerIntIdAttribute = new AuthorizeOwnerIntIdAttribute(typeof(CategoryOfmRepository)); // Mock ActionConstraintContext var actionContext = new ActionContext( new DefaultHttpContext(), new RouteData(), new ActionDescriptor(), new ModelStateDictionary()); var authorizationFilterContext = new AuthorizationFilterContext(actionContext, new List <IFilterMetadata>()); // Mock ServiceProvider to avoid exception when getting EF Context from Dependency Container var serviceProvider = new Mock <IServiceProvider>(); serviceProvider .Setup(x => x.GetService(typeof(FittifyContext))) .Returns(new FittifyContext(new DbContextOptions <FittifyContext>())); authorizationFilterContext.HttpContext.RequestServices = serviceProvider.Object; // Mock User or the sut exits earlier than reaching the code to be tested var userMock = new Mock <ClaimsPrincipal>(); userMock .SetupGet(x => x.Identity.IsAuthenticated) .Returns(true); userMock .Setup(s => s.Claims) .Returns(new Claim[] { new Claim("sub", "00000000-0000-0000-0000-000000000000") }); authorizationFilterContext.HttpContext.User = userMock.Object; authorizationFilterContext.RouteData.Values.Add("id", "1"); // Act authorizeOwnerIntIdAttribute.OnAuthorization(authorizationFilterContext); // Assert var actualObjectResult = JsonConvert.SerializeObject(authorizationFilterContext.Result, new JsonSerializerSettings() { Formatting = Formatting.Indented }).MinifyJson().PrettifyJson(); var expectedObjectResult = @" { ""Value"": { ""_ofmRepository"": [ ""_ofmRepository could not be retrieved from dependency container and must not be null"" ] }, ""Formatters"": [], ""ContentTypes"": [], ""DeclaredType"": null, ""StatusCode"": 500 } ".MinifyJson().PrettifyJson(); Assert.AreEqual(actualObjectResult, expectedObjectResult); }); }