Exemplo n.º 1
0
        public void ShouldPassCorrectAccessToken()
        {
            const string accessToken = "access_token";
            IUsergridRequest request = Helpers.InitializeUserGridRequestWithAccessToken(accessToken);

            var restResponseContent = new UsergridGetResponse<Friend> { Entities = new List<Friend>(), Cursor = "" };
            IRestResponse<UsergridGetResponse<Friend>> restResponse = Helpers.SetUpRestResponseWithContent<UsergridGetResponse<Friend>>(HttpStatusCode.OK, restResponseContent);

            request
                .Execute(Arg.Any<string>(), Arg.Any<Method>(), Arg.Any<object>(), Arg.Any<string>())
                .Returns(restResponse);

            const string collectionName = "collection";
            const string entityName = "entity";

            var client = new Client(null, null, request: request);
            client.Login(null, null, AuthType.ClientId);
            var friend = client.GetEntity<Friend>(collectionName, entityName);
            Assert.IsNull(friend);

            request.Received(1).Execute(
                Arg.Is(string.Format("/{0}/{1}", collectionName, entityName)),
                Arg.Is(Method.GET),
                Arg.Any<object>(),
                accessToken);
        }
        public void GetEntityShouldReturnFirstEntityInListCorrectly()
        {
            var friend1 = new Friend {
                Name = "name1", Age = 1
            };
            var friend2 = new Friend {
                Name = "name2", Age = 2
            };

            var entities = new List <Friend> {
                friend1, friend2
            };
            var restResponseContent = new UsergridGetResponse <Friend> {
                Entities = entities, Cursor = "cursor"
            };
            IRestResponse <UsergridGetResponse <Friend> > restResponse = Helpers.SetUpRestResponseWithContent <UsergridGetResponse <Friend> >(HttpStatusCode.OK, restResponseContent);

            _request
            .ExecuteJsonRequest(Arg.Any <string>(), Arg.Any <Method>(), Arg.Any <object>())
            .Returns(restResponse);

            const string collectionName = "collection";
            const string identifier     = "identifier";

            Friend returnedFriend = _entityManager.GetEntity <Friend>(collectionName, identifier);

            Assert.IsNotNull(returnedFriend);
            Assert.AreEqual(friend1.Name, returnedFriend.Name);
            Assert.AreEqual(friend1.Age, returnedFriend.Age);
        }
        public void GetEntitiesShouldReturnListCorrectly()
        {
            var friend1 = new Friend {
                Name = "name1", Age = 1
            };
            var friend2 = new Friend {
                Name = "name2", Age = 2
            };
            var entities = new List <Friend> {
                friend1, friend2
            };
            var restResponseContent = new UsergridGetResponse <Friend> {
                Entities = entities, Cursor = "cursor"
            };
            var restResponse = Helpers.SetUpRestResponseWithContent <UsergridGetResponse <Friend> >(HttpStatusCode.OK, restResponseContent);

            _request
            .ExecuteJsonRequest(Arg.Any <string>(), Arg.Any <Method>(), Arg.Any <object>())
            .Returns(restResponse);

            var friends = _entityManager.GetEntities <Friend>("collection");

            Assert.IsNotNull(friends);
            Assert.AreEqual(entities.Count, friends.Count);
            Assert.AreEqual(friend1.Name, friends[0].Name);
            Assert.AreEqual(friend1.Age, friends[0].Age);
            Assert.AreEqual(friend2.Name, friends[1].Name);
            Assert.AreEqual(friend2.Age, friends[1].Age);
        }
