public async Task ThenShouldPublishApprenticeshipEvent()
        {
            await Handler.Handle(ExampleValidRequest);

            MockApprenticeshipEventsPublisher.Verify(x =>
                x.Publish(It.Is<ApprenticeshipEventsList>(list =>
                    list.Events.Count == 1 &&
                    list.Events[0].Apprenticeship.Id == ExampleValidRequest.ApprenticeshipId &&
                    list.Events[0].EffectiveFrom == ExampleValidRequest.StopDate
                    )), Times.Once);
        }
        public override void SetUp()
        {
            base.SetUp();


            ExampleValidRequest = new UpdateApprenticeshipStopDateCommand
            {
                AccountId = 111L,
                ApprenticeshipId = 444L,
                StopDate = DateTime.UtcNow.Date,
                UserName = "******"
            };

            _testCommitment = new Commitment
            {
                Id = 123L,
                EmployerAccountId = ExampleValidRequest.AccountId
            };

            TestApprenticeship = new Apprenticeship
            {
                Id = 444L,
                CommitmentId = 123L,
                PaymentStatus = PaymentStatus.Withdrawn,
                StopDate = DateTime.UtcNow.Date.AddMonths(3),
                StartDate = DateTime.UtcNow.Date.AddMonths(-1)
            };


            MockCurrentDateTime.SetupGet(x => x.Now)
                .Returns(DateTime.UtcNow);


            MockApprenticeshipRespository.Setup(x =>
                    x.GetApprenticeship(It.Is<long>(y => y == ExampleValidRequest.ApprenticeshipId)))
                .ReturnsAsync(TestApprenticeship);
            MockApprenticeshipRespository.Setup(x =>
                    x.UpdateApprenticeshipStatus(It.IsAny<long>(), It.IsAny<long>(), It.IsAny<PaymentStatus>()))
                .Returns(Task.FromResult(new object()));
            MockDataLockRepository.Setup(x => x.GetDataLocks(ExampleValidRequest.ApprenticeshipId, false))
                .ReturnsAsync(new List<DataLockStatus>());

            MockCommitmentRespository.Setup(x => x.GetCommitmentById(123L)).ReturnsAsync(_testCommitment);

            MockApprenticeshipEventsPublisher.Setup(x => x.Publish(It.IsAny<IApprenticeshipEventsList>()))
                .Returns(Task.FromResult(new Unit()));
        }