コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }