public void EditBug_InvalidBugData_ShouldReturn400BadRequest() { // Arrange -> create a few bugs var dataLayerMock = new BugTrackerDataMock(); var bugsMock = dataLayerMock.Bugs; bugsMock.Add(new Bug() { Id = 1, Title = "Bug #1" }); bugsMock.Add(new Bug() { Id = 2, Title = "Bug #2" }); // Act -> edit bug data var bugsController = new BugsController(dataLayerMock); this.SetupControllerForTesting(bugsController, "bugs"); EditBugInputModel editBugData = null; var httpResponse = bugsController.EditBug(1234, editBugData) .ExecuteAsync(new CancellationToken()).Result; // Assert -> HTTP status code 400 (BadRequest) Assert.AreEqual(HttpStatusCode.BadRequest, httpResponse.StatusCode); }
public void EditBug_NonExistingBug_ShouldReturn404NotFound() { // Arrange -> create a few bugs var dataLayerMock = new BugTrackerDataMock(); var bugsMock = dataLayerMock.Bugs; bugsMock.Add(new Bug() { Id = 1, Title = "Bug #1" }); bugsMock.Add(new Bug() { Id = 2, Title = "Bug #2" }); // Act -> edit bug data var bugsController = new BugsController(dataLayerMock); this.SetupControllerForTesting(bugsController, "bugs"); var editBugData = new EditBugBindingModel() { Title = "new title" }; var httpResponse = bugsController.EditBug(1234, editBugData) .ExecuteAsync(new CancellationToken()).Result; // Assert -> HTTP status code 404 (Not Found) Assert.AreEqual(HttpStatusCode.NotFound, httpResponse.StatusCode); }
public void EditBugStatusOnly() { var controller = new BugsController(dataMock.Object); SetupController(controller, "Bugs"); var bugToEdit = new Bug { Id = 22, Title = "Bug4e Tuka", Description = "ne6to ne e nared", Status = BugStatus.InProgress, DateCreated = DateTime.Now }; dataMock.Setup(data => data.Bugs.Find(It.IsAny <object>())).Returns(bugToEdit); var updatedBug = new EditBugInputModel { Status = "Closed" }; var result = controller.EditBug(2, updatedBug).ExecuteAsync(new CancellationToken()).Result; Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); var resultContent = result.Content.ReadAsStringAsync().Result; Assert.IsTrue(resultContent.Contains("Bug #" + bugToEdit.Id + " patched.")); }
public void EditUnexistingBug_ShouldReturnNotFound() { var controller = new BugsController(dataMock.Object); SetupController(controller, "Bugs"); dataMock.Setup(data => data.Bugs.Find(It.IsAny <object>())).Returns(null as Bug); var updatedBug = new EditBugInputModel { Title = "New Title" }; var result = controller.EditBug(2, updatedBug).ExecuteAsync(new CancellationToken()).Result; Assert.AreEqual(HttpStatusCode.NotFound, result.StatusCode); }
public void EditBug_ExistingBug_ShouldReturn200OK_CorrectBugData() { // Arrange -> create a few bugs var dataLayerMock = new BugTrackerDataMock(); var bugsMock = dataLayerMock.Bugs; bugsMock.Add(new Bug() { Id = 1, Title = "Bug #1" }); bugsMock.Add(new Bug() { Id = 2, Title = "Bug #2 for edit ...", Description = "Description for edit ...", Status = BugStatus.Fixed }); bugsMock.Add(new Bug() { Id = 3, Title = "Bug #3" }); var newTitle = "new title"; var newDescription = "new description"; var newStatus = BugStatus.Closed; // Act -> edit bug data var bugsController = new BugsController(dataLayerMock); this.SetupControllerForTesting(bugsController, "bugs"); var editBugData = new EditBugInputModel() { Title = newTitle, Description = newDescription, Status = newStatus }; var httpResponse = bugsController.EditBug(2, editBugData) .ExecuteAsync(new CancellationToken()).Result; // Assert -> HTTP status code 200 (OK) + bug data changed Assert.AreEqual(HttpStatusCode.OK, httpResponse.StatusCode); Assert.AreEqual(2, bugsMock.Find(2).Id); Assert.AreEqual(newTitle, bugsMock.Find(2).Title); Assert.AreEqual(newDescription, bugsMock.Find(2).Description); Assert.AreEqual(newStatus, bugsMock.Find(2).Status); }
public void EditBugNoInputModel_ShouldReturnBadRequest() { var controller = new BugsController(dataMock.Object); SetupController(controller, "Bugs"); var bugToEdit = new Bug { Title = "Bug4e Tuka", Description = "ne6to ne e nared", Status = BugStatus.InProgress, DateCreated = DateTime.Now }; dataMock.Setup(data => data.Bugs.Find(It.IsAny <object>())).Returns(bugToEdit); var result = controller.EditBug(2, null).ExecuteAsync(new CancellationToken()).Result; Assert.AreEqual(HttpStatusCode.BadRequest, result.StatusCode); }