Exemplo n.º 4
0
        public void ShouldReturnEntityCorrectly()
        {
            var friend = new Friend {
                Name = "name", Age = 1
            };

            var restResponseContent = new UsergridGetResponse <Friend> {
                Entities = new List <Friend> {
                    friend
                }, Cursor = "cursor"
            };
            IRestResponse <UsergridGetResponse <Friend> > restResponse = Helpers.SetUpRestResponseWithContent <UsergridGetResponse <Friend> >(HttpStatusCode.OK, restResponseContent);

            var request = Substitute.For <IUsergridRequest>();

            request
            .Execute(Arg.Any <string>(), Arg.Any <Method>(), Arg.Any <object>(), Arg.Any <string>())
            .Returns(restResponse);

            const string collectionName = "collection";
            const string entityName     = "entity";

            var client         = new Client(null, null, request: request);
            var returnedFriend = client.GetEntity <Friend>(collectionName, entityName);

            Assert.IsNotNull(returnedFriend);
            Assert.AreEqual(friend.Name, returnedFriend.Name);
            Assert.AreEqual(friend.Age, returnedFriend.Age);
        }
        public void CreateEntityShouldPostToCorrectEndPoint()
        {
            const string collectionName = "collection";
            var          entityToPost   = new Friend {
                Name = "name1", Age = 1
            };
            var restResponseContent = new UsergridGetResponse <Friend> {
                Entities = new List <Friend> {
                    entityToPost
                }, Cursor = "cursor"
            };
            IRestResponse <UsergridGetResponse <Friend> > restResponse = Helpers.SetUpRestResponseWithContent <UsergridGetResponse <Friend> >(HttpStatusCode.OK, restResponseContent);

            _request
            .ExecuteJsonRequest(Arg.Any <string>(), Arg.Any <Method>(), Arg.Any <object>())
            .Returns(restResponse);

            Friend returnedEntity = _entityManager.CreateEntity(collectionName, entityToPost);

            _request.Received(1).ExecuteJsonRequest(
                Arg.Is(string.Format("/{0}", collectionName)),
                Arg.Is(Method.POST),
                Arg.Is(entityToPost));

            Assert.AreEqual(entityToPost.Age, returnedEntity.Age);
            Assert.AreEqual(entityToPost.Name, returnedEntity.Name);
        }
Exemplo n.º 6
0
        public void ShouldPassCorrectAccessToken()
        {
            const string     accessToken = "access_token";
            IUsergridRequest request     = Helpers.InitializeUserGridRequestWithAccessToken(accessToken);

            var restResponseContent = new UsergridGetResponse <Friend> {
                Entities = new List <Friend>(), Cursor = ""
            };
            IRestResponse <UsergridGetResponse <Friend> > restResponse = Helpers.SetUpRestResponseWithContent <UsergridGetResponse <Friend> >(HttpStatusCode.OK, restResponseContent);

            request
            .Execute(Arg.Any <string>(), Arg.Any <Method>(), Arg.Any <object>(), Arg.Any <string>())
            .Returns(restResponse);

            const string collectionName = "collection";
            const string entityName     = "entity";

            var client = new Client(null, null, request: request);

            client.Login(null, null, AuthType.ClientId);
            var friend = client.GetEntity <Friend>(collectionName, entityName);

            Assert.IsNull(friend);

            request.Received(1).Execute(
                Arg.Is(string.Format("/{0}/{1}", collectionName, entityName)),
                Arg.Is(Method.GET),
                Arg.Any <object>(),
                accessToken);
        }
