Example #1
0
        private IScanResponse <T> LoadNextPage()
        {
            var skip  = IterateSkip();
            var limit = Limit;

            var request  = ScanRequest.CreateBaseRestRequest(skip, limit);
            var response = ScanRequest.ExecuteScanRestRequest(request);

            return(response);
        }
        public void TestFieldParameterGeneration()
        {
            var mockRestClient = A.Fake <IRestClient>();

            A.CallTo(mockRestClient).DoesNothing();
            A.CallTo(() => mockRestClient.Execute <ScanResponse <Lead> >(A <IRestRequest> .That.Matches(request =>
                                                                                                        request.Parameters.Where(param => param.Name.Equals("_fields"))
                                                                                                        .Any(param => param.Value.Equals("id,name,display_name,opportunities")))))
            .Returns(new RestResponse <ScanResponse <Lead> >
            {
                StatusCode = HttpStatusCode.OK,
                Data       = new ScanResponse <Lead>
                {
                    HasMore      = false,
                    TotalResults = 0,
                    Data         = new List <Lead>()
                }
            });
            A.CallTo(() => mockRestClient.Execute <ScanResponse <Lead> >(A <IRestRequest> .That.Not.Matches(request =>
                                                                                                            request.Parameters.Where(param => param.Name.Equals("_fields"))
                                                                                                            .Any(param => param.Value.Equals("id,name,display_name,opportunities")))))
            .Throws(new AssertFailedException("RestClient.Execute called with unexpected parameters"));
            Factory.DispenseForType <IRestClient, RestClient>(mockRestClient);


            var unit = new ScanRequest <Lead>()
            {
                Fields = new List <IEntityField>()
                {
                    new EntityFieldAttribute(typeof(Lead), "Id", "id", false, false, false, false, false),
                    new EntityFieldAttribute(typeof(Lead), "Name", "name", false, false, false, false, false),
                    new EntityFieldAttribute(typeof(Lead), "DisplayName", "display_name", false, false, false, false,
                                             false),
                    new EntityFieldAttribute(typeof(Lead), "Opportunities", "opportunities", false, false, false, false,
                                             false),
                }
            };
            var result = unit.CreateBaseRestRequest(0, 100);

            Assert.IsNotNull(result);
            Assert.IsTrue(result.Parameters.Exists(param => param.Name.Equals("_fields")));
            var value = result.Parameters.First(entry => entry.Name.Equals("_fields")).Value;

            Assert.AreEqual("id,name,display_name,opportunities", value);
        }