コード例 #1
0
        public async Task SaveResponse_ValidModel_SavesResponse()
        {
            Mock <ISurveyResponses> mockSurveyResponse = new Mock <ISurveyResponses>();

            SurveyController surveyController = new SurveyController();
            HttpContext      context          = new DefaultHttpContext();

            surveyController.TempData = new TempDataDictionary(new DefaultHttpContext(), new Mock <ITempDataProvider>().Object);

            SummaryModel       summaryModel       = new SummaryModel();
            NameModel          nameModel          = new NameModel();
            EmailModel         emailModel         = new EmailModel();
            AddressModel       addressModel       = new AddressModel();
            LightingLevelModel lightingLevelModel = new LightingLevelModel();

            lightingLevelModel.HappyWithLightingLevel = true;
            BrightnessModel brightnessModel = new BrightnessModel();

            brightnessModel.BrightnessLevel = 5;

            summaryModel.Name          = nameModel;
            summaryModel.Email         = emailModel;
            summaryModel.Address       = addressModel;
            summaryModel.LightingLevel = lightingLevelModel;
            summaryModel.Brightness    = brightnessModel;

            RedirectToActionResult result = (RedirectToActionResult)await surveyController.SaveResponse(mockSurveyResponse.Object, summaryModel);

            Assert.IsNotNull(result);
            Assert.AreEqual("Confirmation", result.ActionName);

            mockSurveyResponse.Verify(s => s.SaveSurveyResponse(It.IsAny <LightingSurvey>()), Times.Once);
        }
コード例 #2
0
        public IActionResult LightingLevel()
        {
            LightingLevelModel lightingLevelModel = new LightingLevelModel();

            if (TempData.ContainsKey(LightingLevelTag) && TempData.Peek(LightingLevelTag) != null)
            {
                lightingLevelModel.HappyWithLightingLevel = (bool)TempData.Peek(LightingLevelTag);
            }

            return(View(lightingLevelModel));
        }
コード例 #3
0
        public IActionResult SetLightingLevel(LightingLevelModel lightingLevelModel)
        {
            if (lightingLevelModel.HappyWithLightingLevel.HasValue)
            {
                TempData[LightingLevelTag] = lightingLevelModel.HappyWithLightingLevel;
            }

            if (ModelState.IsValid)
            {
                return(RedirectToAction(BrightnessTag));
            }

            return(RedirectToAction(LightingLevelTag));
        }
コード例 #4
0
        public IActionResult Summary()
        {
            NameModel nameModel = new NameModel()
            {
                FullName = (string)TempData.Peek(NameTag)
            };

            EmailModel emailModel = new EmailModel()
            {
                Email = (string)TempData.Peek(EmailTag)
            };

            AddressModel addressModel = new AddressModel()
            {
                Address1 = (string)TempData.Peek(AddressTag),
                Address2 = (string)TempData.Peek(Address2Tag),
                Town     = (string)TempData.Peek(Town),
                County   = (string)TempData.Peek(County),
                Postcode = (string)TempData.Peek(Postcode)
            };

            LightingLevelModel lightingLevelModel = new LightingLevelModel()
            {
                HappyWithLightingLevel = (bool)TempData.Peek(LightingLevelTag)
            };

            BrightnessModel brightnessModel = new BrightnessModel()
            {
                BrightnessLevel = (int)TempData.Peek(BrightnessTag)
            };

            SummaryModel summary = new SummaryModel()
            {
                Name          = nameModel,
                Email         = emailModel,
                Address       = addressModel,
                LightingLevel = lightingLevelModel,
                Brightness    = brightnessModel
            };

            return(View(summary));
        }