Exemple #1
0
        public async Task Listings_set_to_result_of_listings_func()
        {
            var listingsBuilder = new ListingsModelBuilder <StubModel, StubFilter, StubViewModel>();
            var EXPECTED        = new List <StubModel> {
                new StubModel {
                    Name = "Model 1"
                },
                new StubModel {
                    Name = "Model 2"
                },
                new StubModel {
                    Name = "Model 3"
                }
            };

            var result = await listingsBuilder.BuildModel(
                () => new StubViewModel { Filter = new StubFilter() },
                x => Task.FromResult(EXPECTED.Count),
                x => Task.FromResult(new List <StubModel> {
                EXPECTED[0], EXPECTED[1], EXPECTED[2]
            }),
                PAGE_TITLE,
                PAGE_URL,
                new NameValueCollection()
            {
                { "size", "15" }, { "pagesize", "15" }
            }
                ).ConfigureAwait(false);

            Assert.Equal(EXPECTED.Count, result.Listings.Count);
            foreach (var listing in EXPECTED)
            {
                Assert.True(result.Listings.IndexOf(listing) > -1);
            }
        }
Exemple #2
0
        public async Task Throws_ArgumentException_if_buildInitialState_returns_null()
        {
            var listingsBuilder = new ListingsModelBuilder <StubModel, StubFilter, StubViewModel>();

            await Assert.ThrowsAsync <ArgumentException>(async() => await listingsBuilder.BuildModel(() => null,
                                                                                                     x => Task.FromResult(0),
                                                                                                     x => Task.FromResult(new List <StubModel>()),
                                                                                                     PAGE_TITLE,
                                                                                                     PAGE_URL,
                                                                                                     new NameValueCollection()).ConfigureAwait(false)).ConfigureAwait(false);
        }
Exemple #3
0
        public async Task Throws_ArgumentNullException_if_totalListings_is_null()
        {
            var listingsBuilder = new ListingsModelBuilder <StubModel, StubFilter, StubViewModel>();

            await Assert.ThrowsAsync <ArgumentNullException>(async() => await listingsBuilder.BuildModel(
                                                                 () => new StubViewModel {
                Filter = new StubFilter()
            },
                                                                 null,
                                                                 x => Task.FromResult(new List <StubModel>()),
                                                                 PAGE_TITLE,
                                                                 PAGE_URL,
                                                                 new NameValueCollection()).ConfigureAwait(false)).ConfigureAwait(false);
        }
Exemple #4
0
        public async Task Throws_ArgumentException_if_pageTitle_is_null_or_empty(string pageTitle)
        {
            var listingsBuilder = new ListingsModelBuilder <StubModel, StubFilter, StubViewModel>();

            await Assert.ThrowsAsync <ArgumentException>(async() => await listingsBuilder.BuildModel(
                                                             () => new StubViewModel {
                Filter = new StubFilter()
            },
                                                             x => Task.FromResult(0),
                                                             x => Task.FromResult(new List <StubModel>()),
                                                             pageTitle,
                                                             PAGE_URL,
                                                             new NameValueCollection()).ConfigureAwait(false)).ConfigureAwait(false);
        }
Exemple #5
0
        public async Task Page_title_equals_page_title_parameter_if_no_query()
        {
            var listingsBuilder = new ListingsModelBuilder <StubModel, StubFilter, StubViewModel>();

            var result = await listingsBuilder.BuildModel(
                () => new StubViewModel { Filter = new StubFilter() },
                x => Task.FromResult(0),
                x => Task.FromResult(new List <StubModel>()),
                PAGE_TITLE,
                PAGE_URL,
                new NameValueCollection()
                ).ConfigureAwait(false);

            Assert.Equal(PAGE_TITLE, result.Metadata.PageTitle);
        }
Exemple #6
0
        public async Task Missing_page_number_defaults_to_1()
        {
            var listingsBuilder = new ListingsModelBuilder <StubModel, StubFilter, StubViewModel>();

            var result = await listingsBuilder.BuildModel(
                () => new StubViewModel { Filter = new StubFilter() },
                x => Task.FromResult(0),
                x => Task.FromResult(new List <StubModel>()),
                PAGE_TITLE,
                PAGE_URL,
                new NameValueCollection()
                ).ConfigureAwait(false);

            Assert.Equal(1, result.Filter.Paging.PageNumber);
        }
