public async Task When_job_succeeded_builds_approval_event_for_removed_price_episode(
            [Frozen] Mock <IApprenticeshipRepository> apprenticeshipRepo,
            ICurrentPriceEpisodeForJobStore currentContext,
            IReceivedDataLockEventStore receivedContext,
            TestCaseData testCaseData,
            PriceEpisodesReceivedService sut,
            CurrentPriceEpisode priceEpisode)
        {
            testCaseData.CommonSetup();
            await testCaseData.AddDataLockEventToContext(receivedContext);

            priceEpisode.AssociateWith(testCaseData.earning);
            await currentContext.Add(priceEpisode);

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

            changeMessages.Should().ContainEquivalentOf(
                new
            {
                DataLock = new
                {
                    priceEpisode.PriceEpisodeIdentifier,
                    Status = PriceEpisodeStatus.Removed,
                },
            });
        }
        public async Task When_job_succeeded_builds_approval_event_for_new_and_removed_price_episodes(
            ICurrentPriceEpisodeForJobStore currentContext,
            IReceivedDataLockEventStore receivedContext,
            PriceEpisodesReceivedService sut,
            TestCaseData testCaseData,
            CurrentPriceEpisode removed)
        {
            testCaseData.CommonSetup();

            await testCaseData.AddDataLockEventToContext(receivedContext);

            removed.AssociateWith(testCaseData.earning);
            await currentContext.Add(removed);

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

            changeMessages.Should().ContainEquivalentOf(
                new
            {
                DataLock = new
                {
                    PriceEpisodeIdentifier = testCaseData.earning.PriceEpisodes[0].Identifier,
                    Status = PriceEpisodeStatus.New,
                },
            });
            changeMessages.Should().ContainEquivalentOf(
                new
            {
                DataLock = new
                {
                    removed.PriceEpisodeIdentifier,
                    Status = PriceEpisodeStatus.Removed,
                },
            });
        }