public void ChatsControllerTest_CreateChat_HTTP200() { // Arrange var controller = new ChatsController(ChatService); string uniqueUserScreenName = "unique user screen name" + Guid.NewGuid().ToString(); // act IHttpActionResult result = controller.CreateChat(uniqueUserScreenName); var createdResult = result as CreatedNegotiatedContentResult <ChatDTO>; // Assert Assert.IsNotNull(createdResult); Assert.AreEqual(new Uri($"/api/chats/{createdResult.Content.Id}", UriKind.Relative), createdResult.Location); Assert.AreEqual(uniqueUserScreenName, createdResult.Content.UserScreenName); Assert.IsTrue(DateTime.Now.Subtract(createdResult.Content.CreatedDateTime).TotalMilliseconds <= 5000); // Db test //Test data is persisted into database as expected. var expected = new Chat() { Id = createdResult.Content.Id, UserScreenName = createdResult.Content.UserScreenName, }; Chat actual = null; using (var context = new EEChatDataContext(ConnectionString)) { actual = context.Chats.Find(createdResult.Content.Id); Assert.IsNotNull(actual); Assert.AreEqual(expected, actual); context.Chats.Remove(actual); } }
public void ChatsControllerTest_CreateChat_HTTP409_conflict() { // Arrange var controller = new ChatsController(ChatService); string uniqueUserScreenName = "unique user screen name" + Guid.NewGuid().ToString(); Chat chat = null; using (var context = new EEChatDataContext(ConnectionString)) { // Create a chat chat = new Chat() { UserScreenName = uniqueUserScreenName, }; context.Chats.Add(chat); context.SaveChanges(); // act // We pass controller action the same user screen name we with which created a chat above. IHttpActionResult result = controller.CreateChat(uniqueUserScreenName); var conflictResult = result as NegotiatedContentResult <string>; // Assert Assert.IsNotNull(conflictResult); Assert.AreEqual(HttpStatusCode.Conflict, conflictResult.StatusCode); context.Chats.Remove(chat); } }
public void ChatsControllerTest_CreateChat_HTTP400_bad_request() { // Arrange var controller = new ChatsController(ChatService); // act // We pass controller action a null as userScreenName parameter to get a HTTP 400 bad request. IHttpActionResult result = controller.CreateChat(null); // Assert Assert.IsInstanceOfType(result, typeof(BadRequestErrorMessageResult)); }