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 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); }