Пример #1
0
        public void RedirectToPageIfExactMatchIsFound()
        {
            //Arrange
            var mockedView = new Mock <ISearchView>();

            mockedView.Setup(v => v.Model).Returns(new SearchViewModel());
            var    mockedPageService  = new Mock <IPageService>();
            var    presenterUnderTest = new SearchPresenter(mockedView.Object, mockedPageService.Object);
            string title = "test-title";
            var    pages = new List <SotnWiki.Models.Page>()
            {
                new Models.Page()
                {
                    Title = title
                }
            };

            mockedPageService.Setup(m => m.FindPages(It.IsAny <string>())).Returns(pages);
            var mockedHttpContext      = new Mock <HttpContextBase>();
            var mockedHttpResponseBase = new Mock <HttpResponseBase>();

            presenterUnderTest.HttpContext = mockedHttpContext.Object;
            mockedHttpContext.Setup(x => x.Response).Returns(mockedHttpResponseBase.Object);

            //Act

            mockedView.Raise(v => v.OnPageGetContent += null, new SearchEventArgs(""));
            //Assert

            mockedHttpResponseBase.Verify(x => x.Redirect(string.Format("~/page?title={0}", title)), Times.Once);
        }
Пример #2
0
        public void FillViewModelResultsWithSearchResult()
        {
            //Arrange
            var mockedView = new Mock <ISearchView>();

            mockedView.Setup(v => v.Model).Returns(new SearchViewModel());
            var mockedPageService  = new Mock <IPageService>();
            var presenterUnderTest = new SearchPresenter(mockedView.Object, mockedPageService.Object);
            var pages = new List <SotnWiki.Models.Page>()
            {
                new Models.Page()
                {
                    Title = "t1"
                },
                new Models.Page()
                {
                    Title = "t2"
                }
            };

            mockedPageService.Setup(m => m.FindPages(It.IsAny <string>())).Returns(pages);
            //Act

            mockedView.Raise(v => v.OnPageGetContent += null, new SearchEventArgs(""));
            //Assert

            CollectionAssert.AreEqual(pages, mockedView.Object.Model.Results);
        }
Пример #3
0
        protected override void OnInit(EventArgs e)
        {
            //_webContext = ObjectFactory.GetInstance<IWebContext>();
            _presenter  = new SearchPresenter();
            _webContext = new SPKTCore.Core.Impl.WebContext();
            _presenter.Init(this);


            if (string.IsNullOrEmpty(_webContext.SearchText))
            {
                lblSearchTerm.Text = "Please use the search box to the left!";
            }
            else
            {
                if (!IsPostBack)
                {
                    lblSearchTerm.Text = "Bạn muốn tìm bạn :  " + _webContext.SearchText;
                }

                if (_webContext.SearchText.Length > 3)
                {
                    _presenter.PerformSearch(_webContext.SearchText);
                }
                else
                {
                    lblSearchTerm.Text += " <BR><BR> Your chuoi tim kiem phai lon hon 3 ky tu!";
                }
            }
        }
Пример #4
0
        public void CallFindPagesMethodOfPageService()
        {
            //Arrange
            var mockedView = new Mock <ISearchView>();

            mockedView.Setup(v => v.Model).Returns(new SearchViewModel());
            var mockedPageService  = new Mock <IPageService>();
            var presenterUnderTest = new SearchPresenter(mockedView.Object, mockedPageService.Object);
            var pages = new List <SotnWiki.Models.Page>()
            {
                new Models.Page()
                {
                    Title = "t1"
                },
                new Models.Page()
                {
                    Title = "t2"
                }
            };

            mockedPageService.Setup(m => m.FindPages(It.IsAny <string>())).Returns(pages);
            //Act

            mockedView.Raise(v => v.OnPageGetContent += null, new SearchEventArgs(""));
            //Assert

            mockedPageService.Verify(x => x.FindPages(It.IsAny <string>()), Times.Once);
        }
Пример #5
0
        public SearchPresenter GetSearchPresenter()
        {
            SearchPresenter presenter = makePresenter <SearchPresenter, SearchChildForm>();

            presenter.Init();
            return(presenter);
        }