Exemplo n.º 7
0
        public void ShouldGetToCorrectEndPoint()
        {
            var restResponseContent = new UsergridGetResponse <Friend> {
                Entities = new List <Friend>(), Cursor = ""
            };
            IRestResponse <UsergridGetResponse <Friend> > restResponse = Helpers.SetUpRestResponseWithContent <UsergridGetResponse <Friend> >(HttpStatusCode.OK, restResponseContent);

            var request = Substitute.For <IUsergridRequest>();

            request
            .Execute(Arg.Any <string>(), Arg.Any <Method>(), Arg.Any <object>(), Arg.Any <string>())
            .Returns(restResponse);

            const string collectionName = "collection";
            const string entityName     = "entity";

            var client = new Client(null, null, request: request);

            client.GetEntity <Friend>(collectionName, entityName);

            request.Received(1).Execute(
                Arg.Is(string.Format("/{0}/{1}", collectionName, entityName)),
                Arg.Is(Method.GET),
                Arg.Any <object>(),
                Arg.Any <string>());
        }
        public void GetConnectionsReturnsConnectionsAsList()
        {
            var connection = new Connection
            {
                ConnectorCollectionName = "users",
                ConnectorIdentifier     = "userName",
                ConnectionName          = "has"
            };

            var expectedEntities = new List <UsergridEntity>();
            var responseData     = new UsergridGetResponse <UsergridEntity>()
            {
                Entities = expectedEntities
            };
            IRestResponse restResponse = Helpers.SetUpRestResponseWithContent <UsergridGetResponse <UsergridEntity> >(HttpStatusCode.OK, responseData);

            _request
            .ExecuteJsonRequest(Arg.Any <string>(), Arg.Any <Method>(), Arg.Any <object>())
            .Returns(restResponse);

            var returnedEntities = _connectionManager.GetConnections(connection);

            _request
            .Received(1)
            .ExecuteJsonRequest("/users/userName/has", Method.GET);
            Assert.AreEqual(expectedEntities, returnedEntities);
        }
        public void GetEntitiesShouldGetToCorrectEndPointWithDefaultLimitAndQuery()
        {
            var restResponseContent = new UsergridGetResponse <Friend> {
                Entities = new List <Friend>(), Cursor = ""
            };
            var restResponse = Helpers.SetUpRestResponseWithContent <UsergridGetResponse <Friend> >(HttpStatusCode.OK, restResponseContent);

            _request
            .ExecuteJsonRequest(Arg.Any <string>(), Arg.Any <Method>(), Arg.Any <object>())
            .Returns(restResponse);

            const string collectionName = "collection";

            _entityManager.GetEntities <Friend>(collectionName);

            _request.Received(1).ExecuteJsonRequest(
                Arg.Is(string.Format("/{0}?limit=10", collectionName)),
                Arg.Is(Method.GET),
                Arg.Is <object>(x => x == null));
        }
        public void CreateEntityShouldPostToCorrectEndPoint()
        {
            const string collectionName = "collection";
            var entityToPost = new Friend {Name = "name1", Age = 1};
            var restResponseContent = new UsergridGetResponse<Friend> {Entities = new List<Friend> {entityToPost}, Cursor = "cursor"};
            IRestResponse<UsergridGetResponse<Friend>> restResponse = Helpers.SetUpRestResponseWithContent<UsergridGetResponse<Friend>>(HttpStatusCode.OK, restResponseContent);
            _request
                .ExecuteJsonRequest(Arg.Any<string>(), Arg.Any<Method>(), Arg.Any<object>())
                .Returns(restResponse);

            Friend returnedEntity = _entityManager.CreateEntity(collectionName, entityToPost);

            _request.Received(1).ExecuteJsonRequest(
                Arg.Is(string.Format("/{0}", collectionName)),
                Arg.Is(Method.POST),
                Arg.Is(entityToPost));

            Assert.AreEqual(entityToPost.Age, returnedEntity.Age);
            Assert.AreEqual(entityToPost.Name, returnedEntity.Name);
        }
        public void GetEntityShouldGetToCorrectEndPoint()
        {
            var restResponseContent = new UsergridGetResponse <Friend> {
                Entities = new List <Friend>(), Cursor = ""
            };
            IRestResponse <UsergridGetResponse <Friend> > restResponse = Helpers.SetUpRestResponseWithContent <UsergridGetResponse <Friend> >(HttpStatusCode.OK, restResponseContent);

            _request
            .ExecuteJsonRequest(Arg.Any <string>(), Arg.Any <Method>(), Arg.Any <object>())
            .Returns(restResponse);

            const string collectionName = "collection";
            const string identifer      = "identifier";

            _entityManager.GetEntity <Friend>(collectionName, identifer);

            _request.Received(1).ExecuteJsonRequest(
                Arg.Is(string.Format("/{0}/{1}", collectionName, identifer)),
                Arg.Is(Method.GET),
                Arg.Any <object>());
        }
Exemplo n.º 12
0
        public void ShouldReturnEntityCorrectly()
        {
            var friend = new Friend { Name = "name", Age = 1 };

            var restResponseContent = new UsergridGetResponse<Friend> { Entities = new List<Friend> { friend }, Cursor = "cursor" };
            IRestResponse<UsergridGetResponse<Friend>> restResponse = Helpers.SetUpRestResponseWithContent<UsergridGetResponse<Friend>>(HttpStatusCode.OK, restResponseContent);

            var request = Substitute.For<IUsergridRequest>();
            request
                .Execute(Arg.Any<string>(), Arg.Any<Method>(), Arg.Any<object>(), Arg.Any<string>())
                .Returns(restResponse);

            const string collectionName = "collection";
            const string entityName = "entity";

            var client = new Client(null, null, request: request);
            var returnedFriend = client.GetEntity<Friend>(collectionName, entityName);

            Assert.IsNotNull(returnedFriend);
            Assert.AreEqual(friend.Name, returnedFriend.Name);
            Assert.AreEqual(friend.Age, returnedFriend.Age);
        }