Exemple #7
0
        public async Task Reads_query_from_querystring_into_view_model()
        {
            var listingsBuilder = new ListingsModelBuilder <StubModel, StubFilter, StubViewModel>();

            var result = await listingsBuilder.BuildModel(
                () => new StubViewModel { Filter = new StubFilter() },
                x => Task.FromResult(0),
                x => Task.FromResult(new List <StubModel>()),
                PAGE_TITLE,
                PAGE_URL,
                new NameValueCollection()
            {
                { "q", "example" }
            }
                ).ConfigureAwait(false);

            Assert.Equal("example", result.Filter.Query);
        }
Exemple #8
0
        public async Task Page_URL_set_to_pageUrl_parameter()
        {
            var listingsBuilder = new ListingsModelBuilder <StubModel, StubFilter, StubViewModel>();

            var result = await listingsBuilder.BuildModel(
                () => new StubViewModel { Filter = new StubFilter() },
                x => Task.FromResult(0),
                x => Task.FromResult(new List <StubModel>()),
                PAGE_TITLE,
                PAGE_URL,
                new NameValueCollection()
            {
                { "size", "15" }, { "pagesize", "15" }
            }
                ).ConfigureAwait(false);

            Assert.Equal(PAGE_URL, result.Filter.Paging.PageUrl);
        }
Exemple #9
0
        public async Task Parses_page_number_from_querystring()
        {
            var listingsBuilder = new ListingsModelBuilder <StubModel, StubFilter, StubViewModel>();

            var result = await listingsBuilder.BuildModel(
                () => new StubViewModel { Filter = new StubFilter() },
                x => Task.FromResult(0),
                x => Task.FromResult(new List <StubModel>()),
                PAGE_TITLE,
                PAGE_URL,
                new NameValueCollection()
            {
                { "page", "5" }
            }
                ).ConfigureAwait(false);

            Assert.Equal(5, result.Filter.Paging.PageNumber);
        }
Exemple #10
0
        public async Task Returns_model_from_buildInitialState()
        {
            var listingsBuilder = new ListingsModelBuilder <StubModel, StubFilter, StubViewModel>();
            var initialModel    = new StubViewModel {
                Filter = new StubFilter()
            };

            var result = await listingsBuilder.BuildModel(
                () => initialModel,
                x => Task.FromResult(0),
                x => Task.FromResult(new List <StubModel>()),
                PAGE_TITLE,
                PAGE_URL,
                new NameValueCollection()
                ).ConfigureAwait(false);

            Assert.Equal(initialModel, result);
        }
Exemple #11
0
        public async Task Appends_query_from_querystring_onto_page_title()
        {
            var listingsBuilder = new ListingsModelBuilder <StubModel, StubFilter, StubViewModel>();

            var result = await listingsBuilder.BuildModel(
                () => new StubViewModel { Filter = new StubFilter() },
                x => Task.FromResult(0),
                x => Task.FromResult(new List <StubModel>()),
                PAGE_TITLE,
                PAGE_URL,
                new NameValueCollection()
            {
                { "q", "example" }
            }
                ).ConfigureAwait(false);

            Assert.StartsWith(PAGE_TITLE, result.Metadata.PageTitle);
            Assert.Contains("example", result.Metadata.PageTitle, StringComparison.Ordinal);
        }
Exemple #12
0
        public async Task Total_results_set_to_result_of_totalListings_func()
        {
            var       listingsBuilder = new ListingsModelBuilder <StubModel, StubFilter, StubViewModel>();
            const int EXPECTED        = 20;

            var result = await listingsBuilder.BuildModel(
                () => new StubViewModel { Filter = new StubFilter() },
                x => Task.FromResult(EXPECTED),
                x => Task.FromResult(new List <StubModel>()),
                PAGE_TITLE,
                PAGE_URL,
                new NameValueCollection()
            {
                { "size", "15" }, { "pagesize", "15" }
            }
                ).ConfigureAwait(false);

            Assert.Equal(EXPECTED, result.Filter.Paging.Total);
        }