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))); }
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); }
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); }
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); }
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); }
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); }
public void Return_Price() { _sut = new ProportionalPainter(true, new TimeSpan(0, 0, 30, 0), 10); _sut.EstimatePrice(10).Should().Be(50); }