public void SetUp() { var fixture = new Fixture(); _ukprn = fixture.Create <long>(); _uln = fixture.Create <long>(); _jobId = fixture.Create <long>(); _academicYear = fixture.Create <short>(); _collectionPeriod = fixture.Create <byte>(); _datalockEvent = fixture.Create <DatalockEvent>(); _datalockEvent.PayablePeriods.Clear(); _datalockEvent.NonPayablePeriods.Clear(); _datalockEvent.PriceEpisodes.Clear(); _latestSuccessfulJob = fixture.Create <LatestSuccessfulJobModel>(); _latestSuccessfulJob.Ukprn = _ukprn; _latestSuccessfulJob.AcademicYear = _academicYear; _latestSuccessfulJob.CollectionPeriod = _collectionPeriod; _latestSuccessfulJob.DcJobId = _jobId; _datalockEventNonPayablePeriod = fixture.Create <DatalockEventNonPayablePeriod>(); _datalockEventPayablePeriod = fixture.Create <DatalockEventPayablePeriod>(); _datalockEventPriceEpisode = fixture.Create <DatalockEventPriceEpisode>(); _context = new PaymentsContext(new DbContextOptionsBuilder <PaymentsContext>() .UseInMemoryDatabase("TestDb", new InMemoryDatabaseRoot()) .Options); _sut = new PaymentsDataLockRepository(_context); }
public async Task WhenLatestSuccessfulJobIsNull_ThenBuildsMetrics() { LatestSuccessfulJobModel job = null; var jobsRepository = moqer.Mock <ISubmissionJobsRepository>(); jobsRepository.Setup(x => x.GetLatestSuccessfulJobForProvider(It.IsAny <long>(), It.IsAny <short>(), It.IsAny <byte>())) .ReturnsAsync(job); var service = moqer.Create <SubmissionMetricsService>(); await service.BuildMetrics(1234, 123, 1920, 1, CancellationToken.None).ConfigureAwait(false); moqer.Mock <ISubmissionSummaryFactory>().Verify(x => x.Create(It.IsAny <long>(), It.IsAny <long>(), It.IsAny <short>(), It.IsAny <byte>()), Times.Once); }
public void SetUp() { inMemoryMetricsQueryDataContext = new InMemoryMetricsQueryDataContext(); moqer = AutoMock.GetLoose(); dcEarnings = TestsHelper.DefaultDcEarnings; dasEarnings = TestsHelper.DefaultDasEarnings; dataLocks = TestsHelper.DefaultDataLockedEarnings; var dcMetricsDataContext = moqer.Mock <IDcMetricsDataContext>(); dcMetricsDataContext.Setup(ctx => ctx.GetEarnings(It.IsAny <long>(), It.IsAny <short>(), It.IsAny <byte>(), It.IsAny <CancellationToken>())) .ReturnsAsync(dcEarnings); moqer.Mock <IDcMetricsDataContextFactory>() .Setup(factory => factory.CreateContext(It.IsAny <short>())) .Returns(dcMetricsDataContext.Object); latestSuccessfulJob = moqer.Mock <LatestSuccessfulJobModel>().Object; latestSuccessfulJob.Ukprn = 1234; latestSuccessfulJob.CollectionPeriod = 1; latestSuccessfulJob.AcademicYear = 1920; latestSuccessfulJob.DcJobId = 123; moqer.Mock <ISubmissionSummaryFactory>() .Setup(factory => factory.Create(It.IsAny <long>(), It.IsAny <long>(), It.IsAny <short>(), It.IsAny <byte>())) .Returns((long ukprn, long jobId, short academicYear, byte collectionPeriod) => new SubmissionSummary(ukprn, jobId, collectionPeriod, academicYear)); var jobsRepository = moqer.Mock <ISubmissionJobsRepository>(); jobsRepository.Setup(x => x.GetLatestSuccessfulJobForProvider(It.IsAny <long>(), It.IsAny <short>(), It.IsAny <byte>())) .ReturnsAsync(latestSuccessfulJob); moqer.Mock <ISubmissionJobsDataContext>(); submissionMetricsRepository = moqer.Mock <ISubmissionMetricsRepository>(); submissionMetricsRepository.Setup(repo => repo.GetDasEarnings(It.IsAny <long>(), It.IsAny <long>(), It.IsAny <CancellationToken>())) .ReturnsAsync(dasEarnings); submissionMetricsRepository.Setup(repo => repo.GetDasEarnings(It.IsAny <long>(), It.IsAny <long>(), It.IsAny <CancellationToken>())) .ReturnsAsync(dasEarnings); submissionMetricsRepository.Setup(repo => repo.GetDataLockedEarnings(It.IsAny <long>(), It.IsAny <long>(), It.IsAny <CancellationToken>())) .ReturnsAsync(dataLocks); submissionMetricsRepository.Setup(repo => repo.GetDataLockedEarningsTotal(It.IsAny <long>(), It.IsAny <long>(), It.IsAny <CancellationToken>())) .ReturnsAsync(TestsHelper.DefaultDataLockedTotal); submissionMetricsRepository.Setup(repo => repo.GetAlreadyPaidDataLockedEarnings(It.IsAny <long>(), It.IsAny <long>(), It.IsAny <CancellationToken>())) .ReturnsAsync(TestsHelper.AlreadyPaidDataLockedEarnings); submissionMetricsRepository.Setup(repo => repo.GetHeldBackCompletionPaymentsTotal(It.IsAny <long>(), It.IsAny <long>(), It.IsAny <CancellationToken>())) .ReturnsAsync(TestsHelper.DefaultHeldBackCompletionPayments); submissionMetricsRepository.Setup(repo => repo.GetYearToDatePaymentsTotal(It.IsAny <long>(), It.IsAny <short>(), It.IsAny <byte>(), It.IsAny <CancellationToken>())) .ReturnsAsync(TestsHelper.DefaultYearToDateAmounts); var queryDataContext = moqer.Mock <IMetricsQueryDataContextFactory>(); queryDataContext.Setup(f => f.Create()) .Returns(inMemoryMetricsQueryDataContext); var realSubmissionMetricsRepository = moqer.Create <SubmissionMetricsRepository>( new NamedParameter("metricsQueryDataContextFactory", queryDataContext.Object), new AutowiringParameter()); submissionMetricsRepository .Setup(repo => repo.GetRequiredPayments(It.IsAny <long>(), It.IsAny <long>(), It.IsAny <CancellationToken>())) .Returns(async(long ukprn, long jobId, CancellationToken cancellationToken) => await realSubmissionMetricsRepository.GetRequiredPayments(ukprn, jobId, cancellationToken)); }