public void TestWithValidPost_ShouldCreatePostInDatabase()
        {
            var testPost = new Post()
            {
                Title = "Test post",
                Tags  = new List <Tag>()
                {
                    new Tag()
                    {
                        Name = "technology"
                    },
                },
                Text = "this is just a test post"
            };

            var testUser = new UserModel()
            {
                Username    = "******",
                DisplayName = "VALIDNICK",
                AuthCode    = new string('b', 40)
            };
            LoggedUserModel userModel = RegisterTestUser(httpServer, testUser);

            var headers = new Dictionary <string, string>();

            headers["X-sessionKey"] = userModel.SessionKey;

            var response = httpServer.Post("api/posts", testPost, headers);

            Assert.AreEqual(HttpStatusCode.Created, response.StatusCode);
        }
Пример #2
0
        public void TestCreateValidPost_ShouldReturnOK()
        {
            var testPost = new CreatePostDto
            {
                Title = "NEW POST",
                Text  = "this is just a test post",
                Tags  = new string[] { "post" }
            };

            var testUser = new UserDto
            {
                Username    = "******",
                DisplayName = "Peter Petroff",
                AuthCode    = "bfff2dd4f1b310eb0dbf593bd83f94dd8d34077e"
            };

            var response = httpServer.Post("api/users/register", testUser);

            string contentString = response.Content.ReadAsStringAsync().Result;
            var    loggedUser    = JsonConvert.DeserializeObject <LoggedUserDto>(contentString);

            var headers = new Dictionary <string, string>();

            headers["X-SessionKey"] = loggedUser.SessionKey;

            var createPostResponse = httpServer.Post("api/posts", testPost, headers);

            string resultString = createPostResponse.Content.ReadAsStringAsync().Result;
            var    createdPost  = JsonConvert.DeserializeObject <CreatePostDto>(resultString);

            Assert.AreEqual(HttpStatusCode.Created, createPostResponse.StatusCode);
            Assert.AreEqual(testPost.Title, createdPost.Title);
            Assert.AreEqual(testPost.Text, createdPost.Text);
            Assert.IsNotNull(createdPost.Id);
        }
 private LoggedUserModel RegisterTestUser(InMemoryHttpServer httpServer, UserModel testUser)
 {
     var response = httpServer.Post("api/users/register", testUser);
     var contentString = response.Content.ReadAsStringAsync().Result;
     var userModel = JsonConvert.DeserializeObject<LoggedUserModel>(contentString);
     return userModel;
 }
Пример #4
0
        private LoggedUserModel RegisterTestUser(InMemoryHttpServer httpServer, UserModel testUser)
        {
            var response      = httpServer.Post("api/users/register", testUser);
            var contentString = response.Content.ReadAsStringAsync().Result;
            var userModel     = JsonConvert.DeserializeObject <LoggedUserModel>(contentString);

            return(userModel);
        }
        public void TestValidUser_ShouldAddToDatabase()
        {
            var testUser = new User()
            {
                Username    = "******",
                DisplayName = "Minka Svirkata",
                AuthCode    = new string('*', 40)
            };
            var response = httpServer.Post("api/users/register", testUser);

            Assert.IsNotNull(response);
            Assert.AreEqual(HttpStatusCode.Created, response.StatusCode,
                            string.Format("User is not created in database! Response status code: {0}", response.StatusCode));
        }
Пример #6
0
        public void TestGetPostsByValidTags_ShoudReturnValidPosts()
        {
            var testUser = new UserModel()
            {
                Username    = "******",
                DisplayName = "VALIDNICK",
                AuthCode    = new string('b', 40)
            };
            LoggedUserModel userModel = RegisterTestUser(httpServer, testUser);
            var             headers   = new Dictionary <string, string>();

            headers["X-sessionKey"] = userModel.SessionKey;

            var testPost = new Post()
            {
                Title = "Test post",
                Tags  = new List <Tag>()
                {
                    new Tag()
                    {
                        Name = "technology"
                    },
                    new Tag()
                    {
                        Name = "it"
                    },
                },
                Text = "this is just a test post"
            };

            httpServer.Post("api/posts", testPost, headers);

            var response = httpServer.Get("api/posts?tags=technology,it", headers);

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            Assert.IsNotNull(response.Content);
        }
        public void TestLeaveValidComment_ShouldReturnCreated()
        {
            //Create test user
            var testUser = new UserModel()
            {
                Username    = "******",
                DisplayName = "VALIDNICK",
                AuthCode    = new string('b', 40)
            };
            LoggedUserModel userModel = RegisterTestUser(httpServer, testUser);
            var             headers   = new Dictionary <string, string>();

            headers["X-sessionKey"] = userModel.SessionKey;

            //Create test post
            var testPost = new Post()
            {
                Title = "Test post",
                Tags  = new List <Tag>()
                {
                    new Tag()
                    {
                        Name = "technology"
                    },
                },
                Text = "this is just a test post"
            };
            var    createPostResponse     = httpServer.Post("api/posts", testPost, headers);
            string createPostResponseBody = createPostResponse.Content.ReadAsStringAsync().Result;
            var    postResponse           = JsonConvert.DeserializeObject <CreatePostResponseModel>(createPostResponseBody);

            var comment = new Comment()
            {
                PostDate = DateTime.Now,
                Text     = "Abe kefi me toq post"
            };

            var commentCreateResponse = httpServer.Put("api/posts/" + postResponse.PostId + "/comment", comment,
                                                       headers);

            Assert.AreEqual(HttpStatusCode.Created, commentCreateResponse.StatusCode);
        }
Пример #8
0
        public void RegisterWhenUserIsValid()
        {
            var testUser = new UserModel()
            {
                Username    = "******",
                DisplayName = "Valid DisplayName",
                AuthCode    = new string('*', 40)
            };

            var response      = httpServer.Post("api/users/register", testUser);
            var contentString = response.Content.ReadAsStringAsync().Result;

            Assert.AreEqual(HttpStatusCode.Created, response.StatusCode);
            var userModel = JsonConvert.DeserializeObject <LoggedUserModel>(contentString);

            Assert.AreEqual(testUser.DisplayName, userModel.DisplayName);
            Assert.IsNotNull(userModel.SessionKey);
        }
        public void TestRegisterUser_UsernameIsNull_ShouldReturnBadRequest()
        {
            var testUser = new UserDto
            {
                Username    = null,
                DisplayName = "Michael Suyama",
                AuthCode    = "bfff2dd4f1b310eb0dbf593bd83f94dd8d34077e"
            };

            var response = httpServer.Post("api/users/register", testUser);

            Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
        }
Пример #10
0
        public void PostAddValid()
        {
            var testUser = new UserModel()
            {
                Username    = "******",
                DisplayName = "Valid DisplayName",
                AuthCode    = new string('*', 40)
            };

            var response      = httpServer.Post("api/users/register", testUser);
            var contentString = response.Content.ReadAsStringAsync().Result;

            Assert.AreEqual(HttpStatusCode.Created, response.StatusCode);
            var userModel = JsonConvert.DeserializeObject <LoggedUserModel>(contentString);

            var headers = new Dictionary <string, string>();

            headers["X-sessionKey"] = userModel.SessionKey;
            var post = new PostModel()
            {
                Title = "Some title",
                Text  = "Some text"
            };
            var responseAdd = httpServer.Post("api/posts", post, headers);

            Assert.AreEqual(HttpStatusCode.Created, responseAdd.StatusCode);
        }