Exemplo n.º 1
0
        public SearchGroupsResponse SearchGroups(SearchGroupsRequest request)
        {
            var url = BaseServiceUrl + "groups/search";
            var criteria = new Dictionary<string, string>();

            if (!string.IsNullOrWhiteSpace(request.GroupName))
                criteria.Add("groupName", request.GroupName);
            if (request.Status != SearchGroupStatus.Active)
                criteria.Add("status", request.Status.ToString());
            if (request.UserId.HasValue)
                criteria.Add("userID", request.UserId.Value.ToString(CultureInfo.InvariantCulture));
            if (request.Private.HasValue)
                criteria.Add("private", request.Private.Value ? "1" : "0");
            if (request.PageNumber.HasValue)
            {
                var page = request.PageNumber.Value;
                if (page < 1)
                    throw new ArgumentOutOfRangeException("page", page, "Page number must be a positive integer.");
                criteria.Add("page", page.ToString(CultureInfo.InvariantCulture));
            }
            if (request.PageSize.HasValue)
            {
                var size = request.PageSize.Value;
                if (size < 1 || size > 250)
                    throw new ArgumentOutOfRangeException("pageSize", size, "Page size must be a value from 1 to 250.");
                criteria.Add("rpp", size.ToString(CultureInfo.InvariantCulture));
            }

            var queryString = criteria.Select(x => string.Format("{0}={1}", x.Key, HttpUtility.UrlEncode(x.Value))).ToArray();
            if (queryString.Any())
                url += "?" + string.Join("&", queryString);

            return GetObject<SearchGroupsResponse>(url);
        }
        public void CanRetrieveNumberOfTweetsRequested()
        {
            var criteria = new SearchGroupsRequest();
            var response = _sut.SearchGroups(criteria);

            response.Success.Should().Be(1);
            response.Data.Records.Should().NotBeEmpty();
        }