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);
    }
示例#2
0
    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);
    }