public void SetUp() { telemetry = new Mock <ITelemetry>(); commitmentsDataContext = new CommitmentsDataContext(new DbContextOptionsBuilder <CommitmentsDataContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options); paymentsDataContext = new PaymentsDataContext(new DbContextOptionsBuilder <PaymentsDataContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options); var commitmentsDataContextFactory = new Mock <ICommitmentsDataContextFactory>(); commitmentsDataContextFactory.Setup(c => c.Create()) .Returns(commitmentsDataContext); var paymentsDataContextFactory = new Mock <IPaymentsDataContextFactory>(); paymentsDataContextFactory.Setup(c => c.Create()) .Returns(paymentsDataContext); var dasApprenticeships = new List <ApprenticeshipModel> { new ApprenticeshipModel { IsApproved = true, Commitment = new Commitment { EmployerAndProviderApprovedOn = DateTime.Now, Approvals = 3 } }, new ApprenticeshipModel { IsApproved = false, Commitment = new Commitment { EmployerAndProviderApprovedOn = DateTime.Now, Approvals = 3 } }, //assert we are using the correct new logic based on query in PV2-2215 new ApprenticeshipModel { IsApproved = true, Commitment = new Commitment { EmployerAndProviderApprovedOn = DateTime.Now, Approvals = 7 } }, //assert we include transfers new ApprenticeshipModel { PaymentStatus = PaymentStatus.Withdrawn, StopDate = DateTime.Now, Commitment = new Commitment { EmployerAndProviderApprovedOn = DateTime.Now } }, //expected in stopped count new ApprenticeshipModel { PaymentStatus = PaymentStatus.Withdrawn, StopDate = DateTime.Now, Commitment = new Commitment { EmployerAndProviderApprovedOn = DateTime.Now } }, //expected in stopped count new ApprenticeshipModel { PaymentStatus = PaymentStatus.Withdrawn, StopDate = DateTime.Now.AddDays(10), Commitment = new Commitment { EmployerAndProviderApprovedOn = DateTime.Now } }, //expected in stopped count new ApprenticeshipModel { PaymentStatus = PaymentStatus.Withdrawn, StopDate = DateTime.Now.AddDays(-31), Commitment = new Commitment { EmployerAndProviderApprovedOn = DateTime.Now } }, //not expected in stopped count (stop date too old) new ApprenticeshipModel { PaymentStatus = PaymentStatus.Withdrawn, Commitment = new Commitment { EmployerAndProviderApprovedOn = DateTime.Now } }, //not expected in stopped count (null stop date) new ApprenticeshipModel { PaymentStatus = PaymentStatus.Completed, StopDate = DateTime.Now, Commitment = new Commitment { EmployerAndProviderApprovedOn = DateTime.Now } }, //not expected in stopped count (wrong status even though stop date is now) new ApprenticeshipModel { PaymentStatus = PaymentStatus.Paused, IsApproved = true, PauseDate = DateTime.Now }, new ApprenticeshipModel { PaymentStatus = PaymentStatus.Withdrawn, IsApproved = true, PauseDate = DateTime.Now }, new ApprenticeshipModel { PaymentStatus = PaymentStatus.Paused, IsApproved = false, PauseDate = DateTime.Now }, new ApprenticeshipModel { PaymentStatus = PaymentStatus.Paused, IsApproved = true, PauseDate = DateTime.Now.AddDays(-31) }, }; var paymentsApprenticeships = new List <Model.Core.Entities.ApprenticeshipModel> { new Model.Core.Entities.ApprenticeshipModel { Status = ApprenticeshipStatus.Active, CreationDate = DateTime.Now }, new Model.Core.Entities.ApprenticeshipModel { Status = ApprenticeshipStatus.Active, CreationDate = DateTime.Now }, new Model.Core.Entities.ApprenticeshipModel { CreationDate = DateTime.Now }, //status doesn't matter anymore, assert query mirrors this new Model.Core.Entities.ApprenticeshipModel { Status = ApprenticeshipStatus.Active, CreationDate = DateTime.Now.AddDays(-31) }, new Model.Core.Entities.ApprenticeshipModel { Status = ApprenticeshipStatus.Stopped, StopDate = DateTime.Now }, new Model.Core.Entities.ApprenticeshipModel { Status = ApprenticeshipStatus.Stopped, StopDate = DateTime.Now.AddDays(-31) }, new Model.Core.Entities.ApprenticeshipModel { StopDate = DateTime.Now.AddDays(-31) }, new Model.Core.Entities.ApprenticeshipModel { Status = ApprenticeshipStatus.Paused, ApprenticeshipPauses = new List <ApprenticeshipPauseModel> { new ApprenticeshipPauseModel { PauseDate = DateTime.Now, ResumeDate = null } } }, new Model.Core.Entities.ApprenticeshipModel { Status = ApprenticeshipStatus.Paused, ApprenticeshipPauses = new List <ApprenticeshipPauseModel> { new ApprenticeshipPauseModel { PauseDate = DateTime.Now, ResumeDate = null } } }, new Model.Core.Entities.ApprenticeshipModel { Status = ApprenticeshipStatus.Paused, ApprenticeshipPauses = new List <ApprenticeshipPauseModel> { new ApprenticeshipPauseModel { PauseDate = DateTime.Now, ResumeDate = null } } }, new Model.Core.Entities.ApprenticeshipModel { Status = ApprenticeshipStatus.Paused, CreationDate = DateTime.Now }, new Model.Core.Entities.ApprenticeshipModel { Status = ApprenticeshipStatus.Paused, ApprenticeshipPauses = new List <ApprenticeshipPauseModel> { new ApprenticeshipPauseModel { PauseDate = DateTime.Now, ResumeDate = DateTime.Now } } }, new Model.Core.Entities.ApprenticeshipModel { Status = ApprenticeshipStatus.Paused, ApprenticeshipPauses = new List <ApprenticeshipPauseModel> { new ApprenticeshipPauseModel { PauseDate = DateTime.Now.AddDays(-31), ResumeDate = null } } }, new Model.Core.Entities.ApprenticeshipModel { Status = ApprenticeshipStatus.Inactive, ApprenticeshipPauses = new List <ApprenticeshipPauseModel> { new ApprenticeshipPauseModel { PauseDate = DateTime.Now, ResumeDate = null } } } }; commitmentsDataContext.Apprenticeship.AddRange(dasApprenticeships); commitmentsDataContext.SaveChanges(); paymentsDataContext.Apprenticeship.AddRange(paymentsApprenticeships); paymentsDataContext.SaveChanges(); service = new ApprenticeshipDataService(paymentsDataContextFactory.Object, commitmentsDataContextFactory.Object, telemetry.Object); }
public ApprenticeshipDataService(IPaymentsDataContext paymentsDataContext, ICommitmentsDataContext commitmentsDataContext, ITelemetry telemetry) { this.paymentsDataContext = paymentsDataContext; this.commitmentsDataContext = commitmentsDataContext; this.telemetry = telemetry; }
public void SetUp() { telemetry = new Mock <ITelemetry>(); commitmentsDataContext = new CommitmentsDataContext(new DbContextOptionsBuilder <CommitmentsDataContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options); paymentsDataContext = new PaymentsDataContext(new DbContextOptionsBuilder <PaymentsDataContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options); var dasApprenticeships = new List <ApprenticeshipModel> { new ApprenticeshipModel { IsApproved = true }, new ApprenticeshipModel { PaymentStatus = PaymentStatus.Withdrawn }, new ApprenticeshipModel { PaymentStatus = PaymentStatus.Withdrawn }, new ApprenticeshipModel { PaymentStatus = PaymentStatus.Withdrawn }, new ApprenticeshipModel { PaymentStatus = PaymentStatus.Paused }, new ApprenticeshipModel { PaymentStatus = PaymentStatus.Paused }, }; var paymentsApprenticeships = new List <Model.Core.Entities.ApprenticeshipModel> { new Model.Core.Entities.ApprenticeshipModel { Status = ApprenticeshipStatus.Active }, new Model.Core.Entities.ApprenticeshipModel { Status = ApprenticeshipStatus.Active }, new Model.Core.Entities.ApprenticeshipModel { Status = ApprenticeshipStatus.Active }, new Model.Core.Entities.ApprenticeshipModel { Status = ApprenticeshipStatus.Stopped }, new Model.Core.Entities.ApprenticeshipModel { Status = ApprenticeshipStatus.Paused }, new Model.Core.Entities.ApprenticeshipModel { Status = ApprenticeshipStatus.Paused }, new Model.Core.Entities.ApprenticeshipModel { Status = ApprenticeshipStatus.Paused }, new Model.Core.Entities.ApprenticeshipModel { Status = ApprenticeshipStatus.Paused } }; commitmentsDataContext.Apprenticeship.AddRange(dasApprenticeships); commitmentsDataContext.SaveChanges(); paymentsDataContext.Apprenticeship.AddRange(paymentsApprenticeships); paymentsDataContext.SaveChanges(); service = new ApprenticeshipDataService(paymentsDataContext, commitmentsDataContext, telemetry.Object); }