public void GetCharginSessions_OneChargingSession() { // Arrange var timeline = new MessageTimeline(new ICanBusMessage[] { new BatteryPowerMessage(_batteryPower), new TimestampMessageBuilder(new DateTime(2019, 1, 1, 0, 0, 0, DateTimeKind.Utc)).Build(), new BatteryInfoMessage(_chargingStarted), new BatteryPowerMessage(_batteryPower), new StateOfChargeMessage(_stateOfCharge), new BatteryPowerMessage(_batteryPower), new BatteryInfoMessage(_chargingStopped), new TimestampMessageBuilder(new DateTime(2019, 1, 1, 0, 0, 1, DateTimeKind.Utc)).Build(), }); // Act var sessions = new ChargingSessionFilter().GetChargingSessions(timeline).ToList(); // Assert sessions.Count.Should().Be(1); sessions[0].Select(m => m.Value.GetType()).Should().BeEquivalentTo( typeof(BatteryInfoMessage), typeof(BatteryPowerMessage), typeof(StateOfChargeMessage), typeof(BatteryPowerMessage)); }
public void GetCharginSessions_NoChargingSession() { // Arrange var timeline = new MessageTimeline(new ICanBusMessage[] { new BatteryPowerMessage(_batteryPower), new TimestampMessageBuilder(new DateTime(2019, 1, 1, 0, 0, 0, DateTimeKind.Utc)).Build(), new BatteryPowerMessage(_batteryPower), new StateOfChargeMessage(_stateOfCharge), new BatteryPowerMessage(_batteryPower), new TimestampMessageBuilder(new DateTime(2019, 1, 1, 0, 0, 1, DateTimeKind.Utc)).Build(), }); // Act var sessions = new ChargingSessionFilter().GetChargingSessions(timeline); // Assert sessions.Should().BeEmpty(); }