public async override Task Should_Success_ReadById()
        {
            string testName  = GetCurrentMethod();
            var    dbContext = DbContext(testName);

            var serviceProvider = GetServiceProviderMock(dbContext).Object;
            GarmentPackingListRepository repoPL = new GarmentPackingListRepository(dbContext, serviceProvider);
            GarmentPackingListDataUtil   utilPL = new GarmentPackingListDataUtil(repoPL);
            GarmentPackingListModel      dataPL = utilPL.GetModel();
            var dataPackingList = await repoPL.InsertAsync(dataPL);

            GarmentShippingInvoiceRepository repo            = new GarmentShippingInvoiceRepository(dbContext, serviceProvider);
            GarmentShippingInvoiceDataUtil   invoiceDataUtil = new GarmentShippingInvoiceDataUtil(repo, utilPL);
            GarmentShippingInvoiceModel      data            = invoiceDataUtil.GetModel();

            data.PackingListId = dataPL.Id;
            var dataInvoice = await repo.InsertAsync(data);

            GarmentShippingCreditAdviceRepository repoCreditAdvice     = new GarmentShippingCreditAdviceRepository(dbContext, serviceProvider);
            GarmentCreditAdviceDataUtil           CreditAdviceDataUtil = new GarmentCreditAdviceDataUtil(repoCreditAdvice);
            GarmentShippingCreditAdviceModel      dataCreditAdvice     = CreditAdviceDataUtil.GetModel();

            dataCreditAdvice.SetInvoiceId(data.Id, "test", "unitTest");
            var results = await repoCreditAdvice.InsertAsync(dataCreditAdvice);

            var result = repoCreditAdvice.ReadByIdAsync(dataCreditAdvice.Id);

            Assert.NotNull(result);
        }
        public async override Task Should_Success_Delete()
        {
            string testName        = GetCurrentMethod();
            var    dbContext       = DbContext(testName);
            var    serviceProvider = GetServiceProviderMock(dbContext).Object;

            GarmentPackingListRepository repoPL = new GarmentPackingListRepository(dbContext, serviceProvider);
            GarmentPackingListDataUtil   utilPL = new GarmentPackingListDataUtil(repoPL);
            GarmentPackingListModel      dataPL = utilPL.GetModel();
            var dataPackingList = await repoPL.InsertAsync(dataPL);

            GarmentShippingInvoiceRepository repo            = new GarmentShippingInvoiceRepository(dbContext, serviceProvider);
            GarmentShippingInvoiceDataUtil   invoiceDataUtil = new GarmentShippingInvoiceDataUtil(repo, utilPL);
            GarmentShippingInvoiceModel      data            = invoiceDataUtil.GetModel();

            data.PackingListId = dataPL.Id;
            var dataInvoice = await repo.InsertAsync(data);

            GarmentShippingInstructionRepository repoInstruction     = new GarmentShippingInstructionRepository(dbContext, serviceProvider);
            GarmentShippingInstructionDataUtil   InstructionDataUtil = new GarmentShippingInstructionDataUtil(repoInstruction, invoiceDataUtil);
            GarmentShippingInstructionModel      dataInstruction     = InstructionDataUtil.GetModel();

            dataInstruction.SetInvoiceId(data.Id, "test", "unitTest");
            var result = await repoInstruction.InsertAsync(dataInstruction);

            var resultdelete = await repoInstruction.DeleteAsync(dataInstruction.Id);

            Assert.NotEqual(0, resultdelete);
        }
        public async override Task Should_Success_Update()
        {
            string testName  = GetCurrentMethod();
            var    dbContext = DbContext(testName);

            var serviceProvider = GetServiceProviderMock(dbContext).Object;

            GarmentPackingListRepository repoPL = new GarmentPackingListRepository(dbContext, serviceProvider);
            GarmentPackingListDataUtil   utilPL = new GarmentPackingListDataUtil(repoPL);
            GarmentPackingListModel      dataPL = utilPL.GetModel();
            var dataPackingList = await repoPL.InsertAsync(dataPL);

            GarmentShippingInvoiceRepository repo            = new GarmentShippingInvoiceRepository(dbContext, serviceProvider);
            GarmentShippingInvoiceDataUtil   invoiceDataUtil = new GarmentShippingInvoiceDataUtil(repo, utilPL);
            GarmentShippingInvoiceModel      data            = invoiceDataUtil.GetModel();

            data.PackingListId = dataPL.Id;
            var dataInvoice = await repo.InsertAsync(data);

            GarmentShippingCreditAdviceRepository repoCreditAdvice = new GarmentShippingCreditAdviceRepository(dbContext, serviceProvider);

            GarmentShippingCreditAdviceRepository repoCreditAdvice2    = new GarmentShippingCreditAdviceRepository(dbContext, serviceProvider);
            GarmentCreditAdviceDataUtil           CreditAdviceDataUtil = new GarmentCreditAdviceDataUtil(repoCreditAdvice);
            GarmentShippingCreditAdviceModel      oldModel             = CreditAdviceDataUtil.GetModel();

            oldModel.SetInvoiceId(data.Id, "test", "unitTest");
            await repoCreditAdvice.InsertAsync(oldModel);

            var model         = repoCreditAdvice.ReadAll().FirstOrDefault();
            var modelToUpdate = await repoCreditAdvice.ReadByIdAsync(model.Id);

            modelToUpdate.SetValas(false, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetLCType("model.LCType", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetInkaso(model.Inkaso, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetDisconto(model.Disconto, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetSRNo("model.SRNo", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetNegoDate(model.NegoDate.AddDays(1), data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetPaymentDate(model.PaymentDate.AddDays(1), data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetReceiptNo("model.ReceiptNo", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetCondition("model.Condition", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetBankComission(model.BankComission, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetDiscrepancyFee(model.DiscrepancyFee, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetNettNego(model.NettNego, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetBTBCADate(model.BTBCADate.AddDays(1), data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetBTBAmount(model.BTBAmount, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetBTBRatio(model.BTBRatio, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetBTBRate(model.BTBRate, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetBTBTransfer(model.BTBTransfer, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetBTBMaterial(model.BTBMaterial, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetBillDays(model.BillDays, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetBillAmount(model.BillAmount, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetBillCA("model.BillCA", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetCreditInterest(model.CreditInterest, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetBankCharges(model.BankCharges, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetOtherCharge(model.OtherCharge, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetDocumentPresente(model.DocumentPresente.AddDays(1), data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetCargoPolicyNo("model.CargoPolicyNo", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetCargoPolicyDate(model.CargoPolicyDate.AddDays(1), data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetCargoPolicyValue(model.CargoPolicyValue, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetAccountsReceivablePolicyNo("model.AccountsReceivablePolicyNo", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetAccountsReceivablePolicyDate(model.AccountsReceivablePolicyDate.AddDays(1), data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetAccountsReceivablePolicyValue(model.AccountsReceivablePolicyValue, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetDocumentSendDate(model.DocumentSendDate.AddDays(1), data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetRemark("model.Remark", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetAmountPaid(model.AmountPaid, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetBalanceAmount(model.BalanceAmount, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetInvoiceId(model.InvoiceId, data.LastModifiedBy, data.LastModifiedAgent);

            var result = await repoCreditAdvice2.UpdateAsync(modelToUpdate.Id, modelToUpdate);

            Assert.NotEqual(0, result);
        }
        public async override Task Should_Success_Update()
        {
            string testName  = GetCurrentMethod();
            var    dbContext = DbContext(testName);

            var serviceProvider = GetServiceProviderMock(dbContext).Object;

            GarmentPackingListRepository repoPL = new GarmentPackingListRepository(dbContext, serviceProvider);
            GarmentPackingListDataUtil   utilPL = new GarmentPackingListDataUtil(repoPL);
            GarmentPackingListModel      dataPL = utilPL.GetModel();
            var dataPackingList = await repoPL.InsertAsync(dataPL);

            GarmentShippingInvoiceRepository repo            = new GarmentShippingInvoiceRepository(dbContext, serviceProvider);
            GarmentShippingInvoiceDataUtil   invoiceDataUtil = new GarmentShippingInvoiceDataUtil(repo, utilPL);
            GarmentShippingInvoiceModel      data            = invoiceDataUtil.GetModel();

            data.PackingListId = dataPL.Id;
            var dataInvoice = await repo.InsertAsync(data);

            GarmentShippingInstructionRepository repoInstruction = new GarmentShippingInstructionRepository(dbContext, serviceProvider);

            GarmentShippingInstructionRepository repoInstruction2    = new GarmentShippingInstructionRepository(dbContext, serviceProvider);
            GarmentShippingInstructionDataUtil   InstructionDataUtil = new GarmentShippingInstructionDataUtil(repoInstruction, invoiceDataUtil);
            GarmentShippingInstructionModel      oldModel            = InstructionDataUtil.GetModel();

            oldModel.SetInvoiceId(data.Id, "test", "unitTest");
            await repoInstruction.InsertAsync(oldModel);

            var model         = repoInstruction.ReadAll().FirstOrDefault();
            var modelToUpdate = await repoInstruction.ReadByIdAsync(model.Id);

            modelToUpdate.SetCarrier("model.Carrier", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetCartonNo("model.CartonNo", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetDate(model.Date.AddDays(1), data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetForwarderCode("model.ForwarderCode", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetForwarderId(2, data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetForwarderName("model.ForwarderName", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetForwarderAddress("model.ForwarderName", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetForwarderPhone("model.ForwarderName", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetFeederVessel("model.FeederVessel", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetFlight("model.Flight", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetNotify("model.Notify", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetOceanVessel("model.OceanVessel", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetPlaceOfDelivery("model.PlaceOfDelivery", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetPortOfDischarge("model.PortOfDischarge", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetShippedBy("model.ShippedBy", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetSpecialInstruction("model.ins", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetTransit("model.transit", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetATTN("model.attn", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetCC("model.cc", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetFax("model.fax", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetPhone("model.phone", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetLadingBill("model.bill", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetFreight("model.freight", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetMarks("model.marks", data.LastModifiedBy, data.LastModifiedAgent);
            modelToUpdate.SetLadingDate(model.Date.AddDays(1), data.LastModifiedBy, data.LastModifiedAgent);

            var result = await repoInstruction2.UpdateAsync(modelToUpdate.Id, modelToUpdate);

            Assert.NotEqual(0, result);
        }