public void Student_Controller_Redirect_Returns_Expected_Redirect_For_Known_Uri(string targetUri) { var providerDataService = Substitute.For <IProviderDataService>(); providerDataService .GetWebsiteUrls() .Returns(new Dictionary <string, string> { { WebUtility.UrlDecode(targetUri), targetUri } }); var urlHelper = Substitute.For <IUrlHelper>(); urlHelper.IsLocalUrl(Arg.Any <string>()) .Returns(args => ((string)args[0]).StartsWith("/students/")); var controller = new StudentControllerBuilder().BuildStudentController(providerDataService, urlHelper: urlHelper); var redirectResult = controller.Redirect( new RedirectViewModel { //Use the actual url that's returned from the web site Url = targetUri }) as RedirectResult; redirectResult.Should().NotBeNull(); redirectResult?.Url.Should().Be(targetUri); }
public async Task Student_Controller_Find_Get_Returns_Expected_Value() { var providerSearchEngine = Substitute.For <IProviderSearchEngine>(); providerSearchEngine.Search( Arg.Any <FindViewModel>()) .Returns(args => (FindViewModel)args[0]); var controller = new StudentControllerBuilder().BuildStudentController(providerSearchEngine: providerSearchEngine); var viewModel = new FindViewModel(); var result = await controller.Find(viewModel); var viewResult = result as ViewResult; viewResult.Should().NotBeNull(); viewResult.Model.Should().BeOfType(typeof(FindViewModel)); await providerSearchEngine .Received(1) //.Search(Arg.Is<FindViewModel>(x => x != null)); .Search(viewModel); }