public ActionResult Create(CreateRiskAssessmentViewModel viewModel)
        {

            if (!ModelState.IsValid)
                return View("Create", _createRiskAssessmentViewModelFactory.WithCompanyId(viewModel.CompanyId).GetViewModel(viewModel));


            long riskAssessmentId;
            try
            {
                riskAssessmentId = _hazardousSubstanceRiskAssessmentService.CreateRiskAssessment(new SaveHazardousSubstanceRiskAssessmentRequest
                {
                    CompanyId = viewModel.CompanyId,
                    Title = viewModel.Title,
                    Reference = viewModel.Reference,
                    UserId = CurrentUser.UserId,
                    HazardousSubstanceId = viewModel.NewHazardousSubstanceId
                });
            }
            catch (ValidationException validationException)
            {
                ModelState.AddValidationErrors(validationException);
                return View("Create", _createRiskAssessmentViewModelFactory.WithCompanyId(viewModel.CompanyId).GetViewModel(viewModel));
            }


            if (viewModel.IsCreateDraft)
                return RedirectToAction("Index", new { companyId = viewModel.CompanyId });

            return RedirectToAction("Index", "Summary", new { riskAssessmentId, viewModel.CompanyId });
        }
        public CreateRiskAssessmentViewModel GetViewModel()
        {
            var viewModel = new CreateRiskAssessmentViewModel
                            {
                                NewHazardousSubstanceId = _newHazardousSubstanceId,
                                Title = (_newHazardousSubstanceId > 0) && (_companyId > 0)
                                    ? hazardousSubstancesService.GetByIdAndCompanyId(_newHazardousSubstanceId, _companyId).Name
                                    : string.Empty,
                                CompanyId = _companyId,
                                HazardousSubstances = GetHazardousSubstances()
                            };


            return viewModel;
        }
        public void When_GetViewModel_called_with_CreateRiskAssessmentViewModel_Then_existing_values_are_retained()
        {
            // Given
            var returnedHazardousSubstances = new List<HazardousSubstanceDto>()
                                              {
                                                  new HazardousSubstanceDto() { Id = 1, Name = "hazsub 01"},
                                                  new HazardousSubstanceDto() { Id = 2, Name = "hazsub 02" },
                                                  new HazardousSubstanceDto() { Id = 3, Name = "hazsub 03" },
                                                  new HazardousSubstanceDto() { Id = 4, Name = "hazsub 04" }
                                              };

            var createRiskAssessmentViewModel = new CreateRiskAssessmentViewModel()
            {
                CompanyId = 1234,
                IsCreateDraft = false,
                NewHazardousSubstanceId = 5678,
                Reference = "My Ref",
                Title = "My Title"
            };

            _hazardousSubstanceService
                .Setup(x => x.Search(It.IsAny<SearchHazardousSubstancesRequest>()))
                .Returns(returnedHazardousSubstances);

            // When
            var result = _target.WithCompanyId(1234).GetViewModel(createRiskAssessmentViewModel) as CreateRiskAssessmentViewModel;

            // Then
            Assert.That(result.CompanyId, Is.EqualTo(createRiskAssessmentViewModel.CompanyId));
            Assert.That(result.IsCreateDraft, Is.EqualTo(createRiskAssessmentViewModel.IsCreateDraft));
            Assert.That(result.NewHazardousSubstanceId, Is.EqualTo(createRiskAssessmentViewModel.NewHazardousSubstanceId));
            Assert.That(result.Reference, Is.EqualTo(createRiskAssessmentViewModel.Reference));
            Assert.That(result.Title, Is.EqualTo(createRiskAssessmentViewModel.Title));
        }
        public void When_GetViewModel_called_with_CreateRiskAssessmentViewModel_Then_hazardous_substances_are_put_in_view_model()
        {
            // Given
            var returnedHazardousSubstances = new List<HazardousSubstanceDto>()
                                              {
                                                  new HazardousSubstanceDto() { Id = 1, Name = "hazsub 01"},
                                                  new HazardousSubstanceDto() { Id = 2, Name = "hazsub 02" },
                                                  new HazardousSubstanceDto() { Id = 3, Name = "hazsub 03" },
                                                  new HazardousSubstanceDto() { Id = 4, Name = "hazsub 04" }
                                              };

            var createRiskAssessmentViewModel = new CreateRiskAssessmentViewModel()
                                                {

                                                };

            _hazardousSubstanceService
                .Setup(x => x.Search(It.IsAny<SearchHazardousSubstancesRequest>()))
                .Returns(returnedHazardousSubstances);

            // When
            var result = _target.WithCompanyId(1234).GetViewModel(createRiskAssessmentViewModel) as CreateRiskAssessmentViewModel;

            // Then
            Assert.That(result.HazardousSubstances.Count(), Is.EqualTo(5));
            for (var i = 1; i < returnedHazardousSubstances.Count; i++)
            {
                Assert.That(result.HazardousSubstances.ElementAt(i).label, Is.EqualTo(returnedHazardousSubstances.ElementAt(i - 1).Name));
                Assert.That(result.HazardousSubstances.ElementAt(i).value, Is.EqualTo(returnedHazardousSubstances.ElementAt(i - 1).Id.ToString()));
            }
        }
 public CreateRiskAssessmentViewModel GetViewModel(CreateRiskAssessmentViewModel createRiskAssessmentViewModel)
 {
     createRiskAssessmentViewModel.HazardousSubstances = GetHazardousSubstances();
     return createRiskAssessmentViewModel;
 }
