public void EstimateCosts_TenMinutesPerOneMeter(int squareMeters, int euroPerHour, int expectedCost)
        {
            var sut    = new ProportionalPainter(TimeSpan.FromMinutes(10), euroPerHour, true);
            int result = sut.EstimateCosts(squareMeters);

            Assert.That(result, Is.EqualTo(expectedCost));
        }
        public void EstimateDuration(int minutesPerOneSquareMeter, int squareMeters, int expected)
        {
            var sut    = new ProportionalPainter(TimeSpan.FromMinutes(minutesPerOneSquareMeter), 4, true);
            var result = sut.EstimateDuration(squareMeters);

            Assert.That(result, Is.EqualTo(TimeSpan.FromMinutes(expected)));
        }
示例#3
0
        static void Demo(string[] args)
        {
            double sqMeters = 100d;
            IEnumerable<ProportionalPainter> painters = new ProportionalPainter[10];

            IPainter cheapestPainter = CompositePainterFactories.CreateCheapestSelector(painters);
            Console.WriteLine(cheapestPainter.EstimateCompensation(sqMeters));

            IPainter painter = CompositePainterFactories.CombineProportional(painters);
        }
示例#4
0
        static void Main(string[] args)
        {
            var painters = new ProportionalPainter[5];

            painters[0] = new ProportionalPainter {
                TimePerSqMeter = TimeSpan.FromHours(1), DollarsPerHour = 10
            };
            painters[1] = new ProportionalPainter {
                TimePerSqMeter = TimeSpan.FromHours(2), DollarsPerHour = 8
            };
            painters[2] = new ProportionalPainter {
                TimePerSqMeter = TimeSpan.FromHours(3), DollarsPerHour = 6
            };
            painters[3] = new ProportionalPainter {
                TimePerSqMeter = TimeSpan.FromHours(4), DollarsPerHour = 4
            };
            painters[4] = new ProportionalPainter {
                TimePerSqMeter = TimeSpan.FromHours(5), DollarsPerHour = 2
            };

            var painter = CompositePainterFactories
                          .CreateCheapestSelector(painters)
                          .EstimateCompensation(34);
        }
示例#5
0
 public void Return_Time_Zero_Unavailable()
 {
     _sut = new ProportionalPainter(PainterStatus.Unavailable, new TimeSpan(0, 0, 30, 0), 10, 20);
     _sut.EstimateTimeToPaint(300).Should().Be(TimeSpan.Zero);
 }
示例#6
0
 public void Return_Price_Zero_Unavailable()
 {
     _sut = new ProportionalPainter(PainterStatus.Unavailable, new TimeSpan(0, 0, 30, 0), 10, 20);
     _sut.EstimatePrice(10).Should().Be(0);
 }
示例#7
0
 public void Return_Price_In_Holidays()
 {
     _sut = new ProportionalPainter(PainterStatus.InHolidays, new TimeSpan(0, 0, 30, 0), 10, 20);
     _sut.EstimatePrice(10).Should().Be(100);
 }
        public void IsNotAvailable_ReturnsFalse()
        {
            var sut = new ProportionalPainter(TimeSpan.FromMinutes(10), 1, false);

            Assert.That(sut.IsAvailable, Is.False);
        }
        public void IsAvailable_ReturnsTrue()
        {
            var sut = new ProportionalPainter(TimeSpan.FromMinutes(10), 1, true);

            Assert.That(sut.IsAvailable, Is.True);
        }
示例#10
0
 public void Return_Price()
 {
     _sut = new ProportionalPainter(true, new TimeSpan(0, 0, 30, 0), 10);
     _sut.EstimatePrice(10).Should().Be(50);
 }