Beispiel #1
0
        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;
 }
Beispiel #3
0
        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);
        }