private async Task <Guid> CreateWeeeSentOnAmounts(ObligatedSentOnDataAccess dataAccess, DatabaseWrapper database)
        {
            var organisation = ObligatedWeeeIntegrationCommon.CreateOrganisation();
            var scheme       = ObligatedWeeeIntegrationCommon.CreateScheme(organisation);
            var aatf         = ObligatedWeeeIntegrationCommon.CreateAatf(database, organisation);
            var siteAddress  = ObligatedWeeeIntegrationCommon.CreateAatfAddress(database);
            var @return      = ObligatedWeeeIntegrationCommon.CreateReturn(organisation, database.Model.AspNetUsers.First().Id);

            database.WeeeContext.Organisations.Add(organisation);
            database.WeeeContext.Schemes.Add(scheme);
            database.WeeeContext.Aatfs.Add(aatf);
            database.WeeeContext.Returns.Add(@return);
            database.WeeeContext.AatfAddress.Add(siteAddress);

            await database.WeeeContext.SaveChangesAsync();

            var weeeSentOn = new WeeeSentOn(siteAddress.Id, aatf.Id, @return.Id);

            var weeeSentOnAmount = new List <WeeeSentOnAmount>();

            foreach (var category in Enum.GetValues(typeof(WeeeCategory)).Cast <WeeeCategory>())
            {
                weeeSentOnAmount.Add(new WeeeSentOnAmount(weeeSentOn, (int)category, (decimal?)category, (decimal?)category + 1));
            }

            await dataAccess.Submit(weeeSentOnAmount);

            return(weeeSentOn.Id);
        }
        public async void UpdateAmounts_GivenAmountToUpdate_ContextShouldContainUpdatedAmounts()
        {
            using (var database = new DatabaseWrapper())
            {
                var context    = database.WeeeContext;
                var dataAccess = new ObligatedSentOnDataAccess(database.WeeeContext);

                var weeeSentOnId = await CreateWeeeSentOnAmounts(dataAccess, database);

                AssertValues(context, weeeSentOnId);

                for (var i = 1; i <= Enum.GetValues(typeof(WeeeCategory)).Cast <WeeeCategory>().Count(); i++)
                {
                    var amount = context.WeeeSentOnAmount.First(c => c.WeeeSentOn.Id == weeeSentOnId && c.CategoryId == i);
                    await dataAccess.UpdateAmounts(amount, i + 1, i + 2);
                }

                for (var i = 1; i <= Enum.GetValues(typeof(WeeeCategory)).Cast <WeeeCategory>().Count(); i++)
                {
                    var amount = context.WeeeSentOnAmount.First(c => c.WeeeSentOn.Id == weeeSentOnId && c.CategoryId == i);
                    amount.HouseholdTonnage.Should().Be(i + 1);
                    amount.NonHouseholdTonnage.Should().Be(i + 2);
                }
            }
        }
예제 #3
0
 public AddObligatedSentOnDataAccessTests()
 {
     context         = A.Fake <WeeeContext>();
     dbContextHelper = new DbContextHelper();
     dataAccess      = new ObligatedSentOnDataAccess(context);
     aatfId          = Guid.NewGuid();
     returnId        = Guid.NewGuid();
     weeeSentOnId    = Guid.NewGuid();
     siteAddressId   = Guid.NewGuid();
 }
        public async Task CanCreateWeeeSentOnAmountEntry()
        {
            using (var database = new DatabaseWrapper())
            {
                var context    = database.WeeeContext;
                var dataAccess = new ObligatedSentOnDataAccess(database.WeeeContext);

                var weeeSentOnId = await CreateWeeeSentOnAmounts(dataAccess, database);

                AssertValues(context, weeeSentOnId);
            }
        }
예제 #5
0
        private static async Task CreateWeeeSentOnAmounts(
            ObligatedSentOnDataAccess dataAccess,
            Return @return,
            Aatf aatf,
            AatfAddress siteAddress,
            AatfAddress operatorAddress)
        {
            var weeeSentOn = new WeeeSentOn(operatorAddress, siteAddress, aatf, @return);

            var weeeSentOnAmount = new List <WeeeSentOnAmount>();

            foreach (var category in Enum.GetValues(typeof(WeeeCategory)).Cast <WeeeCategory>())
            {
                weeeSentOnAmount.Add(new WeeeSentOnAmount(weeeSentOn, (int)category, (decimal?)category, (decimal?)category + 1));
            }

            await dataAccess.Submit(weeeSentOnAmount);
        }