Пример #6
0
        public void TestConstructor_PassEverythingCorrectly_ShouldInitializeCorrectly()
        {
            var mockedView    = new Mock <ISearchView>();
            var mockedService = new Mock <IProductService>();
            var mockedFactory = new Mock <IViewModelFactory>();

            var presenter = new SearchPresenter(mockedView.Object, mockedService.Object, mockedFactory.Object);

            Assert.IsNotNull(presenter);
        }
 protected override void Context()
 {
     _view                   = A.Fake <ISearchView>();
     _regionResolver         = A.Fake <IRegionResolver>();
     _activeSubjectRetriever = A.Fake <IActiveSubjectRetriever>();
     _searchResultMapper     = A.Fake <ISearchResultToDTOSearchResultMapper>();
     _searchTask             = A.Fake <ISearchTask>();
     _applicationController  = A.Fake <IMoBiApplicationController>();
     _context                = A.Fake <IMoBiContext>();
     sut = new SearchPresenter(_view, _regionResolver, _activeSubjectRetriever, _searchResultMapper, _searchTask, _applicationController, _context);
 }
Пример #8
0
        public void SearchPresenterInalizedCorectly_NewSearchPresenterInstanceIscreated()
        {
            var mockedHomeView        = new Mock <ISearchView>();
            var mockedSearchView      = new Mock <ISearchView>();
            var mockedVenueService    = new Mock <IVenueService>();
            var mockedRatingService   = new Mock <IRatingService>();
            var mockedWishListService = new Mock <IWishListService>();
            var actualInstance        = new SearchPresenter(mockedHomeView.Object, mockedVenueService.Object, mockedWishListService.Object, mockedRatingService.Object);

            Assert.That(actualInstance, Is.InstanceOf <SearchPresenter>());
        }
Пример #9
0
        public void View_QueryEventShouldCallVenueSeriveceFilterVenuesMethodOnce()
        {
            var mockedSearchView      = new Mock <ISearchView>();
            var mockedVenueService    = new Mock <IVenueService>();
            var mockedRatingService   = new Mock <IRatingService>();
            var mockedWishListService = new Mock <IWishListService>();
            var mockedModel           = new Mock <SearchViewModel>();

            mockedSearchView.Setup(x => x.Model).Returns(mockedModel.Object);
            mockedVenueService.Setup(x => x.FilterVenues(It.IsAny <string>(), It.IsAny <string>())).Returns(It.IsAny <IEnumerable <VenueDTO> >());

            var searchPresenter = new SearchPresenter(mockedSearchView.Object, mockedVenueService.Object, mockedWishListService.Object, mockedRatingService.Object);

            mockedSearchView.Raise(x => x.QueryEvent += null, new SearchEventArgs(It.IsAny <string>(), It.IsAny <string>()));

            mockedVenueService.Verify(x => x.FilterVenues(It.IsAny <string>(), It.IsAny <string>()), Times.Exactly(1));
        }
Пример #10
0
        public void View_UpdateRatingSouldCallRatingServiceWithCorrectRating(string mockedRatingString, int mockedRatingInt)
        {
            var mockedSearchView      = new Mock <ISearchView>();
            var mockedVenueService    = new Mock <IVenueService>();
            var mockedRatingService   = new Mock <IRatingService>();
            var mockedWishListService = new Mock <IWishListService>();
            var mockedModel           = new Mock <SearchViewModel>();

            mockedSearchView.Setup(x => x.Model).Returns(mockedModel.Object);
            mockedRatingService.Setup(x => x.AddRating(It.IsAny <Guid>(), It.IsAny <int>(), It.IsAny <int>()));

            var searchPresenter = new SearchPresenter(mockedSearchView.Object, mockedVenueService.Object, mockedWishListService.Object, mockedRatingService.Object);

            mockedSearchView.Raise(x => x.UpdateRating += null, new UpdateRatingEventArgs(It.IsAny <string>(), mockedRatingString, It.IsAny <string>()));

            mockedRatingService.Verify(x => x.AddRating(It.IsAny <Guid>(), It.Is <int>(args => args == mockedRatingInt), It.IsAny <int>()), Times.Once);
        }
