Beispiel #1
0
        public async Task DoesNotExist()
        {
            var release = new Release
            {
                ReleaseName        = "2021",
                TimePeriodCoverage = TimeIdentifier.CalendarYear,
            };

            var publication = new Publication
            {
                Releases = ListOf(release)
            };

            await using var contentDbContext = InMemoryContentDbContext();

            var handler = new ViewPublicationAuthorizationHandler(contentDbContext);

            var authContext = new AuthorizationHandlerContext(
                new IAuthorizationRequirement[] { Activator.CreateInstance <ViewPublicationRequirement>() },
                null,
                publication
                );

            await handler.HandleAsync(authContext);

            Assert.False(authContext.HasSucceeded);
        }
Beispiel #2
0
        public async Task HasLiveReleaseWithDraftAmendment()
        {
            var originalRelease = new Release
            {
                ReleaseName        = "2020",
                TimePeriodCoverage = TimeIdentifier.CalendarYear,
                Published          = new DateTime(2020, 1, 1),
            };
            var amendedRelease = new Release
            {
                ReleaseName        = "2021",
                TimePeriodCoverage = TimeIdentifier.CalendarYear,
                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 ViewPublicationAuthorizationHandler(contentDbContext);

                var authContext = new AuthorizationHandlerContext(
                    new IAuthorizationRequirement[] { Activator.CreateInstance <ViewPublicationRequirement>() },
                    null,
                    publication
                    );

                await handler.HandleAsync(authContext);

                Assert.True(authContext.HasSucceeded);
            }
        }
Beispiel #3
0
        public async Task HasNoLiveReleases()
        {
            var release = new Release
            {
                ReleaseName        = "2021",
                TimePeriodCoverage = TimeIdentifier.CalendarYear,
            };

            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 ViewPublicationAuthorizationHandler(contentDbContext);

                var authContext = new AuthorizationHandlerContext(
                    new IAuthorizationRequirement[] { Activator.CreateInstance <ViewPublicationRequirement>() },
                    null,
                    publication
                    );

                await handler.HandleAsync(authContext);

                Assert.False(authContext.HasSucceeded);
            }
        }