Exemplo n.º 13
0
        public void ShouldGetToCorrectEndPoint()
        {
            var restResponseContent = new UsergridGetResponse<Friend> { Entities = new List<Friend>(), Cursor = "" };
            IRestResponse<UsergridGetResponse<Friend>> restResponse = Helpers.SetUpRestResponseWithContent<UsergridGetResponse<Friend>>(HttpStatusCode.OK, restResponseContent);

            var request = Substitute.For<IUsergridRequest>();
            request
                .Execute(Arg.Any<string>(), Arg.Any<Method>(), Arg.Any<object>(), Arg.Any<string>())
                .Returns(restResponse);

            const string collectionName = "collection";
            const string entityName = "entity";

            var client = new Client(null, null, request: request);
            client.GetEntity<Friend>(collectionName, entityName);

            request.Received(1).Execute(
                Arg.Is(string.Format("/{0}/{1}", collectionName, entityName)),
                Arg.Is(Method.GET),
                Arg.Any<object>(),
                Arg.Any<string>());
        }
Exemplo n.º 14
0
        public void GetAllUsersInGroupShouldGetAllUsersInGroup()
        {
            var expectedUserList = new List <UsergridUser>()
            {
                new UsergridUser()
                {
                    UserName = "******", Name = "user1"
                }
            };
            var responseContent = new UsergridGetResponse <UsergridUser>()
            {
                Entities = expectedUserList
            };
            var restResponse = Helpers.SetUpRestResponseWithContent <UsergridGetResponse <UsergridUser> >(HttpStatusCode.OK, responseContent);

            _request.ExecuteJsonRequest("/groups/groupName/users", Method.GET).Returns(restResponse);

            var returnedUsers = _client.GetAllUsersInGroup <UsergridUser>("groupName");

            _request.Received(1).ExecuteJsonRequest("/groups/groupName/users", Method.GET);
            Assert.AreEqual(1, returnedUsers.Count);
            Assert.AreEqual("userName", returnedUsers[0].UserName);
            Assert.AreEqual("user1", returnedUsers[0].Name);
        }
