public IHttpActionResult CreateMessage(int roomId, CreateMessageBindingModels model)
        {
            var userId = this.provider.GetId();
            var user = this.Data.Users.GetAll().FirstOrDefault(u => u.Id == userId);
            var room = this.Data.Rooms.GetAll().FirstOrDefault(r => r.Id == roomId);

            if (user == null)
            {
                return this.Unauthorized();
            }

            if (!this.ModelState.IsValid)
            {
                return this.BadRequest("Invalid input model");
            }

            if (room == null)
            {
                return this.BadRequest("Room doesn't exist");
            }

            var message = new Message()
            {
                Text = model.Text,
                SentDate = DateTime.Now,
                Poster = user,
                Room = room
            };

            this.Data.Messages.Add(message);
            this.Data.SaveChanges();

            return this.Ok("Message successfully created");
        }
Exemplo n.º 2
0
        public IHttpActionResult CreateMessage(int roomId, CreateMessageBindingModels model)
        {
            var userId = this.provider.GetId();
            var user   = this.Data.Users.GetAll().FirstOrDefault(u => u.Id == userId);
            var room   = this.Data.Rooms.GetAll().FirstOrDefault(r => r.Id == roomId);

            if (user == null)
            {
                return(this.Unauthorized());
            }

            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest("Invalid input model"));
            }

            if (room == null)
            {
                return(this.BadRequest("Room doesn't exist"));
            }

            var message = new Message()
            {
                Text     = model.Text,
                SentDate = DateTime.Now,
                Poster   = user,
                Room     = room
            };

            this.Data.Messages.Add(message);
            this.Data.SaveChanges();

            return(this.Ok("Message successfully created"));
        }
        public void AddingMessageWithInvalidRoomIdShouldFail()
        {
            var message = new CreateMessageBindingModels()
            {
                Text = "New message"
            };

            var httpResponse = this.controller.CreateMessage(5, message).ExecuteAsync(new CancellationToken()).Result;

            var serverResponse = httpResponse.Content.ReadAsStringAsync().Result;

            Assert.AreEqual("{\"Message\":\"Room doesn't exist\"}", serverResponse);

            Assert.AreEqual(HttpStatusCode.BadRequest, httpResponse.StatusCode);
        }
        public void AddingMessageShouldAddMessage()
        {
            var message = new CreateMessageBindingModels()
            {
                Text = "New message"
            };

            var expectedMessage = new MessageOutputModel()
            {
                Text       = "New message",
                SentDate   = DateTime.Now,
                Id         = 4,
                RoomId     = 1,
                PosterName = WebChatDataMock.MockedUserId
            };

            var httpResponse = this.controller.CreateMessage(1, message).ExecuteAsync(new CancellationToken()).Result;

            var serverResponse = httpResponse.Content.ReadAsStringAsync().Result;

            Assert.AreEqual(serverResponse, "\"Message successfully created\"");

            Assert.AreEqual(expectedMessage.Text, this.dataMock.Messages.GetAll().Last().Text);
        }