Ejemplo n.º 1
0
        public List <EditCustomFieldViewModel> GetEditCustomFieldViewModelsForCentre(
            int centreId,
            string?answer1,
            string?answer2,
            string?answer3,
            string?answer4,
            string?answer5,
            string?answer6
            )
        {
            var answers = new List <string?> {
                answer1, answer2, answer3, answer4, answer5, answer6
            };
            var customPrompts = centreCustomPromptsService.GetCustomPromptsForCentreByCentreId(centreId);

            return(customPrompts.CustomPrompts.Select(
                       cp => new EditCustomFieldViewModel(
                           cp.CustomPromptNumber,
                           cp.CustomPromptText,
                           cp.Mandatory,
                           cp.Options,
                           answers[cp.CustomPromptNumber - 1]
                           )
                       ).ToList());
        }
Ejemplo n.º 2
0
        public void GetCustomPromptsForCentreByCentreId_Returns_Populated_CentreCustomPrompts()
        {
            // Given
            var expectedPrompt1 = CustomPromptsTestHelper.GetDefaultCustomPrompt(1, options: null, mandatory: true);
            var expectedPrompt2 = CustomPromptsTestHelper.GetDefaultCustomPrompt(2, "Department / team", null, true);
            var customPrompts   = new List <CustomPrompt> {
                expectedPrompt1, expectedPrompt2
            };
            var expectedCustomerPrompts = CustomPromptsTestHelper.GetDefaultCentreCustomPrompts(customPrompts);

            A.CallTo(() => centreCustomPromptsDataService.GetCentreCustomPromptsByCentreId(29))
            .Returns
            (
                CustomPromptsTestHelper.GetDefaultCentreCustomPromptsResult(
                    customField1Prompt: "Custom Prompt",
                    customField1Options: null
                    )
            );

            // When
            var result = centreCustomPromptsService.GetCustomPromptsForCentreByCentreId(29);

            // Then
            result.Should().BeEquivalentTo(expectedCustomerPrompts);
        }
Ejemplo n.º 3
0
        public IActionResult Index()
        {
            TempData.Clear();
            var centreId = User.GetCentreId();

            var customPrompts = centreCustomPromptsService.GetCustomPromptsForCentreByCentreId(centreId);

            var model = new DisplayPromptsViewModel(customPrompts.CustomPrompts);

            return(View(model));
        }
Ejemplo n.º 4
0
        public void Setup()
        {
            centreCustomPromptsService = A.Fake <ICentreCustomPromptsService>();
            groupsService = A.Fake <IGroupsService>();
            userService   = A.Fake <IUserService>();
            courseService = A.Fake <ICourseService>();

            A.CallTo(() => groupsService.GetGroupsForCentre(A <int> ._)).Returns(new List <Group>());
            A.CallTo(() => centreCustomPromptsService.GetCustomPromptsForCentreByCentreId(A <int> ._))
            .Returns(prompts);

            httpRequest  = A.Fake <HttpRequest>();
            httpResponse = A.Fake <HttpResponse>();
            const string cookieName  = "DelegateGroupsFilter";
            const string cookieValue = "LinkedToField|LinkedToField|0";

            delegateGroupsController = new DelegateGroupsController(
                centreCustomPromptsService,
                groupsService,
                userService,
                courseService
                )
                                       .WithMockHttpContext(httpRequest, cookieName, cookieValue, httpResponse)
                                       .WithMockUser(true)
                                       .WithMockServices()
                                       .WithMockTempData();
        }
Ejemplo n.º 5
0
        public void EditDetailsPostSave_with_missing_delegate_answers_fails_validation()
        {
            // Given
            var myAccountController = new MyAccountController(
                centreCustomPromptsService,
                userService,
                imageResizeService,
                jobGroupsDataService,
                centreCustomPromptHelper
                ).WithDefaultContext().WithMockUser(true, adminId: null);
            var customPromptLists = new List <CustomPrompt>
            {
                CustomPromptsTestHelper.GetDefaultCustomPrompt(1, mandatory: true)
            };

            A.CallTo
                (() => centreCustomPromptsService.GetCustomPromptsForCentreByCentreId(2)).Returns(
                CustomPromptsTestHelper.GetDefaultCentreCustomPrompts(customPromptLists, 2)
                );
            var formData       = new MyAccountEditDetailsFormData();
            var expectedPrompt = new EditCustomFieldViewModel(1, "Custom Prompt", true, new List <string>(), null);
            var expectedModel  = new MyAccountEditDetailsViewModel(
                formData,
                new List <(int id, string name)>(),
                new List <EditCustomFieldViewModel> {
                expectedPrompt
            },
                DlsSubApplication.Default
                );

            // When
            var result = myAccountController.EditDetails(formData, "save", DlsSubApplication.Default);

            // Then
            A.CallTo(() => userService.NewEmailAddressIsValid(A <string> ._, A <int?> ._, A <int?> ._, A <int> ._))
            .MustNotHaveHappened();
            result.As <ViewResult>().Model.As <MyAccountEditDetailsViewModel>().Should().BeEquivalentTo(expectedModel);
            myAccountController.ModelState[nameof(MyAccountEditDetailsFormData.Answer1)].ValidationState.Should().Be
                (ModelValidationState.Invalid);
        }
Ejemplo n.º 6
0
        public void GetEditCustomFieldViewModelsForCentre_returns_populated_list()
        {
            // Given
            var customPrompt1       = CustomPromptsTestHelper.GetDefaultCustomPrompt(1, options: "Clinical\r\nNon-Clinical");
            var customPrompt2       = CustomPromptsTestHelper.GetDefaultCustomPrompt(2);
            var centreCustomPrompts = CustomPromptsTestHelper.GetDefaultCentreCustomPrompts(
                new List <CustomPrompt> {
                customPrompt1, customPrompt2
            },
                1
                );

            A.CallTo(() => centreCustomPromptsService.GetCustomPromptsForCentreByCentreId(1))
            .Returns(centreCustomPrompts);

            // When
            var result =
                centreCustomPromptHelper.GetEditCustomFieldViewModelsForCentre(
                    1,
                    Answer1,
                    Answer2,
                    null,
                    null,
                    null,
                    null
                    );

            // Then
            using (new AssertionScope())
            {
                result.Count.Should().Be(2);

                result[0].CustomFieldId.Should().Be(1);
                result[0].Options.Count().Should().Be(2);
                result[0].Options.First().Value.Should().BeEquivalentTo("Clinical");

                result[1].CustomFieldId.Should().Be(2);
                result[1].Options.Count().Should().Be(0);
            }
        }
Ejemplo n.º 7
0
 private IEnumerable <CustomPrompt> GetRegistrationPromptsWithSetOptions(int centreId)
 {
     return(centreCustomPromptsService.GetCustomPromptsForCentreByCentreId(centreId).CustomPrompts
            .Where(cp => cp.Options.Any()));
 }