Exemplo n.º 15
0
        public void GetConnectionsReturnsConnectionsAsList()
        {
            var connection = new Connection
            {
                ConnectorCollectionName = "users",
                ConnectorIdentifier = "userName",
                ConnectionName = "has"
            };

            var expectedEntities = new List<UsergridEntity>();
            var responseData = new UsergridGetResponse<UsergridEntity>() {Entities = expectedEntities};
            IRestResponse restResponse = Helpers.SetUpRestResponseWithContent<UsergridGetResponse<UsergridEntity>>(HttpStatusCode.OK, responseData);

            _request
                .ExecuteJsonRequest(Arg.Any<string>(), Arg.Any<Method>(), Arg.Any<object>())
                .Returns(restResponse);

            var returnedEntities = _connectionManager.GetConnections(connection);

            _request
                .Received(1)
                .ExecuteJsonRequest("/users/userName/has",Method.GET);
            Assert.AreEqual(expectedEntities, returnedEntities);
        }
        public void GetPreviousEntitiesShouldGetToCorrectEndPointWithCorrectCursorState()
        {
            var friend1 = new Friend {
                Name = "name1", Age = 1
            };
            var friend2 = new Friend {
                Name = "name2", Age = 2
            };
            var friend3 = new Friend {
                Name = "name3", Age = 3
            };
            var friend4 = new Friend {
                Name = "name4", Age = 4
            };
            var friend5 = new Friend {
                Name = "name5", Age = 5
            };
            var friend6 = new Friend {
                Name = "name6", Age = 6
            };
            var entities1 = new List <Friend> {
                friend1, friend2
            };
            var entities2 = new List <Friend> {
                friend3, friend4
            };
            var entities3 = new List <Friend> {
                friend5, friend6
            };
            var restResponseContent1 = new UsergridGetResponse <Friend> {
                Entities = entities1, Cursor = "cursor1"
            };
            var restResponse1        = Helpers.SetUpRestResponseWithContent <UsergridGetResponse <Friend> >(HttpStatusCode.OK, restResponseContent1);
            var restResponseContent2 = new UsergridGetResponse <Friend> {
                Entities = entities2, Cursor = "cursor2"
            };
            var restResponse2        = Helpers.SetUpRestResponseWithContent <UsergridGetResponse <Friend> >(HttpStatusCode.OK, restResponseContent2);
            var restResponseContent3 = new UsergridGetResponse <Friend> {
                Entities = entities3
            };
            var restResponse3 = Helpers.SetUpRestResponseWithContent <UsergridGetResponse <Friend> >(HttpStatusCode.OK, restResponseContent3);

            _request
            .ExecuteJsonRequest("/collection?limit=10", Method.GET, Arg.Is <object>(x => x == null))
            .Returns(restResponse1);
            _request
            .ExecuteJsonRequest("/collection?cursor=cursor1&limit=10", Method.GET, Arg.Is <object>(x => x == null))
            .Returns(restResponse2);
            _request
            .ExecuteJsonRequest("/collection?cursor=cursor2&limit=10", Method.GET, Arg.Is <object>(x => x == null))
            .Returns(restResponse3);
            _request
            .ExecuteJsonRequest("/collection?cursor=cursor1&limit=10", Method.GET, Arg.Is <object>(x => x == null))
            .Returns(restResponse2);
            _request
            .ExecuteJsonRequest("/collection?&limit=10", Method.GET, Arg.Is <object>(x => x == null))
            .Returns(restResponse1);

            UsergridCollection <Friend> list1 = _entityManager.GetEntities <Friend>("collection");
            UsergridCollection <Friend> list2 = _entityManager.GetNextEntities <Friend>("collection");
            UsergridCollection <Friend> list3 = _entityManager.GetNextEntities <Friend>("collection");
            UsergridCollection <Friend> list4 = _entityManager.GetPreviousEntities <Friend>("collection");
            UsergridCollection <Friend> list5 = _entityManager.GetPreviousEntities <Friend>("collection");

            Assert.AreEqual(entities1[0].Name, list1[0].Name);
            Assert.AreEqual(entities1[1].Age, list1[1].Age);
            Assert.IsTrue(list1.HasNext);
            Assert.IsFalse(list1.HasPrevious);

            Assert.AreEqual(entities2[0].Name, list2[0].Name);
            Assert.AreEqual(entities2[1].Age, list2[1].Age);
            Assert.IsTrue(list2.HasNext);
            Assert.IsTrue(list2.HasPrevious);

            Assert.AreEqual(entities3[0].Name, list3[0].Name);
            Assert.AreEqual(entities3[1].Age, list3[1].Age);
            Assert.IsFalse(list3.HasNext);
            Assert.IsTrue(list3.HasPrevious);

            Assert.AreEqual(entities2[0].Name, list4[0].Name);
            Assert.AreEqual(entities2[1].Age, list4[1].Age);
            Assert.IsTrue(list4.HasNext);
            Assert.IsTrue(list4.HasPrevious);

            Assert.AreEqual(entities1[0].Name, list5[0].Name);
            Assert.AreEqual(entities1[1].Age, list5[1].Age);
            Assert.IsTrue(list5.HasNext);
            Assert.IsFalse(list5.HasPrevious);
        }
        public void GetEntitiesShouldGetToCorrectEndPointWithDefaultLimitAndQuery()
        {
            var restResponseContent = new UsergridGetResponse<Friend> { Entities = new List<Friend>(), Cursor = "" };
            var restResponse = Helpers.SetUpRestResponseWithContent<UsergridGetResponse<Friend>>(HttpStatusCode.OK, restResponseContent);

            _request
                .ExecuteJsonRequest(Arg.Any<string>(), Arg.Any<Method>(), Arg.Any<object>())
                .Returns(restResponse);

            const string collectionName = "collection";

            _entityManager.GetEntities<Friend>(collectionName);

            _request.Received(1).ExecuteJsonRequest(
                Arg.Is(string.Format("/{0}?limit=10", collectionName)),
                Arg.Is(Method.GET),
                Arg.Is<object>(x=> x == null));
        }
        public void GetEntitiesShouldReturnListCorrectly()
        {
            var friend1 = new Friend { Name = "name1", Age = 1 };
            var friend2 = new Friend { Name = "name2", Age = 2 };
            var entities = new List<Friend> { friend1, friend2 };
            var restResponseContent = new UsergridGetResponse<Friend> { Entities = entities, Cursor = "cursor" };
            var restResponse = Helpers.SetUpRestResponseWithContent<UsergridGetResponse<Friend>>(HttpStatusCode.OK, restResponseContent);

            _request
                .ExecuteJsonRequest(Arg.Any<string>(), Arg.Any<Method>(), Arg.Any<object>())
                .Returns(restResponse);

            var friends = _entityManager.GetEntities<Friend>("collection");

            Assert.IsNotNull(friends);
            Assert.AreEqual(entities.Count, friends.Count);
            Assert.AreEqual(friend1.Name, friends[0].Name);
            Assert.AreEqual(friend1.Age, friends[0].Age);
            Assert.AreEqual(friend2.Name, friends[1].Name);
            Assert.AreEqual(friend2.Age, friends[1].Age);
        }
        public void GetEntityShouldGetToCorrectEndPoint()
        {
            var restResponseContent = new UsergridGetResponse<Friend> {Entities = new List<Friend>(), Cursor = ""};
            IRestResponse<UsergridGetResponse<Friend>> restResponse = Helpers.SetUpRestResponseWithContent<UsergridGetResponse<Friend>>(HttpStatusCode.OK, restResponseContent);

            _request
                .ExecuteJsonRequest(Arg.Any<string>(), Arg.Any<Method>(), Arg.Any<object>())
                .Returns(restResponse);

            const string collectionName = "collection";
            const string identifer = "identifier";

            _entityManager.GetEntity<Friend>(collectionName, identifer);

            _request.Received(1).ExecuteJsonRequest(
                Arg.Is(string.Format("/{0}/{1}", collectionName, identifer)),
                Arg.Is(Method.GET),
                Arg.Any<object>());
        }
        public void GetEntityShouldReturnFirstEntityInListCorrectly()
        {
            var friend1 = new Friend {Name = "name1", Age = 1};
            var friend2 = new Friend {Name = "name2", Age = 2};

            var entities = new List<Friend> {friend1, friend2};
            var restResponseContent = new UsergridGetResponse<Friend> {Entities = entities, Cursor = "cursor"};
            IRestResponse<UsergridGetResponse<Friend>> restResponse = Helpers.SetUpRestResponseWithContent<UsergridGetResponse<Friend>>(HttpStatusCode.OK, restResponseContent);

            _request
                .ExecuteJsonRequest(Arg.Any<string>(), Arg.Any<Method>(), Arg.Any<object>())
                .Returns(restResponse);

            const string collectionName = "collection";
            const string identifier = "identifier";

            Friend returnedFriend = _entityManager.GetEntity<Friend>(collectionName, identifier);

            Assert.IsNotNull(returnedFriend);
            Assert.AreEqual(friend1.Name, returnedFriend.Name);
            Assert.AreEqual(friend1.Age, returnedFriend.Age);
        }
