public async Task Handle_ThrowsUnauthorizedUserReportException_WhenThereIsNoUserLoggedIn()
        {
            //arrange
            var query = new GetReportsQuery(RoleEnum.None);

            //act + assert
            await Assert.ThrowsAsync <GetReportUnauthorizedUserException>(async() =>
                                                                          await _handler.Handle(query)
                                                                          );
        }
        public async Task Handle_ReturnsNoReports_WhenDatabaseIsEmpty(RoleEnum role)
        {
            //arrange
            var query = new GetReportsQuery(role);

            //act
            List <GetReportViewModel>?actual = await _handler.Handle(query);

            //assert
            Assert.Empty(actual);
        }
Beispiel #3
0
        public override async Task <ActionResult <IEnumerable <ReportDto> > > HandleAsync(CancellationToken cancellationToken = default)
        {
            var user = _userAccessor.Get();

            if (user == null)
            {
                return(Unauthorized());
            }
            var query = new GetReportsQuery(user.UserId, user.CompanyId);

            return(Ok(await _mediator.Send(query)));
        }
        public async Task Handle_ReturnsAllTagEditableRelatedReports_WhenUserHasTagEditRole()
        {
            //arrange
            var prompt = new Prompt();

            DbContext.Reports.AddRange(
                new Report {
                ReportReason = ReportReason.Duplicate, Prompt = prompt
            },
                new Report {
                ReportReason = ReportReason.IllegalContent, Prompt = prompt
            },
                new Report {
                ReportReason = ReportReason.IncorrectTags, Prompt = prompt
            },
                new Report {
                ReportReason = ReportReason.LowQuality, Prompt = prompt
            },
                new Report {
                ReportReason = ReportReason.NeedsCorrection, Prompt = prompt
            },
                new Report {
                ReportReason = ReportReason.Other, Prompt = prompt
            },
                new Report {
                ReportReason = ReportReason.UntaggedNsfw, Prompt = prompt
            });
            await DbContext.SaveChangesAsync();

            var query = new GetReportsQuery(RoleEnum.TagEdit);

            //act
            List <GetReportViewModel>?actual = await _handler.Handle(query);

            //assert
            Assert.Equal(2, actual.Count);
        }
        public async Task <ActionResult <List <ReportDto> > > GetReports([FromHybrid] GetReportsQuery query)
        {
            var result = await _mediator.Send(query);

            return(Ok(result));
        }