Esempio n. 1
0
    public async Task Step_Validate_Wrong_Postcode()
    {
        const string postcode  = "dddfd";
        const double latitude  = 50.0123;
        const double longitude = 1.987;
        const bool   isValid   = false;

        var postcodeLocation = new PostcodeLocation
        {
            Postcode  = postcode,
            Latitude  = latitude,
            Longitude = longitude
        };

        var viewModel = new FindViewModel
        {
            Postcode = postcode
        };

        var context = new SearchContext(viewModel);

        _providerSearchService.IsSearchPostcodeValid(Arg.Is <string>(p => p == postcode)).Returns((isValid, postcodeLocation));

        await _searchStep.Execute(context);

        context.ViewModel.ValidationStyle.Should().Be(AppConstants.ValidationStyle);
        context.ViewModel.PostcodeValidationMessage.Should().Be(AppConstants.RealPostcodeValidationMessage);
        context.Continue.Should().BeFalse();
        await _providerSearchService.Received(1).IsSearchPostcodeValid(Arg.Is <string>(p => p == postcode));
    }
Esempio n. 2
0
        public async Task Step_Perform_Search_Returns_Expected_Results()
        {
            const string postcode          = "MK35 8UK";
            const int    numberOfItems     = 9;
            const int    qualificationId   = 5;
            const int    selectedItemIndex = 3;

            var viewModel = new FindViewModel
            {
                Postcode                = postcode,
                NumberOfItemsToShow     = numberOfItems,
                SelectedQualificationId = qualificationId,
                SelectedItemIndex       = selectedItemIndex
            };

            var context = new SearchContext(viewModel);

            var providerLocations = new List <ProviderLocation>
            {
                new ProviderLocation(),
                new ProviderLocation(),
                new ProviderLocation(),
                new ProviderLocation(),
                new ProviderLocation()
            };

            _providerSearchService.Search(Arg.Is <SearchRequest>(sr => sr.Postcode == postcode &&
                                                                 sr.NumberOfItems == numberOfItems &&
                                                                 sr.QualificationId == qualificationId))
            .Returns((providerLocations.Count, providerLocations));

            var providerLocationViewModels = new List <ProviderLocationViewModel>
            {
                new ProviderLocationViewModel(),
                new ProviderLocationViewModel(),
                new ProviderLocationViewModel(),
                new ProviderLocationViewModel(),
                new ProviderLocationViewModel()
            };

            _mapper.Map <IEnumerable <ProviderLocationViewModel> >(Arg.Is(providerLocations)).Returns(providerLocationViewModels);

            await _searchStep.Execute(context);

            context.ViewModel.TotalRecordCount.Should().Be(providerLocationViewModels.Count);
            providerLocationViewModels[context.ViewModel.SelectedItemIndex].HasFocus.Should().BeTrue();
            context.ViewModel.SearchedQualificationId.Should().Be(qualificationId);
            context.ViewModel.ProviderLocations.Should().Equal(providerLocationViewModels);

            await _providerSearchService.Received(1).Search(Arg.Is <SearchRequest>(sr => sr.Postcode == postcode && sr.NumberOfItems == numberOfItems && sr.QualificationId == qualificationId));

            _mapper.Received(1).Map <IEnumerable <ProviderLocationViewModel> >(Arg.Is(providerLocations));
        }
        public async Task Step_Returns_SelectListItems_For_All_Qualifications_With_A_Selected_Qualification()
        {
            // Arrange
            int?selectedQualificationId = 3;

            var viewModel = new FindViewModel
            {
                SelectedQualificationId = selectedQualificationId
            };

            var context = new SearchContext(viewModel);

            var qualifications = new List <Qualification>
            {
                new Qualification {
                    Id = 1, Name = "Qualification 1"
                },
                new Qualification {
                    Id = 2, Name = "Qualification 2"
                },
                new Qualification {
                    Id = 3, Name = "Qualification 3"
                },
                new Qualification {
                    Id = 4, Name = "Qualification 4"
                },
                new Qualification {
                    Id = 5, Name = "Qualification 5"
                }
            };

            _providerSearchService.GetQualifications().Returns(qualifications);

            // Act
            await _searchStep.Execute(context);

            // Assert
            _providerSearchService.Received(1).GetQualifications();
            context.ViewModel.Qualifications.Count().Should().Be(qualifications.Count);
            context.ViewModel.Qualifications
            .Any(q => q.Value == selectedQualificationId.ToString() && q.Selected)
            .Should().BeTrue();

            context.ViewModel.Qualifications
            .Count(q => q.Value == selectedQualificationId.ToString() && q.Selected)
            .Should()
            .Be(1);

            var qualificationsSelectList = context.ViewModel.Qualifications.OrderBy(q => q.Value).ToList();

            qualificationsSelectList[0].Value.Should().Be("1");
            qualificationsSelectList[0].Text.Should().Be("Qualification 1");
            qualificationsSelectList[0].Selected.Should().BeFalse();

            qualificationsSelectList[1].Value.Should().Be("2");
            qualificationsSelectList[1].Text.Should().Be("Qualification 2");
            qualificationsSelectList[1].Selected.Should().BeFalse();

            qualificationsSelectList[2].Value.Should().Be("3");
            qualificationsSelectList[2].Text.Should().Be("Qualification 3");
            qualificationsSelectList[2].Selected.Should().BeTrue();

            qualificationsSelectList[3].Value.Should().Be("4");
            qualificationsSelectList[3].Text.Should().Be("Qualification 4");
            qualificationsSelectList[3].Selected.Should().BeFalse();

            qualificationsSelectList[4].Value.Should().Be("5");
            qualificationsSelectList[4].Text.Should().Be("Qualification 5");
            qualificationsSelectList[4].Selected.Should().BeFalse();



            context.ViewModel.SelectedQualificationId.Should().Be(selectedQualificationId);
        }