public void ScenariosThatDoNotProduceDatalocksBasedOnTransactionType(string errorMessage, byte testPeriod, DateTime commitmentStopDate, DateTime periodEndDate, TransactionType type) { period.Period = testPeriod; var validation = new DataLockValidationModel { PriceEpisode = new PriceEpisode { Identifier = PriceEpisodeIdentifier, }, EarningPeriod = period, Apprenticeship = new ApprenticeshipModel { Id = 1, ApprenticeshipPriceEpisodes = new List <ApprenticeshipPriceEpisodeModel> { new ApprenticeshipPriceEpisodeModel { Id = 100, }, }, StopDate = commitmentStopDate, Status = ApprenticeshipStatus.Stopped, }, AcademicYear = AcademicYear, TransactionType = type }; var validator = new OnProgrammeAndIncentiveStoppedValidator(calculatePeriodStartAndEndDate.Object); var result = validator.Validate(validation); result.DataLockErrorCode.Should().BeNull(errorMessage); result.ApprenticeshipPriceEpisodes.Should().HaveCount(1, errorMessage); result.ApprenticeshipPriceEpisodes[0].Id.Should().Be(100, errorMessage); }
public void ScenariosThatProduceDLOCK_10(string errorMessage, byte testPeriod, DateTime commitmentStopDate, DateTime periodEndDate) { period.Period = testPeriod; var validation = new DataLockValidationModel { PriceEpisode = new PriceEpisode { Identifier = PriceEpisodeIdentifier, }, EarningPeriod = period, Apprenticeship = new ApprenticeshipModel { Id = 1, ApprenticeshipPriceEpisodes = new List <ApprenticeshipPriceEpisodeModel> { new ApprenticeshipPriceEpisodeModel { Id = 100, }, }, StopDate = commitmentStopDate, Status = ApprenticeshipStatus.Stopped, }, AcademicYear = AcademicYear, TransactionType = TransactionType.Learning, }; calculatePeriodStartAndEndDate .Setup(x => x.GetPeriodDate(testPeriod, AcademicYear)) .Returns((new DateTime(periodEndDate.Year, periodEndDate.Month, 1), periodEndDate)) .Verifiable(); var validator = new OnProgrammeAndIncentiveStoppedValidator(calculatePeriodStartAndEndDate.Object); var result = validator.Validate(validation); result.DataLockErrorCode.Should().Be(DataLockErrorCode.DLOCK_10, errorMessage); result.ApprenticeshipPriceEpisodes.Should().BeEmpty(errorMessage); }