예제 #1
0
        public void Building_Gives_Correct_Area_If_Apartment_Exists()
        {
            var targetApartment = new ChargeApartment {
                ApartmentId = 2, Area = 120
            };
            var building = new ChargeBuilding
            {
                BuildingId = 1,
                Apartments = new List <ChargeApartment>
                {
                    new ChargeApartment {
                        ApartmentId = 1, Area = 100
                    },
                    new ChargeApartment {
                        ApartmentId = 2, Area = 120
                    },
                    new ChargeApartment {
                        ApartmentId = 1, Area = 300
                    },
                }
            };

            decimal area = -1;

            Console.WriteLine(area);
            Assert.DoesNotThrow(() => area = building.GetApartmentArea(targetApartment.ApartmentId));
            Console.WriteLine(targetApartment.Area);
            Assert.AreEqual(area, targetApartment.Area);
        }
예제 #2
0
        public void Aaprtment_Can_Find_Payers_In_A_Interval()
        {
            var apartment = new ChargeApartment
            {
                ApartmentId = 1,
                Area        = 1000,
                Payers      = new List <Payer>
                {
                    new Payer {
                        IsOwner = false, From = DateTime.Now.AddDays(-30), To = DateTime.Now.AddDays(-15), OccupantCount = 3, PersonId = 1
                    },
                    new Payer {
                        IsOwner = false, From = DateTime.Now.AddDays(-60), To = DateTime.Now.AddDays(-40), OccupantCount = 1, PersonId = 2
                    },
                    new Payer {
                        IsOwner = false, From = DateTime.Now.AddDays(-25), To = DateTime.Now.AddDays(10), OccupantCount = 5, PersonId = 3
                    },
                }
            };

            var payers = apartment.GetPayerResisdenceInfo(DateTime.Now.AddDays(-20), DateTime.Now.AddDays(5));

            Assert.AreEqual(payers.Count(), 2);
            Assert.NotNull(payers.FirstOrDefault());
            Assert.IsTrue(payers.Any(c => c.PayerId == 3));
            Assert.IsTrue(payers.Any(c => c.PayerId == 1));
            Assert.IsTrue(payers.Any(c => c.DaysLived == 4));
            Assert.IsTrue(payers.Any(c => c.DaysLived == 25));
        }