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 EditBugInputModel() { 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 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 EditExistingBugDescriptionAndStatus_ShouldReturn200OK_Modify() { // Arrange -> create a new bug var data = new BugTrackerDataMock(); var bug = new Bug() { Id = 1, Title = "test", Status = Status.Open }; data.Bugs.Add(bug); var controller = new BugsController(data); this.SetupControllerForTesting(controller, "bugs"); // Act -> edit the above created bug var httpResponse = controller.PatchEditBug(1, new BugBindingEditBugModel() { Description = "Bomba", Status = "Closed" }) .ExecuteAsync(new CancellationToken()).Result; // Assert -> 200 OK Assert.AreEqual(HttpStatusCode.OK, httpResponse.StatusCode); // Assert the service holds the modified bug Assert.AreEqual("test", bug.Title); Assert.AreEqual(Status.Closed, bug.Status); Assert.AreEqual("Bomba", bug.Description); }
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 EditNonExistingBug_ShouldReturn404NotFound() { // Arrange -> create a new bug var data = new BugTrackerDataMock(); var controller = new BugsController(data); this.SetupControllerForTesting(controller, "bugs"); // Act -> edit the above created bug var httpResponse = controller.PatchEditBug(1, new BugBindingEditBugModel() { Description = "Bomba", Status = "Closed" }) .ExecuteAsync(new CancellationToken()).Result; // Assert -> 404 Not found Assert.AreEqual(HttpStatusCode.NotFound, httpResponse.StatusCode); }
public void EditExistingBug_NoDataSend_ShouldReturn400BadRequest() { // Arrange -> create a new bug var data = new BugTrackerDataMock(); var bug = new Bug() { Id = 1, Title = "test", Status = Status.Open }; data.Bugs.Add(bug); var controller = new BugsController(data); this.SetupControllerForTesting(controller, "bugs"); // Act -> edit the above created bug var httpResponse = controller.PatchEditBug(1, null) .ExecuteAsync(new CancellationToken()).Result; // Assert -> 404 Not found Assert.AreEqual(HttpStatusCode.BadRequest, httpResponse.StatusCode); }