public void PutShouldReturnBadRequestOnUnmatchedGuids()
        {
            var controller = new RecruitmentController();

            controller.SetCandidates(this.GetCandidatesTestData());

            var actionResult = controller.Put(Guid.NewGuid(), new Candidate {
                Id = Guid.NewGuid(), FirstName = "New", LastName = "Candidate"
            });                                                                                                                                  // Generate 2 non matching Guids

            // Asserts
            Assert.IsType <BadRequestResult>(actionResult);
        }
        public void PutShouldReturnNotFound()
        {
            var controller = new RecruitmentController();

            controller.SetCandidates(this.GetCandidatesTestData());

            var invalidCandidate = new Candidate {
                Id = Guid.NewGuid(), FirstName = "New", LastName = "Candidate"
            };                                                                                                       // create new candidate that won't be found in exsting list
            var actionResult = controller.Put(invalidCandidate.Id, invalidCandidate);

            // Asserts
            Assert.IsType <NotFoundResult>(actionResult);
        }
        public void PutShouldReturnNoContent()
        {
            var controller = new RecruitmentController();

            controller.SetCandidates(this.GetCandidatesTestData());

            var cloneCandidate  = RecruitmentController.candidates[1];
            var updateCandidate = new Candidate {
                Id = cloneCandidate.Id, FirstName = cloneCandidate.FirstName, LastName = cloneCandidate.LastName
            };

            updateCandidate.FirstName       = "Test";
            updateCandidate.ShouldSendOffer = true;

            var actionResult = controller.Put(updateCandidate.Id, updateCandidate);

            // Asserts
            Assert.IsType <NoContentResult>(actionResult);
        }
        public void PutShouldUpdateCandidatesList()
        {
            var controller = new RecruitmentController();

            controller.SetCandidates(this.GetCandidatesTestData());

            var cloneCandidate  = RecruitmentController.candidates[1];
            var updateCandidate = new Candidate {
                Id = cloneCandidate.Id, FirstName = cloneCandidate.FirstName, LastName = cloneCandidate.LastName
            };

            updateCandidate.FirstName       = "Test";
            updateCandidate.ShouldSendOffer = true;

            var actionResult = controller.Put(updateCandidate.Id, updateCandidate);

            // Asserts
            Assert.Equal("Test", RecruitmentController.candidates[1].FirstName);
            Assert.True(RecruitmentController.candidates[1].ShouldSendOffer);
        }