Пример #11
0
        public void TestViewMySearch_ShouldCallServiceSearchProductsCorrectly(string searchParam)
        {
            var mockedView = new Mock <ISearchView>();

            mockedView.Setup(v => v.Model).Returns(new ProductListViewModel());

            var mockedService = new Mock <IProductService>();

            var mockedFactory = new Mock <IViewModelFactory>();

            var presenter = new SearchPresenter(mockedView.Object, mockedService.Object, mockedFactory.Object);

            var args = new SearchEventArgs(searchParam);

            mockedView.Raise(v => v.MySearch += null, args);

            mockedService.Verify(s => s.SearchProducts(searchParam), Times.Once);
        }
Пример #12
0
        public void View_SaveVenueEventShouldCallwishListServiceWithCorrectUser()
        {
            var mockedSearchView      = new Mock <ISearchView>();
            var mockedVenueService    = new Mock <IVenueService>();
            var mockedRatingService   = new Mock <IRatingService>();
            var mockedWishListService = new Mock <IWishListService>();
            var mockedModel           = new Mock <SearchViewModel>();
            var mockedGuid            = Guid.Parse("E56F7468-AC9B-454C-A73E-E687DFC925B1");
            var mockedGuidString      = "E56F7468-AC9B-454C-A73E-E687DFC925B1";

            mockedSearchView.Setup(x => x.Model).Returns(mockedModel.Object);
            mockedWishListService.Setup(x => x.UpdateWishList(It.IsAny <Guid>(), 1));

            var searchPresenter = new SearchPresenter(mockedSearchView.Object, mockedVenueService.Object, mockedWishListService.Object, mockedRatingService.Object);

            mockedSearchView.Raise(x => x.SaveVenueEvent += null, new SaveVenueArgs(mockedGuidString, ""));

            mockedWishListService.Verify(x => x.UpdateWishList(It.Is <Guid>(arg => arg == mockedGuid), It.IsAny <int>()), Times.Once);
        }
        public IActionResult Employer(string employerIdentifier)
        {
            if (string.IsNullOrWhiteSpace(employerIdentifier))
            {
                return(new HttpBadRequestResult("Missing employer identifier"));
            }

            CustomResult <Organisation> organisationLoadingOutcome;

            try
            {
                organisationLoadingOutcome =
                    ViewingService.OrganisationBusinessLogic.LoadInfoFromActiveEmployerIdentifier(employerIdentifier);

                if (organisationLoadingOutcome.Failed)
                {
                    return(organisationLoadingOutcome.ErrorMessage.ToHttpStatusViewResult());
                }
            }
            catch (Exception ex)
            {
                Logger.LogError(ex, $"Cannot decrypt return employerIdentifier from '{employerIdentifier}'");
                return(View("CustomError", WebService.ErrorViewModelFactory.Create(400)));
            }

            //Clear the default back url of the report page
            ReportBackUrl = null;

            ViewBag.BasketViewModel = new CompareBasketViewModel {
                CanAddEmployers = true, CanViewCompare = true
            };

            return(View(
                       "EmployerDetails/Employer",
                       new EmployerDetailsViewModel
            {
                Organisation = organisationLoadingOutcome.Result,
                LastSearchUrl = SearchPresenter.GetLastSearchUrl(),
                EmployerBackUrl = EmployerBackUrl,
                ComparedEmployers = ComparePresenter.ComparedEmployers.Value
            }));
        }
        public async Task <IActionResult> SearchResults([FromQuery] SearchResultsQuery searchQuery)
        {
            //Ensure search service is enabled
            if (ViewingService.SearchBusinessLogic.EmployerSearchRepository.Disabled)
            {
                return(View("CustomError",
                            WebService.ErrorViewModelFactory.Create(1151, new { featureName = "Search Service" })));
            }

            //When never searched in this session
            if (string.IsNullOrWhiteSpace(SearchPresenter.LastSearchParameters))
            {
                //If no compare employers in session then load employers from the cookie
                if (ComparePresenter.BasketItemCount == 0)
                {
                    ComparePresenter.LoadComparedEmployersFromCookie();
                }
            }

            //Clear the default back url of the employer hub pages
            EmployerBackUrl = null;
            ReportBackUrl   = null;

            // ensure parameters are valid
            if (!searchQuery.TryValidateSearchParams(out var result))
            {
                return(result);
            }

            // generate result view model
            var searchParams = AutoMapper.Map <EmployerSearchParameters>(searchQuery);
            var model        = await ViewingPresenter.SearchAsync(searchParams);

            ViewBag.ReturnUrl = SearchPresenter.GetLastSearchUrl();

            ViewBag.BasketViewModel = new CompareBasketViewModel
            {
                CanAddEmployers = false, CanViewCompare = ComparePresenter.BasketItemCount > 1, CanClearCompare = true
            };

            return(View("Finder/SearchResults", model));
        }
        public async Task <IActionResult> SearchResultsJs([FromQuery] SearchResultsQuery searchQuery)
        {
            //Clear the default back url of the employer hub pages
            EmployerBackUrl = null;
            ReportBackUrl   = null;


            // ensure parameters are valid
            if (!searchQuery.TryValidateSearchParams(out var result))
            {
                return(result);
            }

            // generate result view model
            var searchParams = AutoMapper.Map <EmployerSearchParameters>(searchQuery);
            var model        = await ViewingPresenter.SearchAsync(searchParams);

            ViewBag.ReturnUrl = SearchPresenter.GetLastSearchUrl();

            return(PartialView("Finder/Parts/MainContent", model));
        }
