Exemplo n.º 1
0
        public void Test_Delete_Users()
        {
            HomeController       controller = this.Resolve();
            List <Models.Person> persons    = this.Generate();
            List <Models.Person> used       = persons.Take(50).ToList();

            // Tworzymy 50 userów
            used.ForEach(person =>
            {
                HttpPostRequest_AddUser addUserRequest = new HttpPostRequest_AddUser
                {
                    Firstname  = person.FirstName,
                    Lastname   = person.LastName,
                    Birthdate  = person.BirthdateDisplay,
                    Height     = person.Height,
                    ClubMember = person.Member
                };

                // Tworzymy goscia na serwie
                JsonResult createUserResult = controller.PostRequestProcessor(JsonConvert.SerializeObject(addUserRequest));
                JObject jObject             = JObject.FromObject(createUserResult.Data);

                PostRequestProcessorResult resultJson = jObject.ToObject <PostRequestProcessorResult>();
                Assert.IsTrue(resultJson.Result, string.Format("Could not create user {0} {1} on web service side!", person.FirstName, person.LastName));
            });

            List <Models.Person> deleted = used.Take(25).ToList();

            deleted.ForEach(person =>
            {
                HttpPostRequest_DropUser dropUserRequest = new HttpPostRequest_DropUser
                {
                    UserID = person.PersonID
                };

                JsonResult createUserResult = controller.PostRequestProcessor(JsonConvert.SerializeObject(dropUserRequest));
                JObject jObject             = JObject.FromObject(createUserResult.Data);

                PostRequestProcessorResult resultJson = jObject.ToObject <PostRequestProcessorResult>();
                Assert.IsTrue(resultJson.Result, string.Format("Could not delete user {0} {1} on web service side!", person.FirstName, person.LastName));
            });

            HttpPostRequest_Users request = new HttpPostRequest_Users {
                ID = "HttpPostRequest_Users", Page = 1, TotalPerPage = 25
            };
            JsonResult requestResult = controller.PostRequestProcessor(JsonConvert.SerializeObject(request));

            JObject jObjectResult = JObject.FromObject(requestResult.Data);
            PostRequestProcessorResultUsers resultUsers = jObjectResult.ToObject <PostRequestProcessorResultUsers>();

            // Intersect powinien oddać nam used - deleted
            deleted.ForEach(person =>
            {
                used.Remove(person);
            });

            List <Models.Person> check = used.Intersect(resultUsers.Users, new UsersEqualityComparer()).ToList();

            Assert.AreEqual(used.Count, check.Count, "Got different users!");
        }
Exemplo n.º 2
0
        private PostRequestProcessorResult Process(HttpPostRequest_AddUser request)
        {
            Person person = new Person
            {
                FirstName        = request.Firstname,
                LastName         = request.Lastname,
                Height           = request.Height,
                Member           = request.ClubMember,
                BirthdateDisplay = request.Birthdate,
                Birthdate        = (request.Birthdate - new DateTime(1970, 1, 1, 0, 0, 0).ToUniversalTime()).TotalMilliseconds
            };

            this.m_dataPrivider.Add(person);
            this.m_dataPrivider.Save();

            return(new PostRequestProcessorResult {
                Result = true, Message = ""
            });
        }
