public void lap_time_column_values_are_translated_into_set_status_messages_if_the_status_has_changed(SessionType session)
{
In(session).Assert(translator =>
{
SetGridColumnValueMessage message;
LiveDriver driver = translator.GetDriver(1);
// On track. Note that OUT is displayed when a driver exits the pit and is on thier OUT lap.
message = new SetGridColumnValueMessage(1, GridColumn.LapTime, GridColumnColour.White, "OUT");
Assert.MessagesAreEqual(
new SetDriverStatusMessage(1, DriverStatus.OnTrack),
translator.Translate(message)
);
Assert.Equal(DriverStatus.OnTrack, driver.Status);
Assert.Null(translator.Translate(message));
// In pit.
message = new SetGridColumnValueMessage(1, GridColumn.LapTime, GridColumnColour.White, "IN PIT");
Assert.MessagesAreEqual(
new SetDriverStatusMessage(1, DriverStatus.InPits),
translator.Translate(message)
);
Assert.Equal(DriverStatus.InPits, driver.Status);
Assert.Null(translator.Translate(message));
// Retired.
message = new SetGridColumnValueMessage(1, GridColumn.LapTime, GridColumnColour.White, "RETIRED");
Assert.MessagesAreEqual(
new SetDriverStatusMessage(1, DriverStatus.Retired),
translator.Translate(message)
);
Assert.Equal(DriverStatus.Retired, driver.Status);
Assert.Null(translator.Translate(message));
});
}