Пример #16
0
        public void TestViewMySearch_ShouldSetViewModelProductsCorrectly(string searchParam)
        {
            var mockedView = new Mock <ISearchView>();

            mockedView.Setup(v => v.Model).Returns(new ProductListViewModel());

            var category = new Category();
            var product  = new Models.Product {
                Category = category
            };

            var mockedService = new Mock <IProductService>();

            mockedService.Setup(s => s.SearchProducts(It.IsAny <string>())).Returns(new List <Models.Product> {
                product
            });

            var productDetailsViewModel = new ProductDetailsViewModel();

            var mockedFactory = new Mock <IViewModelFactory>();

            mockedFactory.Setup(f => f.CreateProductDetailsViewModel(It.IsAny <int>(),
                                                                     It.IsAny <string>(), It.IsAny <string>(), It.IsAny <decimal>(), It.IsAny <double>(), It.IsAny <string>(),
                                                                     It.IsAny <string>(), It.IsAny <byte[]>()))
            .Returns(productDetailsViewModel);

            var presenter = new SearchPresenter(mockedView.Object, mockedService.Object, mockedFactory.Object);

            var args = new SearchEventArgs(searchParam);

            mockedView.Raise(v => v.MySearch += null, args);

            var expected = new List <ProductDetailsViewModel> {
                productDetailsViewModel
            };

            CollectionAssert.AreEqual(expected, mockedView.Object.Model.Products);
        }
Пример #17
0
 protected void Page_Load(object sender, EventArgs e)
 {
     presenter = new SearchPresenter(this);
 }
Пример #18
0
 public Search()
 {
     presenter = new SearchPresenter(this);
 }
Пример #19
0
        public SearchForm()
        {
            InitializeComponent();

            _presenter = new SearchPresenter(this);
        }
        /// <summary>
        /// The ApplicationPresenter is resposnible for configuring all the dependent Presenters.
        /// </summary>
        private void ConfigureSearchPresenter()
        {
            View.SearchView.ApplicationView = View;
            View.SearchView.SpeakableElementSelected += AllViews_SpeakableElementSelected;
            View.SearchView.SpeakableElementSelectedHelpText += AllViews_SpeakableElementSelectedHelpText;
            View.SearchView.SelfVoicingSpeakText += AllViews_SelfVoicingSpeakText;

            SearchPresenter = new SearchPresenter(View.SearchView, this, MainState.SearchState);
        }
 public SearchController(ISearchUseCase searchUseCase, SearchPresenter searchPresenter)
 {
     _searchUseCase   = searchUseCase;
     _searchPresenter = searchPresenter;
 }