Exemplo n.º 3
0
        public void Test_Filter_Users()
        {
            HomeController       controller = this.Resolve();
            List <Models.Person> persons    = this.Generate();
            List <Models.Person> used       = persons.Take(50).ToList();

            // Tworzymy 50 userów
            used.ForEach(person =>
            {
                HttpPostRequest_AddUser addUserRequest = new HttpPostRequest_AddUser
                {
                    Firstname  = person.FirstName,
                    Lastname   = person.LastName,
                    Birthdate  = person.BirthdateDisplay,
                    Height     = person.Height,
                    ClubMember = person.Member
                };

                // Tworzymy goscia na serwie
                JsonResult createUserResult = controller.PostRequestProcessor(JsonConvert.SerializeObject(addUserRequest));
                JObject jObject             = JObject.FromObject(createUserResult.Data);

                PostRequestProcessorResult resultJson = jObject.ToObject <PostRequestProcessorResult>();
                Assert.IsTrue(resultJson.Result, string.Format("Could not create user {0} {1} on web service side!", person.FirstName, person.LastName));
            });

            HttpPostRequest_Users request = new HttpPostRequest_Users {
                Page = 1, TotalPerPage = 10
            };
            JsonResult requestResult = controller.PostRequestProcessor(JsonConvert.SerializeObject(request));

            JObject jObjectResult = JObject.FromObject(requestResult.Data);
            PostRequestProcessorResultUsers resultUsers = jObjectResult.ToObject <PostRequestProcessorResultUsers>();

            // Sprawdzamy paging
            Assert.IsTrue(resultUsers.Result, "There was an error downloading user from web server!");
            Assert.AreEqual(resultUsers.TotalUsersCount, 50, "Wrong users number on remote web server!");
            Assert.AreEqual(resultUsers.Users.Count(), 10, "Wrong users count returned from web server!");

            // Sprawdzamy czy userzy odpowiednio sie sortują
            // Najpierw sortujemy swoich lokalnych żeby wiedziec co jest gdzie
            IEnumerable <Models.Person> sorted = used.OrderBy(x => x.FirstName);

            // Posortowalismy ascending, teraz wiemy ktory koles bedzie na koncu
            request = new HttpPostRequest_Users {
                Page = 1, TotalPerPage = 10, SortBy = "firstname", SortOrder = false
            };
            requestResult = controller.PostRequestProcessor(JsonConvert.SerializeObject(request));

            jObjectResult = JObject.FromObject(requestResult.Data);
            resultUsers   = jObjectResult.ToObject <PostRequestProcessorResultUsers>();

            Assert.IsTrue(resultUsers.Result, "There was an error downloading user from web server!");
            Assert.IsTrue(sorted.Last().PersonID == resultUsers.Users.First().PersonID, "Users are not sorted correctly!");

            // Sprawdzamy filtrowanie / szukanie
            request = new HttpPostRequest_Users {
                Page = 1, TotalPerPage = used.Count, Filter = sorted.First().FirstName
            };
            requestResult = controller.PostRequestProcessor(JsonConvert.SerializeObject(request));
            jObjectResult = JObject.FromObject(requestResult.Data);
            resultUsers   = jObjectResult.ToObject <PostRequestProcessorResultUsers>();

            Assert.IsTrue(resultUsers.Result, "There was an error downloading user from web server!");
            // Trzeba obczaic jaki powinien byc wynik
            IEnumerable <Models.Person> expectedResult =
                sorted.Where(x => x.FirstName.ToLower().StartsWith(sorted.First().FirstName.ToLower()) ||
                             x.LastName.ToLower().StartsWith(sorted.First().FirstName.ToLower()));

            Assert.AreEqual(expectedResult.Count(), resultUsers.Users.Count(), "Wrong number of filtered users!");
        }
Exemplo n.º 4
0
        public void Test_Update_Users()
        {
            HomeController       controller = this.Resolve();
            List <Models.Person> persons    = this.Generate();
            List <Models.Person> used       = persons.Take(50).ToList();

            // Tworzymy 50 userów
            used.ForEach(person =>
            {
                HttpPostRequest_AddUser addUserRequest = new HttpPostRequest_AddUser
                {
                    Firstname  = person.FirstName,
                    Lastname   = person.LastName,
                    Birthdate  = person.BirthdateDisplay,
                    Height     = person.Height,
                    ClubMember = person.Member
                };

                // Tworzymy goscia na serwie
                JsonResult createUserResult = controller.PostRequestProcessor(JsonConvert.SerializeObject(addUserRequest));
                JObject jObject             = JObject.FromObject(createUserResult.Data);

                PostRequestProcessorResult resultJson = jObject.ToObject <PostRequestProcessorResult>();
                Assert.IsTrue(resultJson.Result, string.Format("Could not create user {0} {1} on web service side!", person.FirstName, person.LastName));
            });

            List <Models.Person> modified = used.Take(25).ToList();

            modified.ForEach(person =>
            {
                person.FirstName += " edited";
                person.LastName  += " edited";
                person.Height    += 10;
                person.Member     = !person.Member;
                person.BirthdateDisplay.AddDays(10);
                person.Birthdate = (person.BirthdateDisplay - new DateTime(1970, 1, 1, 0, 0, 0).ToUniversalTime()).TotalMilliseconds;

                HttpPostRequest_UpdateUser updateUserRequest = new HttpPostRequest_UpdateUser
                {
                    UserID     = person.PersonID,
                    Firstname  = person.FirstName,
                    Lastname   = person.LastName,
                    Birthdate  = person.BirthdateDisplay,
                    Height     = person.Height,
                    ClubMember = person.Member
                };

                JsonResult createUserResult = controller.PostRequestProcessor(JsonConvert.SerializeObject(updateUserRequest));
                JObject jObject             = JObject.FromObject(createUserResult.Data);

                PostRequestProcessorResult resultJson = jObject.ToObject <PostRequestProcessorResult>();
                Assert.IsTrue(resultJson.Result, string.Format("Could not modify user {0} {1} on web service side!", person.FirstName, person.LastName));
            });

            modified.ForEach(person =>
            {
                Models.Person p = used.Find(x => x.PersonID == person.PersonID);
                Assert.IsNotNull(p);

                p = person;
            });

            HttpPostRequest_Users request = new HttpPostRequest_Users {
                Page = 1, TotalPerPage = 50
            };
            JsonResult requestResult = controller.PostRequestProcessor(JsonConvert.SerializeObject(request));

            JObject jObjectResult = JObject.FromObject(requestResult.Data);
            PostRequestProcessorResultUsers resultUsers = jObjectResult.ToObject <PostRequestProcessorResultUsers>();

            List <Models.Person> check = used.Intersect(resultUsers.Users, new UsersEqualityComparer()).ToList();

            Assert.AreEqual(used.Count, check.Count, "Got different users!");
        }