コード例 #1
0
        public async Task GivenAnApplicant_CreateApplicant_AddsAnApplicant()
        {
            var applicantToBeReturned = fixture.Create <Applicant>();
            var applicantForCreationDtoToBeCreated = fixture.Create <ApplicantForCreationDto>();
            var applicantDtoToBeReturned           = fixture.Create <ApplicantDto>();

            applicantServiceMock.Setup(mock => mock.CreateApplicant(It.IsAny <Applicant>()))
            .ReturnsAsync(applicantToBeReturned);

            mapperMock.Setup(mock => mock.Map <ApplicantForCreationDto>(It.IsAny <Applicant>()))
            .Returns(applicantForCreationDtoToBeCreated);

            mapperMock.Setup(mock => mock.Map <ApplicantDto>(It.IsAny <Applicant>()))
            .Returns(applicantDtoToBeReturned);


            sut = new ApplicantsController(loggerMock.Object, mapperMock.Object, applicantServiceMock.Object);

            var result = await sut.CreateApplicant(applicantForCreationDtoToBeCreated);

            var actionResult      = Assert.IsType <ActionResult <ApplicantDto> >(result);
            var applicantReturned = Assert.IsType <CreatedAtRouteResult>(actionResult.Result).Value;

            Assert.Equal(applicantDtoToBeReturned, applicantReturned);
        }
コード例 #2
0
        public async Task GivenAnExistingApplicant_UpdateApplicant_UpdatesApplicant()
        {
            var applicantToBeReturned    = fixture.Create <Applicant>();
            var applicantForUpdateDto    = fixture.Create <ApplicantForUpdateDto>();
            var applicantDtoToBeReturned = fixture.Create <ApplicantDto>();


            applicantServiceMock.Setup(mock => mock.GetApplicant(It.Is <int>(id => id == 1)))
            .ReturnsAsync(applicantToBeReturned);

            applicantServiceMock.Setup(mock => mock.UpdateApplicant(It.IsAny <int>(), It.IsAny <Applicant>()))
            .ReturnsAsync(Result.Success);

            mapperMock.Setup(mock => mock.Map <ApplicantForUpdateDto>(It.IsAny <Applicant>()))
            .Returns(applicantForUpdateDto);

            mapperMock.Setup(mock => mock.Map <Applicant>(It.IsAny <ApplicantForUpdateDto>()))
            .Returns(applicantToBeReturned);


            mapperMock.Setup(mock => mock.Map <ApplicantDto>(It.IsAny <Applicant>()))
            .Returns(applicantDtoToBeReturned);


            sut = new ApplicantsController(loggerMock.Object, mapperMock.Object, applicantServiceMock.Object);

            var result = await sut.UpdateApplicant(1, applicantForUpdateDto);

            var actionResult      = Assert.IsAssignableFrom <ActionResult>(result);
            var applicantReturned = Assert.IsType <NoContentResult>(actionResult);
        }
コード例 #3
0
        public void Index_ReturnAllApplicants()
        {
            //Arrange
            var applicantModel = new AdminApplicantListingViewModel()
            {
                Id        = 1,
                FirstName = "FirstName",
                LastName  = "LastName"
            };

            bool methodCalled = false;

            var mockRepository = new Mock <IAdminApplicantService>();

            mockRepository
            .Setup(s => s.All())
            .Returns(new[] { applicantModel })
            .Callback(() => methodCalled = true);

            var controller = new ApplicantsController(mockRepository.Object);
            //Act
            var result = controller.Index();

            //Assert
            Assert.IsInstanceOfType(result, typeof(ViewResult));

            var resultView = result as ViewResult;

            Assert.IsNotNull(resultView.Model);
            Assert.IsTrue(methodCalled);
        }
コード例 #4
0
        public async Task Details_ShouldReturnApplicant()
        {
            //Arrange
            var applicantModel = new AdminApplicantDetailsViewModel()
            {
                Id        = 1,
                FirstName = "FirstName",
                LastName  = "LastName"
            };

            bool serviceCalled = false;

            var mockRepository = new Mock <IAdminApplicantService>();

            mockRepository.Setup(service => service.Details(It.IsAny <int>()))
            .ReturnsAsync(applicantModel)
            .Callback(() => serviceCalled = true);

            var controller = new ApplicantsController(mockRepository.Object);

            //Act
            var result = await controller.Details(1);

            //Assert
            Assert.IsInstanceOfType(result, typeof(ViewResult));
            Assert.IsTrue(serviceCalled);
        }
 public ApplicantsControllerTests()
 {
     _mockMediator = new Mock <IMediator>();
     _mockMediator.Setup(x => x.Send(It.IsAny <GetApplicantsQuery>(), CancellationToken.None))
     .ReturnsAsync(new GetApplicantsResponse())
     .Callback <GetApplicantsQuery, CancellationToken>((q, _) => _queryPassed = q);
     _sut = new ApplicantsController(_mockMediator.Object);
 }
        public ApplicantsControllerUnitTests()
        {
            var svc = GetService <IApplicantDomainService>();

            svc.Validator = GetService <IValidator <Applicant> >();
            _controller   = new ApplicantsController(svc, null);
            context       = GetDbContext();
        }
