public RegisteredProducerDataAccessTests()
        {
            dbHelper = new DbContextHelper();
            context  = A.Fake <WeeeContext>();

            dataAccess = new RegisteredProducerDataAccess(context);
        }
Example #2
0
        public async void GetProducerRegistration_GivenProducerRegistration_ReturnsProducerRegistration()
        {
            using (var databaseWrapper = new DatabaseWrapper())
            {
                // Arrange
                var modelHelper = new ModelHelper(databaseWrapper.Model);

                var organisation       = modelHelper.CreateOrganisation();
                var scheme             = modelHelper.CreateScheme(organisation);
                var registeredProducer = modelHelper.GetOrCreateRegisteredProducer(scheme, 2019, "registrationNumber");
                //var producerSubmission = new ProducerSubmission();
                //producerSubmission.RegisteredProducer = registeredProducer;
                //databaseWrapper.Model.ProducerSubmissions.Add(producerSubmission);

                await databaseWrapper.Model.SaveChangesAsync();

                // Act
                var dataAccess = new RegisteredProducerDataAccess(databaseWrapper.WeeeContext);

                var result = await dataAccess.GetProducerRegistration(registeredProducer.ProducerRegistrationNumber, 2019, scheme.ApprovalNumber);

                // Assert
                Assert.Equal(registeredProducer.Id, result.Id);
            }
        }
Example #3
0
        public async Task GetProducerSubmission_WithUnsubmittedProducerSubmission_AndSubmittedAndInvoicedSubmision_ReturnsOnlySubmittedProducerSubmission()
        {
            using (DatabaseWrapper databaseWrapper = new DatabaseWrapper())
            {
                //Arrange
                ModelHelper modelHelper = new ModelHelper(databaseWrapper.Model);

                int    complianceYear           = 2000;
                string registeredProducerNumber = "WEE/XX4567YY";

                var scheme = modelHelper.CreateScheme();

                // Create the registered producer to be removed
                var registeredProducer = modelHelper.GetOrCreateRegisteredProducer(scheme, complianceYear, registeredProducerNumber);

                // Create and upload that has not been submitted, but contains the registered producer
                var firstMemberUpload = modelHelper.CreateMemberUpload(scheme);
                firstMemberUpload.IsSubmitted    = false;
                firstMemberUpload.ComplianceYear = complianceYear;
                var producerSubmission1 = modelHelper.CreateProducerAsCompany(firstMemberUpload, registeredProducerNumber);
                producerSubmission1.RegisteredProducer = registeredProducer;
                producerSubmission1.ChargeThisUpdate   = 10;

                //Create the second upload that has been submitted and invoiced and contains the registered producer
                var invoiceRun         = modelHelper.CreateInvoiceRun();
                var secondMemberUpload = modelHelper.CreateSubmittedMemberUpload(scheme);
                secondMemberUpload.ComplianceYear = complianceYear;
                secondMemberUpload.InvoiceRun     = invoiceRun;
                var producerSubmission2 = modelHelper.CreateProducerAsCompany(secondMemberUpload, registeredProducerNumber);
                producerSubmission2.ChargeThisUpdate   = 10;
                producerSubmission2.Invoiced           = true;
                producerSubmission2.RegisteredProducer = registeredProducer;
                registeredProducer.CurrentSubmission   = producerSubmission2;

                await databaseWrapper.Model.SaveChangesAsync();

                var producerId = databaseWrapper.WeeeContext.RegisteredProducers
                                 .Single(p => p.ProducerRegistrationNumber == registeredProducerNumber)
                                 .Id;

                RegisteredProducerDataAccess registeredProdDA = new RegisteredProducerDataAccess(databaseWrapper.WeeeContext);
                RemoveProducerDataAccess     removeProdDA     = new RemoveProducerDataAccess(registeredProdDA, databaseWrapper.WeeeContext);

                //Act
                var prodSubs = await removeProdDA.GetProducerSubmissionsForRegisteredProducer(producerId);

                //Assert
                Assert.NotNull(prodSubs);
                Assert.Equal(1, prodSubs.Count());
                Assert.Equal(true, prodSubs.First().MemberUpload.IsSubmitted);
            }
        }