コード例 #1
0
        public void ReportDamageTest_NotValid()
        {
            DamageReportInputDto dto = DamageReportFactory.NewDamageReportInput();

            dto.Description = string.Empty;

            string token = UsingDbContext(DamageReportsMockDatabaseHelper.AddAdminToContext);

            Assert.Throws <ModelValidationException>(() => _damageReportAppService.ReportDamage(dto, token));
        }
コード例 #2
0
        public void DeleteDamageReport_InsufficientPrivileges()
        {
            DamageReportInputDto dto = DamageReportFactory.NewDamageReportInput();

            string token = UsingDbContext(context =>
                                          DamageReportsMockDatabaseHelper.AddSessionToContext(UserFactory.NewUser(), context).Token);

            DamageReportOutputDto result = _damageReportAppService.ReportDamage(dto, token);

            Assert.Throws <ForbiddenAccessException>(() => _damageReportAppService.DeleteDamage(token, result.Id));
        }
コード例 #3
0
        public void DeleteDamageReport()
        {
            DamageReportInputDto dto = DamageReportFactory.NewDamageReportInput();

            string token = UsingDbContext(DamageReportsMockDatabaseHelper.AddAdminToContext);

            DamageReportOutputDto result = _damageReportAppService.ReportDamage(dto, token);

            _damageReportAppService.DeleteDamage(token, result.Id);

            UsingDbContext(context => Assert.Empty(context.DamageReports));
        }
コード例 #4
0
        public void RepairDamageTest_InsufficientPrivileges()
        {
            DamageReportInputDto dto = DamageReportFactory.NewDamageReportInput();

            string token = UsingDbContext(DamageReportsMockDatabaseHelper.AddAdminToContext);

            int id = _damageReportAppService.ReportDamage(dto, token).Id;

            Assert.Throws <ForbiddenAccessException>(() =>
                                                     _damageReportAppService.RepairDamage(token, new DamageReportRepairDto {
                Id = id
            }));
        }
コード例 #5
0
        public void ReportDamageTest()
        {
            DamageReportInputDto dto = DamageReportFactory.NewDamageReportInput();

            string token = UsingDbContext(DamageReportsMockDatabaseHelper.AddAdminToContext);

            DamageReportOutputDto result = _damageReportAppService.ReportDamage(dto, token);

            UsingDbContext(context =>
            {
                Assert.Equal(dto.Description, context.DamageReports.First().Description);
            });

            Assert.Equal(result.Description, dto.Description);
        }
コード例 #6
0
        public void RepairDamageTest()
        {
            DamageReportInputDto dto = DamageReportFactory.NewDamageReportInput();

            string token = UsingDbContext(DamageReportsMockDatabaseHelper.AddAdminToContext);

            int id = _damageReportAppService.ReportDamage(dto, token).Id;

            string crewToken = UsingDbContext(DamageReportsMockDatabaseHelper.AddCrewToContext);

            _damageReportAppService.RepairDamage(crewToken, new DamageReportRepairDto {
                Id = id
            });

            UsingDbContext(context =>
            {
                DamageReport damage = context.DamageReports.Find(id);

                Assert.Equal(DamageStatus.Repaired, damage.Status);
            });
        }
コード例 #7
0
        public DamageReportOutputDto ReportDamage(DamageReportInputDto damageDto, string token)
        {
            _credentialsVerifier.VerifyCredentialsForDamageReporting(token);

            DamageReport damage = _objectMapper.Map <DamageReport>(damageDto);

            if (!damage.IsValid())
            {
                throw new ModelValidationException(_objectMapper.Map <List <ValidationErrorDto> >(damage.GetValidationErrors()));
            }

            BindMediaResources(damage);

            damage.User = UserUtillities.GetExecutingUserIfLoggedIn(token, _sessionsRepository);

            _damageReportsRepository.Insert(damage);

            CurrentUnitOfWork.SaveChanges();

            return(_objectMapper.Map <DamageReportOutputDto>(damage));
        }
コード例 #8
0
        public void ReportDamageTest_NotLoggedIn()
        {
            DamageReportInputDto dto = DamageReportFactory.NewDamageReportInput();

            Assert.Throws <NotLoggedInException>(() => _damageReportAppService.ReportDamage(dto, "aaa"));
        }
コード例 #9
0
        public DamageReportOutputDto ReportDamage(DamageReportInputDto damage)
        {
            string token = Utillities.GetAuthTokenOrNullIfException(Request);

            return(_damageAppService.ReportDamage(damage, token));
        }