Exemplo n.º 21
0
        public void GetAllUsersInGroupShouldGetAllUsersInGroup()
        {
            var expectedUserList = new List<UsergridUser>() {new UsergridUser() {UserName = "******", Name = "user1"}};
            var responseContent = new UsergridGetResponse<UsergridUser>() {Entities = expectedUserList};
            var restResponse = Helpers.SetUpRestResponseWithContent<UsergridGetResponse<UsergridUser>>(HttpStatusCode.OK, responseContent);

            _request.ExecuteJsonRequest("/groups/groupName/users", Method.GET).Returns(restResponse);

            var returnedUsers = _client.GetAllUsersInGroup<UsergridUser>("groupName");

            _request.Received(1).ExecuteJsonRequest("/groups/groupName/users", Method.GET);
            Assert.AreEqual(1, returnedUsers.Count);
            Assert.AreEqual("userName", returnedUsers[0].UserName);
            Assert.AreEqual("user1", returnedUsers[0].Name);
        }
        public void GetPreviousEntitiesShouldGetToCorrectEndPointWithCorrectCursorState()
        {
            var friend1 = new Friend { Name = "name1", Age = 1 };
            var friend2 = new Friend { Name = "name2", Age = 2 };
            var friend3 = new Friend { Name = "name3", Age = 3 };
            var friend4 = new Friend { Name = "name4", Age = 4 };
            var friend5 = new Friend { Name = "name5", Age = 5 };
            var friend6 = new Friend { Name = "name6", Age = 6 };
            var entities1 = new List<Friend> { friend1, friend2 };
            var entities2 = new List<Friend> { friend3, friend4 };
            var entities3 = new List<Friend> { friend5, friend6 };
            var restResponseContent1 = new UsergridGetResponse<Friend> { Entities = entities1, Cursor = "cursor1" };
            var restResponse1 = Helpers.SetUpRestResponseWithContent<UsergridGetResponse<Friend>>(HttpStatusCode.OK, restResponseContent1);
            var restResponseContent2 = new UsergridGetResponse<Friend> { Entities = entities2, Cursor = "cursor2" };
            var restResponse2 = Helpers.SetUpRestResponseWithContent<UsergridGetResponse<Friend>>(HttpStatusCode.OK, restResponseContent2);
            var restResponseContent3 = new UsergridGetResponse<Friend> { Entities = entities3 };
            var restResponse3 = Helpers.SetUpRestResponseWithContent<UsergridGetResponse<Friend>>(HttpStatusCode.OK, restResponseContent3);

            _request
               .ExecuteJsonRequest("/collection?limit=10", Method.GET, Arg.Is<object>(x => x == null))
               .Returns(restResponse1);
            _request
                .ExecuteJsonRequest("/collection?cursor=cursor1&limit=10", Method.GET, Arg.Is<object>(x => x == null))
                .Returns(restResponse2);
            _request
                .ExecuteJsonRequest("/collection?cursor=cursor2&limit=10", Method.GET, Arg.Is<object>(x => x == null))
                .Returns(restResponse3);
            _request
                .ExecuteJsonRequest("/collection?cursor=cursor1&limit=10", Method.GET, Arg.Is<object>(x => x == null))
                .Returns(restResponse2);
            _request
                .ExecuteJsonRequest("/collection?&limit=10", Method.GET, Arg.Is<object>(x => x == null))
                .Returns(restResponse1);

            UsergridCollection<Friend> list1 = _entityManager.GetEntities<Friend>("collection");
            UsergridCollection<Friend> list2 = _entityManager.GetNextEntities<Friend>("collection");
            UsergridCollection<Friend> list3 = _entityManager.GetNextEntities<Friend>("collection");
            UsergridCollection<Friend> list4 = _entityManager.GetPreviousEntities<Friend>("collection");
            UsergridCollection<Friend> list5 = _entityManager.GetPreviousEntities<Friend>("collection");

            Assert.AreEqual(entities1[0].Name,list1[0].Name);
            Assert.AreEqual(entities1[1].Age,list1[1].Age);
            Assert.IsTrue(list1.HasNext);
            Assert.IsFalse(list1.HasPrevious);

            Assert.AreEqual(entities2[0].Name,list2[0].Name);
            Assert.AreEqual(entities2[1].Age,list2[1].Age);
            Assert.IsTrue(list2.HasNext);
            Assert.IsTrue(list2.HasPrevious);

            Assert.AreEqual(entities3[0].Name,list3[0].Name);
            Assert.AreEqual(entities3[1].Age,list3[1].Age);
            Assert.IsFalse(list3.HasNext);
            Assert.IsTrue(list3.HasPrevious);

            Assert.AreEqual(entities2[0].Name, list4[0].Name);
            Assert.AreEqual(entities2[1].Age, list4[1].Age);
            Assert.IsTrue(list4.HasNext);
            Assert.IsTrue(list4.HasPrevious);

            Assert.AreEqual(entities1[0].Name, list5[0].Name);
            Assert.AreEqual(entities1[1].Age, list5[1].Age);
            Assert.IsTrue(list5.HasNext);
            Assert.IsFalse(list5.HasPrevious);
        }