public async Task OnprogPayableDataLockEventWithNoApprenticeshipIdShouldNotBeStored(
            IReceivedDataLockEventStore receivedDataLockEventStore,
            PayableEarningEvent payableEarningEvent,
            EarningPeriod period,
            ApprenticeshipModel apprenticeship,
            List <DataLockFailure> dataLockFailures,
            ManageReceivedDataLockEvent manageReceivedDataLockEvent)
        {
            period.ApprenticeshipId = default(long?);
            period.AccountId        = default(long?);
            payableEarningEvent.OnProgrammeEarnings = new List <OnProgrammeEarning>
            {
                new OnProgrammeEarning
                {
                    Periods = (new List <EarningPeriod>
                    {
                        period
                    }).AsReadOnly(),
                    Type       = OnProgrammeEarningType.Learning,
                    CensusDate = DateTime.UtcNow
                }
            };

            await manageReceivedDataLockEvent.ProcessDataLockEvent(payableEarningEvent);

            var result = (await receivedDataLockEventStore
                          .GetDataLocks(payableEarningEvent.JobId, payableEarningEvent.Ukprn)).ToList();

            result.Should().BeEmpty();
        }
Exemplo n.º 2
0
        private async Task <IEnumerable <DataLockEvent> > GetDataLocks(long jobId, long ukprn)
        {
            var receivedEvents = await receivedEventStore.GetDataLocks(jobId, ukprn);

            var dataLocks = receivedEvents.Select(x =>
            {
                var type = Type.GetType(x.MessageType);
                return((DataLockEvent)JsonConvert.DeserializeObject(x.Message, type));
            });

            return(dataLocks);
        }
        public async Task When_job_succeeded_removes_received_dataLock_events(
            IReceivedDataLockEventStore receivedContext,
            PriceEpisodesReceivedService sut,
            TestCaseData testCaseData)
        {
            testCaseData.CommonSetup();

            await testCaseData.AddDataLockEventToContext(receivedContext);

            await sut.GetPriceEpisodeChanges(testCaseData.earning.JobId, testCaseData.earning.Ukprn, testCaseData.earning.CollectionYear);

            (await receivedContext.GetDataLocks(testCaseData.earning.JobId, testCaseData.earning.Ukprn))
            .Should().BeEmpty();
        }
        public async Task StoreOnprogPayableDataLockEvents(
            IReceivedDataLockEventStore receivedDataLockEventStore,
            PayableEarningEvent payableEarningEvent,
            List <EarningPeriod> periods,
            ApprenticeshipModel apprenticeship,
            ManageReceivedDataLockEvent manageReceivedDataLockEvent)
        {
            CommonTestSetup(payableEarningEvent, periods, apprenticeship);
            await manageReceivedDataLockEvent.ProcessDataLockEvent(payableEarningEvent);

            var result = (await receivedDataLockEventStore
                          .GetDataLocks(payableEarningEvent.JobId, payableEarningEvent.Ukprn)).ToList();

            result.Should().NotBeNull();
            result.Should().HaveCount(1);
            result[0].MessageType.Should().Be(typeof(PayableEarningEvent).AssemblyQualifiedName);
            result[0].Message.Should().Be(payableEarningEvent.ToJson());
        }
        public async Task StoreValidOnprogNonPayableDataLockEvents(
            IReceivedDataLockEventStore receivedDataLockEventStore,
            EarningFailedDataLockMatching nonPayableEarningEvent,
            List <EarningPeriod> periods,
            ApprenticeshipModel apprenticeship,
            List <DataLockFailure> dataLockFailures,
            ManageReceivedDataLockEvent manageReceivedDataLockEvent)
        {
            CommonTestSetup(nonPayableEarningEvent, periods, apprenticeship, dataLockFailures);
            await manageReceivedDataLockEvent.ProcessDataLockEvent(nonPayableEarningEvent);

            var result = (await receivedDataLockEventStore
                          .GetDataLocks(nonPayableEarningEvent.JobId, nonPayableEarningEvent.Ukprn)).ToList();

            result.Should().NotBeNull();
            result.Should().HaveCount(1);
            result[0].MessageType.Should().Be(nonPayableEarningEvent.GetType().AssemblyQualifiedName);
            result[0].Message.Should().Be(nonPayableEarningEvent.ToJson());
        }
        public async Task DataLockFunctionalSkillEventsShouldNotBeStored(
            IReceivedDataLockEventStore receivedDataLockEventStore,
            ManageReceivedDataLockEvent manageReceivedDataLockEvent,
            long jobId,
            long ukprn)
        {
            await manageReceivedDataLockEvent.ProcessDataLockEvent(new FunctionalSkillEarningFailedDataLockMatching
            {
                JobId = jobId,
                Ukprn = ukprn
            });

            await manageReceivedDataLockEvent.ProcessDataLockEvent(new PayableFunctionalSkillEarningEvent
            {
                JobId = jobId,
                Ukprn = ukprn
            });

            var result = await receivedDataLockEventStore.GetDataLocks(jobId, ukprn);

            result.Should().BeEmpty();
        }