Пример #1
0
        public void GetQueryBooliBaseSearchOptionAttribute()
        {
            var searchOption = new ListedSearchOption();

            var exception = Assert.Throws <ArgumentException>(() => QueryHelper.GetQuery(searchOption));

            Assert.Null(exception.ParamName);
            Assert.Equal("Make sure to always specify a value for at least one of the following properties; Query", exception.Message);
        }
Пример #2
0
        public void GetQuerySerializeDependencyAttribute()
        {
            var searchOption = new ListedSearchOption
            {
                Query     = "nacka",
                Dimension = new Dimension(1, 1)
            };

            var exception = Assert.Throws <ArgumentException>(() => QueryHelper.GetQuery(searchOption));

            Assert.Null(exception.ParamName);
            Assert.Equal("'Center' can't be null since it is dependent by 'Dimension'", exception.Message);
        }
        public void GetListedList()
        {
            const string absoluteUrl  = "https://api.booli.se/listings?q=nacka";
            var          sut          = SetUpTest(absoluteUrl, JsonFile.ListingsMultiple);
            var          searchOption = new ListedSearchOption
            {
                Query = TestConstants.Query
            };

            var actual = sut.GetListed(searchOption);

            VerifyRequest();
            Assert.NotNull(actual);
            Assert.Equal(5, actual.Result.Count());
            Assert.Equal(2347066, actual.Result.First().BooliId);
        }
Пример #4
0
        public void GetQuery()
        {
            var searchOption = new ListedSearchOption
            {
                Center      = new Position(57, 12),
                Dimension   = new Dimension(1, 1),
                ObjectTypes = new[] { ObjectType.Lägenhet, ObjectType.Villa },
                Query       = "nacka"
            };

            var actual = QueryHelper.GetQuery(searchOption);

            Assert.Contains(new KeyValuePair <string, string>("objectTypes", "lägenhet,villa"), actual);
            Assert.Contains(new KeyValuePair <string, string>("dim", "1,1"), actual);
            Assert.Contains(new KeyValuePair <string, string>("center", "57,12"), actual);
            Assert.Contains(new KeyValuePair <string, string>("q", "nacka"), actual);
        }
Пример #5
0
        public async Task GetAsyncMultiple()
        {
            const string absoluteUrl = "https://api.booli.se/listings?q=nacka";

            var(mockNetworkService, mockHttpMessageHandler) = NetworkHelper.SetUpNetworkServiceMock(absoluteUrl, JsonFile.ListingsMultiple);
            var sut = GetBaseService();

            sut.NetworkService = mockNetworkService.Object;
            var searchOption = new ListedSearchOption
            {
                Query = "nacka"
            };

            var actual = await sut.GetAsync <ListedObject, ListedSearchOption>("listings", searchOption);

            mockHttpMessageHandler.VerifyRequest(absoluteUrl, HttpMethod.Get);
            Assert.NotNull(actual);
            Assert.Equal(849, actual.TotalCount);
            Assert.Equal(5, actual.Count);
            Assert.Equal(5, actual.Limit);
            Assert.Equal(0, actual.Offset);
            Assert.Equal(new[] { 76 }, actual.SearchParameters.AreaId);
            Assert.Contains(76, actual.SearchParameters.AreaId);
        }
Пример #6
0
 public async Task <IActionResult> Get(ListedSearchOption searchOption)
 {
     return(Ok(await _booliService.GetListedAsync(searchOption)));
 }
Пример #7
0
 /// <inheritdoc />
 public BooliResult <ListedObject, ListedSearchOption> GetListed(ListedSearchOption searchOptions)
 {
     return(GetListedAsync(searchOptions).GetAwaiter().GetResult());
 }
Пример #8
0
 /// <inheritdoc />
 public async Task <BooliResult <ListedObject, ListedSearchOption> > GetListedAsync(ListedSearchOption searchOptions)
 {
     return(await BaseService.GetAsync <ListedObject, ListedSearchOption>("listings", searchOptions));
 }