44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
namespace Transport.Test;
|
|
|
|
public sealed class CarTests : TestBase
|
|
{
|
|
private static readonly Dictionary<int, (decimal bp, decimal ppk, decimal cpk)> carPriceAndCost = new()
|
|
{
|
|
[101] = (1.8M, 1.05M, 1M),
|
|
[102] = (3M, 1.008M, 0.96M),
|
|
[103] = (3.3M, 1.176M, 1.12M),
|
|
[104] = (4.8M, 1.134M, 1.08M)
|
|
};
|
|
|
|
[Fact]
|
|
public void CreateFromWorksheet()
|
|
{
|
|
List<Car> cars = Car.CreateFromWorksheet(LoadSheets().carWorksheet);
|
|
|
|
cars.Should()
|
|
.NotBeNull()
|
|
.And.NotBeEmpty()
|
|
.And.HaveCount(4)
|
|
.And.Contain(GetSampleCars());
|
|
}
|
|
|
|
[Fact]
|
|
public void PriceAndCost()
|
|
{
|
|
List<Car> cars = Car.CreateFromWorksheet(LoadSheets().carWorksheet);
|
|
|
|
foreach (var car in cars)
|
|
{
|
|
(car.BasePrice, car.PricePerKM, car.CostPerKM)
|
|
.Should().Be(carPriceAndCost[car.Id]);
|
|
}
|
|
}
|
|
|
|
private static List<Car> GetSampleCars() =>
|
|
[
|
|
CreateInstance<Car>(101, Color.Red, 1620, 26789.3D, 105, CarBrand.VW),
|
|
CreateInstance<Car>(102, Color.Blue, 1510, 122734.2D, 80, CarBrand.Dacia),
|
|
CreateInstance<Car>(103, Color.White, 2180, 45611.7D, 180, CarBrand.BMW),
|
|
CreateInstance<Car>(104, Color.Grey, 1798, 93417.8D, 204, CarBrand.AlfaRomeo)
|
|
];
|
|
}
|