Пример #6
0
        public void Given_valid_request_Then_hazardous_substance_assessment_is_saved()
        {
            //Given
            var target = GetTarget();
            var createRiskAssessmentViewModel = new CreateRiskAssessmentViewModel()
                                                {
                                                    CompanyId = 1234,
                                                    Reference = "Ref",
                                                    Title = "Title"
                                                };

            //When
            target.Create(createRiskAssessmentViewModel);

            //Then
            _hazardousSubstanceAssessmentService.Verify(r => r.CreateRiskAssessment(It.IsAny<SaveHazardousSubstanceRiskAssessmentRequest>()), Times.Once());
        }
Пример #7
0
        public void Given_valid_request_Then_hazardsous_substance_assessment_is_saved_and_redirected_to_correct_view()
        {
            //Given
            var target = GetTarget();

            const long expectedRiskAssessmentId = 2020;
            _hazardousSubstanceAssessmentService.Setup(x => x.CreateRiskAssessment(It.IsAny<SaveHazardousSubstanceRiskAssessmentRequest>()))
                                  .Returns(expectedRiskAssessmentId);
            
            var createRiskAssessmentViewModel = new CreateRiskAssessmentViewModel()
                                                {
                                                    CompanyId = 1234,
                                                    Reference = "Ref",
                                                    Title = "Title"
                                                };

            //When
            var result = target.Create(createRiskAssessmentViewModel) as RedirectToRouteResult;

            //Then
            Assert.That(result.RouteValues["controller"], Is.EqualTo("Summary"));
            Assert.That(result.RouteValues["action"], Is.EqualTo("Index"));
            Assert.That(result.RouteValues["riskAssessmentId"], Is.EqualTo(expectedRiskAssessmentId));
            Assert.That(result.RouteValues["CompanyId"], Is.EqualTo(1234));

        }
Пример #8
0
        public void Given_invalid_request_Then_viewModel_is_passed_to_factory_to_reset_hazardousSubstances_ddl()
        {
            //Given
            var target = GetTarget();
            var passedCreateRiskAssessmentViewModel = new CreateRiskAssessmentViewModel();
            var createRiskAssessmentViewModel = new CreateRiskAssessmentViewModel()
            {
                CompanyId = 1234,
                Reference = "Ref",
                Title = "Title"
            };
            _createViewModelFactory
                .Setup(x => x.GetViewModel(createRiskAssessmentViewModel))
                .Returns(new CreateRiskAssessmentViewModel())
                .Callback<CreateRiskAssessmentViewModel>(y => passedCreateRiskAssessmentViewModel = y);

            //When
            target.ModelState.AddModelError("an error", "there was an error with model validation");
            target.Create(createRiskAssessmentViewModel);

            //Then
            Assert.That(createRiskAssessmentViewModel, Is.EqualTo(passedCreateRiskAssessmentViewModel));
        }
Пример #9
0
        public void Given_valid_request_Then_selected_hazardous_substance_is_passed_to_service()
        {
            //Given
            var target = GetTarget();
            var passedSaveHazardousSubstanceRiskAssessmentRequest = new SaveHazardousSubstanceRiskAssessmentRequest();
            var createRiskAssessmentViewModel = new CreateRiskAssessmentViewModel()
            {
                CompanyId = 1234,
                Reference = "Ref",
                Title = "Title",
                NewHazardousSubstanceId = 5678
            };
            _hazardousSubstanceAssessmentService
                .Setup(r => r.CreateRiskAssessment(It.IsAny<SaveHazardousSubstanceRiskAssessmentRequest>()))
                .Callback<SaveHazardousSubstanceRiskAssessmentRequest>(y => passedSaveHazardousSubstanceRiskAssessmentRequest = y);

            //When
            target.Create(createRiskAssessmentViewModel);

            //Then
            Assert.That(passedSaveHazardousSubstanceRiskAssessmentRequest.HazardousSubstanceId, Is.EqualTo(createRiskAssessmentViewModel.NewHazardousSubstanceId));
        }