public async Task <IActionResult> PutWhitelistedResource([FromRoute] int id, [FromBody] WhitelistedResource whitelistedResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != whitelistedResource.Id) { return(BadRequest()); } _whitelistedResourceRepository.Edit(whitelistedResource); try { await _whitelistedResourceRepository.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!WhitelistedResourceExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public void WhitelistedResourceRepository_Edit_ShouldNotSaveEntitiesWithExistingBasePaths() { using (var context = _whitelistedResourceRepository.New()) { // Arrange for (var i = 0; i < 2; i++) { var whitelistedResource = new WhitelistedResource() { BasePath = $@"index{i}.php" }; context.Add(whitelistedResource); context.SaveChanges(); } var secondEntity = context.FindBy(x => x.BasePath == @"index1.php").Single(); secondEntity.BasePath = @"index0.php"; // Act context.Edit(secondEntity); context.SaveChanges(); var collection = context.GetAll().ToList(); // Assert Assert.Collection(context.GetAll(), resource => Assert.Contains("index0.php", resource.BasePath), resource => Assert.Contains("index1.php", resource.BasePath) ); } }
public async Task <IActionResult> PostWhitelistedResource([FromBody] WhitelistedResource whitelistedResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } await _whitelistedResourceRepository.AddAsync(whitelistedResource); await _whitelistedResourceRepository.SaveChangesAsync(); return(CreatedAtAction("GetWhitelistedResource", new { id = whitelistedResource.Id }, whitelistedResource)); }
public void RequestedResourceIsWhitelisted_ReturnsTrue_IfRequestResourceIsWhitelisted() { using (var context = _apacheLogContextFactory.NewTestContext()) { // Arrange var whitelistedResources = new WhitelistedResource[3] { new WhitelistedResource() { BasePath = "media" }, new WhitelistedResource() { BasePath = "index.php" }, new WhitelistedResource() { BasePath = "script.cgi" } }; context.WhitelistedResources.AddRange(whitelistedResources); context.SaveChanges(); var whitelist = new Whitelist(context); var accessRequests = new List <AccessRequest>() { new AccessRequest() { Resource = @"/media/rest/getPlaylists.view" }, new AccessRequest() { Resource = @"/index.php" }, new AccessRequest() { Resource = @"script.cgi" } }; foreach (var accessRequest in accessRequests) { // Act var result = whitelist.RequestedResourceIsWhitelisted(accessRequest); // Assert Assert.True(result); } } }
public void WhitelistedResourceRepository_Add_ShouldNotSaveEntitiesWithExistingBasePaths() { using (var context = _whitelistedResourceRepository.New()) { // Arrange for (var i = 0; i < 2; i++) { var whitelistedResouce = new WhitelistedResource() { BasePath = @"index.php" }; // Act context.Add(whitelistedResouce); context.SaveChanges(); } // Assert Assert.Single(context.GetAll()); } }