コード例 #1
0
        public void CalculateConsumptionTest()
        {
            string wendyJson      = Resource.GetResourceAsString("Wendy.json");
            var    invoiceHistory = JsonUtil.DeserializeJson <Model.InvoiceHistory>(wendyJson);

            var consumptionCalc = new ConsumptionCalculator(invoiceHistory);

            Assert.AreEqual(76U, consumptionCalc.CalculateConsumption(0));
            Assert.AreEqual(76U, invoiceHistory.Invoices.GetInvoiceById(0).GetConsumption().Estimated);
            Assert.AreEqual(76U, invoiceHistory.Invoices.GetInvoiceById(0).GetConsumption().Real);
            Assert.AreEqual(48U, invoiceHistory.Invoices.GetInvoiceById(0).UserInvoices.GetInvoiceByOwner("Apartment A").GetConsumption().Estimated);
            Assert.AreEqual(48U, invoiceHistory.Invoices.GetInvoiceById(0).UserInvoices.GetInvoiceByOwner("Apartment A").GetConsumption().Real);
            Assert.AreEqual(28U, invoiceHistory.Invoices.GetInvoiceById(0).UserInvoices.GetInvoiceByOwner("Apartment B").GetConsumption().Estimated);
            Assert.AreEqual(28U, invoiceHistory.Invoices.GetInvoiceById(0).UserInvoices.GetInvoiceByOwner("Apartment B").GetConsumption().Real);

            Assert.AreEqual(15U, consumptionCalc.CalculateConsumption(1));
            Assert.AreEqual(18U, invoiceHistory.Invoices.GetInvoiceById(1).GetConsumption().Estimated);
            Assert.AreEqual(15U, invoiceHistory.Invoices.GetInvoiceById(1).GetConsumption().Real);
            Assert.AreEqual(11U, invoiceHistory.Invoices.GetInvoiceById(1).UserInvoices.GetInvoiceByOwner("Apartment A").GetConsumption().Estimated);
            Assert.AreEqual(9U, invoiceHistory.Invoices.GetInvoiceById(1).UserInvoices.GetInvoiceByOwner("Apartment A").GetConsumption().Real);
            Assert.AreEqual(7U, invoiceHistory.Invoices.GetInvoiceById(1).UserInvoices.GetInvoiceByOwner("Apartment B").GetConsumption().Estimated);
            Assert.AreEqual(6U, invoiceHistory.Invoices.GetInvoiceById(1).UserInvoices.GetInvoiceByOwner("Apartment B").GetConsumption().Real);

            Assert.AreEqual(49U, consumptionCalc.CalculateConsumption(6));
            Assert.AreEqual(74U, invoiceHistory.Invoices.GetInvoiceById(6).GetConsumption().Estimated);
            Assert.AreEqual(49U, invoiceHistory.Invoices.GetInvoiceById(6).GetConsumption().Real);
            Assert.AreEqual(42U, invoiceHistory.Invoices.GetInvoiceById(6).UserInvoices.GetInvoiceByOwner("Apartment A").GetConsumption().Estimated);
            Assert.AreEqual(28U, invoiceHistory.Invoices.GetInvoiceById(6).UserInvoices.GetInvoiceByOwner("Apartment A").GetConsumption().Real);
            Assert.AreEqual(32U, invoiceHistory.Invoices.GetInvoiceById(6).UserInvoices.GetInvoiceByOwner("Apartment B").GetConsumption().Estimated);
            Assert.AreEqual(21U, invoiceHistory.Invoices.GetInvoiceById(6).UserInvoices.GetInvoiceByOwner("Apartment B").GetConsumption().Real);

            Assert.AreEqual(75U, consumptionCalc.CalculateConsumption(8), "consumption for whole year from prev balanced invoice (0)");
            Assert.AreEqual(75U, invoiceHistory.Invoices.GetInvoiceById(8).GetConsumption().Estimated);
            Assert.AreEqual(75U, invoiceHistory.Invoices.GetInvoiceById(8).GetConsumption().Real);
            Assert.AreEqual(43U, invoiceHistory.Invoices.GetInvoiceById(8).UserInvoices.GetInvoiceByOwner("Apartment A").GetConsumption().Estimated);
            Assert.AreEqual(43U, invoiceHistory.Invoices.GetInvoiceById(8).UserInvoices.GetInvoiceByOwner("Apartment A").GetConsumption().Real);
            Assert.AreEqual(32U, invoiceHistory.Invoices.GetInvoiceById(8).UserInvoices.GetInvoiceByOwner("Apartment B").GetConsumption().Estimated);
            Assert.AreEqual(32U, invoiceHistory.Invoices.GetInvoiceById(8).UserInvoices.GetInvoiceByOwner("Apartment B").GetConsumption().Real);
        }
コード例 #2
0
        public void CalculateFeeTest()
        {
            string wendyJson                = Resource.GetResourceAsString("Wendy.json");
            var    invoiceHistory           = JsonUtil.DeserializeJson <Model.InvoiceHistory>(wendyJson);
            var    invoiceHistoryForAsserts = JsonUtil.DeserializeJson <Model.InvoiceHistory>(wendyJson);

            var consumptionCalc = new ConsumptionCalculator(invoiceHistory);
            var feeCalc         = new FeeCalculator(invoiceHistory);

            consumptionCalc.CalculateConsumption();

            {
                int invoiceId = 0;  // balanced
                feeCalc.CalculateFee(invoiceId);
                AssertInvoicesFee(invoiceHistoryForAsserts.Invoices.GetInvoiceById(invoiceId), invoiceHistory.Invoices.GetInvoiceById(invoiceId));
            }

            {
                int invoiceId = 14; // estimated
                feeCalc.CalculateFee(invoiceId);
                AssertInvoicesFee(invoiceHistoryForAsserts.Invoices.GetInvoiceById(invoiceId), invoiceHistory.Invoices.GetInvoiceById(invoiceId));
            }

            {
                int invoiceId = 15; // estimated
                feeCalc.CalculateFee(invoiceId);
                AssertInvoicesFee(invoiceHistoryForAsserts.Invoices.GetInvoiceById(invoiceId), invoiceHistory.Invoices.GetInvoiceById(invoiceId));
            }

            {
                int invoiceId = 16; // estimated
                feeCalc.CalculateFee(invoiceId);
                AssertInvoicesFee(invoiceHistoryForAsserts.Invoices.GetInvoiceById(invoiceId), invoiceHistory.Invoices.GetInvoiceById(invoiceId));
            }

            {
                int invoiceId = 17; // balanced
                feeCalc.CalculateFee(invoiceId);
                AssertInvoicesFee(invoiceHistoryForAsserts.Invoices.GetInvoiceById(invoiceId), invoiceHistory.Invoices.GetInvoiceById(invoiceId));
            }
        }