public void CalculatethePackageAmountByPeriodTest() { FinanceBL financeBL = new FinanceBL(DataContext); // Get mega project package List <ProjectPaymentPackageDetails> projectPackageDetails = Utils.GetSystemProjectPackageDetails(); ProjectPaymentPackageDetails projectMegaPackage = projectPackageDetails.Where(ppd => ppd.PackageName == "MEGA").FirstOrDefault(); // Get mega inventory package List <InventoryPaymentPackageDetails> inventoryPackageDetails = Utils.GetSystemInventoryPackageDetails(); InventoryPaymentPackageDetails inventoryMegaPackage = inventoryPackageDetails.Where(ppd => ppd.PackageName == "MEGA").FirstOrDefault(); // get discount code usage DiscountCodeUsage discountCodeUsage = new DiscountCodeUsageMock(DataContext).GetDiscountCodeUsage(true, null); DataContext.SaveChanges(); // get code ids int monthlyPaymentDurationCodeId = Utils.GetCodeIdByCodeValue("PaymentPackageDuration", "MONTHLY"); int annualPaymentDurationCodeId = Utils.GetCodeIdByCodeValue("PaymentPackageDuration", "ANUAL"); int projectPackageTypeId = Utils.GetCodeIdByCodeValue("PaymentPackageType", "PROJECT"); int inventoryPackageTypeId = Utils.GetCodeIdByCodeValue("PaymentPackageType", "INVENTORY"); // validate decimal?amount = financeBL.CalculatethePackageAmountByPeriod(inventoryPackageTypeId, inventoryMegaPackage.PackageTypeId, monthlyPaymentDurationCodeId); Assert.IsTrue(inventoryMegaPackage.Amount == amount); amount = financeBL.CalculatethePackageAmountByPeriod(inventoryPackageTypeId, inventoryMegaPackage.PackageTypeId, annualPaymentDurationCodeId); Assert.IsTrue(inventoryMegaPackage.AnualAmount == amount); amount = financeBL.CalculatethePackageAmountByPeriod(projectPackageTypeId, projectMegaPackage.PackageTypeId, monthlyPaymentDurationCodeId); Assert.IsTrue(projectMegaPackage.Amount == amount); amount = financeBL.CalculatethePackageAmountByPeriod(projectPackageTypeId, projectMegaPackage.PackageTypeId, annualPaymentDurationCodeId); Assert.IsTrue(projectMegaPackage.AnualAmount == amount); }