Exemplo n.º 1
0
        public void ShouldReserveTheNextVacancyAvailableIfTheOriginalOneIsNotAvailable()
        {
            const int    vacancyReferenceNumber    = 1;
            const int    nextVacanyReferenceNumber = 2;
            const string userName           = "******";
            var          nextVacancySummary = new VacancySummary {
                VacancyReferenceNumber = nextVacanyReferenceNumber
            };

            var vacancyLockingService = new Mock <IVacancyLockingService>();

            vacancyLockingService.Setup(vls => vls.IsVacancyAvailableToQABy(userName, It.IsAny <VacancySummary>()))
            .Returns(false);
            vacancyLockingService.Setup(vls => vls.GetNextAvailableVacancy(userName, It.IsAny <List <VacancySummary> >()))
            .Returns(nextVacancySummary);

            var vacancyProviderBuilder = VacancyProviderTestHelper.GetBasicVacancyProviderBuilder(userName,
                                                                                                  vacancyReferenceNumber, nextVacanyReferenceNumber);
            var provider = vacancyProviderBuilder.With(vacancyLockingService).Build();

            var result = provider.ReserveVacancyForQA(vacancyReferenceNumber);

            result.VacancyReferenceNumber.Should().Be(nextVacanyReferenceNumber);
            vacancyProviderBuilder.VacancyPostingService.Verify(ps => ps.ReserveVacancyForQA(nextVacanyReferenceNumber),
                                                                Times.Once);
        }
Exemplo n.º 2
0
        public void ShouldReserveAndReturnTheVacancyIfItsPossibleToReserveItForQA()
        {
            const int    vacancyReferenceNumber = 1;
            const string userName = "******";

            var vacancyProviderBuilder = VacancyProviderTestHelper.GetBasicVacancyProviderBuilder(userName, vacancyReferenceNumber);
            var provider = vacancyProviderBuilder.Build();

            var result = provider.ReserveVacancyForQA(vacancyReferenceNumber);

            vacancyProviderBuilder.VacancyPostingService.Verify(ps => ps.ReserveVacancyForQA(vacancyReferenceNumber),
                                                                Times.Once);
            result.VacancyReferenceNumber.Should().Be(vacancyReferenceNumber);
        }
Exemplo n.º 3
0
        public void ShouldReturnTheViewModelIfTheUserCanQAIt()
        {
            const int    vacancyReferenceNumber = 1;
            const string userName = "******";

            var vacancyLockingService = new Mock <IVacancyLockingService>();

            vacancyLockingService.Setup(vls => vls.IsVacancyAvailableToQABy(userName, It.IsAny <VacancySummary>()))
            .Returns(true);

            var vacancyProviderBuilder = VacancyProviderTestHelper.GetBasicVacancyProviderBuilder(userName, vacancyReferenceNumber);
            var provider = vacancyProviderBuilder.With(vacancyLockingService).Build();

            var viewModel = provider.ReviewVacancy(vacancyReferenceNumber);

            viewModel.VacancyReferenceNumber.Should().Be(vacancyReferenceNumber);
        }
Exemplo n.º 4
0
        public void ShouldCallIsAvailableForQA()
        {
            const int    vacancyReferenceNumber = 1;
            const string userName = "******";

            var vacancyLockingService = new Mock <IVacancyLockingService>();

            vacancyLockingService.Setup(vls => vls.IsVacancyAvailableToQABy(userName, It.IsAny <VacancySummary>()))
            .Returns(false);

            var vacancyProviderBuilder = VacancyProviderTestHelper.GetBasicVacancyProviderBuilder(userName, vacancyReferenceNumber);
            var provider = vacancyProviderBuilder.With(vacancyLockingService).Build();

            provider.ReviewVacancy(vacancyReferenceNumber);

            vacancyProviderBuilder.VacancyPostingService.Verify(ps => ps.GetVacancyByReferenceNumber(vacancyReferenceNumber), Times.Once);
            vacancyLockingService.Verify(vls => vls.IsVacancyAvailableToQABy(userName, It.IsAny <VacancySummary>()), Times.Once);
        }
Exemplo n.º 5
0
        public void ShouldReturnNullIfThereIsNotAnyAvailableVacancy()
        {
            const int      vacancyReferenceNumber = 1;
            const string   userName           = "******";
            VacancySummary nextVacancySummary = null;

            var vacancyLockingService = new Mock <IVacancyLockingService>();

            vacancyLockingService.Setup(vls => vls.IsVacancyAvailableToQABy(userName, It.IsAny <VacancySummary>()))
            .Returns(false);
            vacancyLockingService.Setup(vls => vls.GetNextAvailableVacancy(userName, It.IsAny <List <VacancySummary> >()))
            .Returns(nextVacancySummary);

            var vacancyProviderBuilder = VacancyProviderTestHelper.GetBasicVacancyProviderBuilder(userName, vacancyReferenceNumber);
            var provider = vacancyProviderBuilder.With(vacancyLockingService).Build();

            var result = provider.ReserveVacancyForQA(vacancyReferenceNumber);

            result.Should().BeNull();
        }
        public void ShouldCallUpdateIfTheUserIsTheOwnerOfTheVacancy()
        {
            const int    vacancyReferenceNumber = 1;
            const string userName = "******";

            var vacancyLockingService = new Mock <IVacancyLockingService>();

            vacancyLockingService.Setup(vls => vls.IsVacancyAvailableToQABy(userName, It.IsAny <VacancySummary>()))
            .Returns(true);

            var vacancyProviderBuilder = VacancyProviderTestHelper.GetBasicVacancyProviderBuilder(userName, vacancyReferenceNumber);
            var provider = vacancyProviderBuilder.With(vacancyLockingService).Build();

            provider.UnReserveVacancyForQA(vacancyReferenceNumber);

            vacancyProviderBuilder.VacancyPostingService.Verify(
                ps =>
                ps.UnReserveVacancyForQa(
                    It.Is <int>(v => v == vacancyReferenceNumber)),
                Times.Once);
        }
        public void ShouldNotCallUpdateIfTheUserIsTheOwnerOfTheVacancy()
        {
            const int    vacancyReferenceNumber = 1;
            const string userName = "******";

            var vacancyLockingService = new Mock <IVacancyLockingService>();

            vacancyLockingService.Setup(vls => vls.IsVacancyAvailableToQABy(userName, It.IsAny <VacancySummary>()))
            .Returns(false);

            var vacancyProviderBuilder = VacancyProviderTestHelper.GetBasicVacancyProviderBuilder(userName, vacancyReferenceNumber);
            var provider = vacancyProviderBuilder.With(vacancyLockingService).Build();

            provider.UnReserveVacancyForQA(vacancyReferenceNumber);

            vacancyProviderBuilder.VacancyPostingService.Verify(
                ps =>
                ps.UpdateVacancy(
                    It.Is <Vacancy>(v => v.VacancyReferenceNumber == vacancyReferenceNumber &&
                                    v.QAUserName == null && v.Status == VacancyStatus.Submitted)),
                Times.Never);
        }