public async Task ReleaseIsNotLive() { var release = new Release(); var publication = new Publication { Releases = ListOf(release) }; var contextId = Guid.NewGuid().ToString(); await using (var contentDbContext = InMemoryContentDbContext(contextId)) { await contentDbContext.AddAsync(publication); await contentDbContext.SaveChangesAsync(); } await using (var contentDbContext = InMemoryContentDbContext(contextId)) { var handler = new ViewReleaseAuthorizationHandler(contentDbContext); var authContext = new AuthorizationHandlerContext( new IAuthorizationRequirement[] { Activator.CreateInstance <ViewReleaseRequirement>() }, null, release ); await handler.HandleAsync(authContext); Assert.False(authContext.HasSucceeded); } }
public async Task ReleaseIsLiveAndLatestVersion() { var publication = new Publication(); var olderRelease = new Release { Published = DateTime.Parse("2019-10-08T12:00:00"), Publication = publication }; var newerRelease = new Release { Published = DateTime.Parse("2019-10-10T12:00:00"), Publication = publication, PreviousVersion = olderRelease, }; publication.Releases.AddRange( new List <Release> { olderRelease, newerRelease, } ); var contextId = Guid.NewGuid().ToString(); await using (var contentDbContext = ContentDbUtils.InMemoryContentDbContext(contextId)) { await contentDbContext.AddAsync(publication); await contentDbContext.SaveChangesAsync(); } await using (var contentDbContext = ContentDbUtils.InMemoryContentDbContext(contextId)) { var handler = new ViewReleaseAuthorizationHandler(contentDbContext); var authContext = new AuthorizationHandlerContext( new IAuthorizationRequirement[] { Activator.CreateInstance <ViewReleaseRequirement>() }, null, newerRelease ); await handler.HandleAsync(authContext); Assert.True(authContext.HasSucceeded); } }
public async Task ReleaseNotFound() { await using var contentDbContext = InMemoryContentDbContext(); var handler = new ViewReleaseAuthorizationHandler(contentDbContext); var authContext = new AuthorizationHandlerContext( new IAuthorizationRequirement[] { Activator.CreateInstance <ViewReleaseRequirement>() }, null, new Release { Id = Guid.NewGuid() } ); await handler.HandleAsync(authContext); Assert.False(authContext.HasSucceeded); }
public async Task ReleaseIsLiveButNotLatestVersion() { var originalRelease = new Release { Published = new DateTime(2020, 1, 1), }; var amendedRelease = new Release { Published = new DateTime(2020, 2, 1), PreviousVersion = originalRelease, }; var publication = new Publication { Releases = ListOf(originalRelease, amendedRelease) }; var contextId = Guid.NewGuid().ToString(); await using (var contentDbContext = InMemoryContentDbContext(contextId)) { await contentDbContext.AddAsync(publication); await contentDbContext.SaveChangesAsync(); } await using (var contentDbContext = InMemoryContentDbContext(contextId)) { var handler = new ViewReleaseAuthorizationHandler(contentDbContext); var authContext = new AuthorizationHandlerContext( new IAuthorizationRequirement[] { Activator.CreateInstance <ViewReleaseRequirement>() }, null, originalRelease ); await handler.HandleAsync(authContext); Assert.False(authContext.HasSucceeded); } }