コード例 #7
0
        public async Task GivenANonExistingApplicantId_GetApplicant_ReturnsNotFound()
        {
            sut = new ApplicantsController(loggerMock.Object, mapperMock.Object, applicantServiceMock.Object);

            var result = await sut.GetApplicant(1);

            var actionResult = Assert.IsType <ActionResult <ApplicantDto> >(result);

            Assert.IsType <NotFoundResult>(actionResult.Result);
        }
コード例 #8
0
        public void GetApplicantsByID_Return200()
        {
            var           mockRepo      = new Mock <IDataStore>();
            ApplicantsDto mockApplicant = new ApplicantsDto("1", "Doddle", false, false);

            mockRepo.Setup((repo) => repo.GetApplicantById("1")).Returns(mockApplicant);
            var sut = new ApplicantsController(mockRepo.Object);

            IActionResult result = sut.GetApplicantById("1");

            Assert.IsType <OkObjectResult>(result);
        }
コード例 #9
0
        public void Create_WithValidApplicant_ShouldCallService()
        {
            //Arrange
            var model = new CreateApplicantBindingModel();

            bool serviceCalled = false;

            var mockRepository = new Mock <IAdminApplicantService>();

            mockRepository.Setup(r => r.Create(model))
            .Callback(() => serviceCalled = true);

            var controller = new ApplicantsController(mockRepository.Object);

            //Act
            var result = controller.Create(model);

            //Assert
            Assert.IsTrue(serviceCalled);
        }
コード例 #10
0
        public async Task GivenAnExistingApplicantId_GetApplicant_ReturnsAnApplicant()
        {
            var applicantToBeReturned    = fixture.Create <Applicant>();
            var applicantDtoToBeReturned = fixture.Create <ApplicantDto>();

            applicantServiceMock.Setup(mock => mock.GetApplicant(It.Is <int>(id => id == 1)))
            .ReturnsAsync(applicantToBeReturned);

            mapperMock.Setup(mock => mock.Map <ApplicantDto>(It.IsAny <Applicant>()))
            .Returns(applicantDtoToBeReturned);

            sut = new ApplicantsController(loggerMock.Object, mapperMock.Object, applicantServiceMock.Object);

            var result = await sut.GetApplicant(1);

            var actionResult      = Assert.IsType <ActionResult <ApplicantDto> >(result);
            var applicantReturned = Assert.IsType <OkObjectResult>(actionResult.Result).Value;

            Assert.Equal(applicantDtoToBeReturned, applicantReturned);
        }
コード例 #11
0
        public void DeleteApplicantWithDefaultGuidShouldbeBadRequest()
        {
            // Arrange
            _mockService.Setup(s => s.Delete(It.IsAny <string>(), It.IsAny <Guid>()))
            .Returns(Task.FromResult(_mockServiceResult.Object));

            var controller = new ApplicantsController(_mockService.Object)
            {
                ControllerContext = new ControllerContext {
                    HttpContext = _mockHttpContext.Object
                }
            };

            // Act
            var resultWithDefaultGuid = controller.Delete(default(Guid)).Result;
            var resultWithEmptyGuid   = controller.Delete(Guid.Empty).Result;

            // Assert
            Assert.IsType <BadRequestResult>(resultWithDefaultGuid);
            Assert.IsType <BadRequestResult>(resultWithEmptyGuid);
        }
コード例 #12
0
        public void DeleteWithNormalGuidApplicantServiceShouldbeCalledWithUsername()
        {
            // Arrange
            _mockServiceResult.SetupProperty(r => r.Sucess, true);
            _mockService.Setup(s => s.Delete(It.IsAny <string>(), It.IsAny <Guid>()))
            .Returns(Task.FromResult(_mockServiceResult.Object));

            var controller = new ApplicantsController(_mockService.Object)
            {
                ControllerContext = new ControllerContext {
                    HttpContext = _mockHttpContext.Object
                }
            };

            Guid applicantId = Guid.NewGuid();

            // Act
            controller.Delete(applicantId).GetAwaiter().GetResult();

            // Assert
            _mockService.Verify(s => s.Delete(_mockUserId, applicantId), Times.Once);
        }