ex-inh-05-transport/Transport.Test/TravelManagementTests.cs
github-classroom[bot] dcabbbaf15
Initial commit
2025-02-25 17:10:54 +00:00

70 lines
1.7 KiB
C#

namespace Transport.Test;
public sealed class TravelManagementTests : TestBase
{
[Fact]
public void Initialize_FileFound()
{
Init();
}
[Fact]
public void Initialize_FileNotFound()
{
TravelManagement travelManagement = new();
travelManagement.InitializeFromFile("not-exists.xlsx")
.Should().BeFalse();
}
[Fact]
public void Rent_Car_Simple()
{
Init().RentVehicle<Car>("Hansi", 400D)
.Should().NotBeNull()
.And.Match<Car>(c => c.Id == 101 && !c.IsFree);
}
[Fact]
public void Rent_Car_Return()
{
var car = Init().RentVehicle<Car>("Hansi", 400D);
car.Should().NotBeNull()
.And.Match<Car>(c => c.Id == 101);
car?.EndRide()
.Should().Be((true, 421.8M));
car?.IsFree.Should().BeTrue();
}
[Fact]
public void Rent_Rickshaw_Simple()
{
var mgmt = Init();
mgmt.RentVehicle<Rickshaw>("Susi", 40D)
.Should().NotBeNull()
.And.Match<Rickshaw>(r => r.Id == 201, "newest avail. rickshaw");
mgmt.RentVehicle<Rickshaw>("Hansi", 25D)
.Should().NotBeNull()
.And.Match<Rickshaw>(r => r.Id == 204, "other rickshaw still en route");
}
[Fact]
public void Rent_DistanceTooHigh()
{
var mgmt = Init();
mgmt.RentVehicle<Rickshaw>("Hansi", 120D)
.Should().NotBeNull("car available")
.And.BeOfType<Car>("distance too high for rickshaw");
}
private static TravelManagement Init()
{
var mgmt = new TravelManagement();
mgmt.InitializeFromFile(Path).Should().BeTrue();
return mgmt;
}
}