Skip to content

Commit

Permalink
Merge pull request #1628 from pkuehnel/feat/useFleetTelemetryData
Browse files Browse the repository at this point in the history
Feat/use fleet telemetry data
  • Loading branch information
pkuehnel authored Nov 17, 2024
2 parents 0cc8baf + 5f42c85 commit 592f5f9
Show file tree
Hide file tree
Showing 4 changed files with 383 additions and 25 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.Collections.Generic;
using System;
using TeslaSolarCharger.Shared.Dtos.ChargingCost.CostConfigurations;
using TeslaSolarCharger.Shared.Dtos.Settings;
using TeslaSolarCharger.Shared.Enums;
using Xunit.Abstractions;
using Xunit;
Expand Down Expand Up @@ -33,4 +34,98 @@ public void CanDeserializeUnKnownEnumValues()
Assert.NotNull(result);
Assert.Equal(CarValueType.Unknown, result.Type);
}

[Fact]
public void CanSetIntValueFromIntValue()
{
var carValueLog = new TeslaSolarCharger.Model.Entities.TeslaSolarCharger.CarValueLog
{
IntValue = 10,
};
var fleetTelemetryWebSocketService = Mock.Create<TeslaSolarCharger.Server.Services.FleetTelemetryWebSocketService>();
var car = new DtoCar();
fleetTelemetryWebSocketService.UpdateDtoCarProperty(car, carValueLog, nameof(DtoCar.SoC));
Assert.Equal(10, car.SoC);
}

[Fact]
public void CanSetIntValueFromDoubleValue()
{
var carValueLog = new TeslaSolarCharger.Model.Entities.TeslaSolarCharger.CarValueLog
{
DoubleValue = 10.45848,
};
var fleetTelemetryWebSocketService = Mock.Create<TeslaSolarCharger.Server.Services.FleetTelemetryWebSocketService>();
var car = new DtoCar();
fleetTelemetryWebSocketService.UpdateDtoCarProperty(car, carValueLog, nameof(DtoCar.SoC));
Assert.Equal(10, car.SoC);
}

[Fact]
public void CanSetIntValueFromStringValue()
{
var carValueLog = new TeslaSolarCharger.Model.Entities.TeslaSolarCharger.CarValueLog
{
StringValue = "10.45848",
};
var fleetTelemetryWebSocketService = Mock.Create<TeslaSolarCharger.Server.Services.FleetTelemetryWebSocketService>();
var car = new DtoCar();
fleetTelemetryWebSocketService.UpdateDtoCarProperty(car, carValueLog, nameof(DtoCar.SoC));
Assert.Equal(10, car.SoC);
}

[Theory]
[InlineData("true")]
[InlineData("True")]
[InlineData("TRUE")]
public void CanSetBoolValueFromTrueStringValue(string boolValue)
{
var carValueLog = new TeslaSolarCharger.Model.Entities.TeslaSolarCharger.CarValueLog
{
StringValue = boolValue,
};
var fleetTelemetryWebSocketService = Mock.Create<TeslaSolarCharger.Server.Services.FleetTelemetryWebSocketService>();
var car = new DtoCar();
fleetTelemetryWebSocketService.UpdateDtoCarProperty(car, carValueLog, nameof(DtoCar.PluggedIn));
Assert.True(car.PluggedIn);
}

[Fact]
public void CanSetDoubleValueFromDoubleValue()
{
var carValueLog = new TeslaSolarCharger.Model.Entities.TeslaSolarCharger.CarValueLog
{
DoubleValue = 10.45848,
};
var fleetTelemetryWebSocketService = Mock.Create<TeslaSolarCharger.Server.Services.FleetTelemetryWebSocketService>();
var car = new DtoCar();
fleetTelemetryWebSocketService.UpdateDtoCarProperty(car, carValueLog, nameof(DtoCar.Latitude));
Assert.Equal(10.45848, car.Latitude);
}

[Fact]
public void CanSetDoubleValueFromIntValue()
{
var carValueLog = new TeslaSolarCharger.Model.Entities.TeslaSolarCharger.CarValueLog
{
IntValue = 10,
};
var fleetTelemetryWebSocketService = Mock.Create<TeslaSolarCharger.Server.Services.FleetTelemetryWebSocketService>();
var car = new DtoCar();
fleetTelemetryWebSocketService.UpdateDtoCarProperty(car, carValueLog, nameof(DtoCar.Latitude));
Assert.Equal(10, car.Latitude);
}

[Fact]
public void CanSetDoubleValueFromStringValue()
{
var carValueLog = new TeslaSolarCharger.Model.Entities.TeslaSolarCharger.CarValueLog
{
StringValue = "10.45848",
};
var fleetTelemetryWebSocketService = Mock.Create<TeslaSolarCharger.Server.Services.FleetTelemetryWebSocketService>();
var car = new DtoCar();
fleetTelemetryWebSocketService.UpdateDtoCarProperty(car, carValueLog, nameof(DtoCar.Latitude));
Assert.Equal(10.45848, car.Latitude);
}
}
7 changes: 0 additions & 7 deletions TeslaSolarCharger/Server/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -118,13 +118,6 @@ async Task DoStartupStuff(WebApplication webApplication, ILogger<Program> logger
var baseConfigurationService = webApplication.Services.GetRequiredService<IBaseConfigurationService>();
var teslaMateContextWrapper = webApplication.Services.GetRequiredService<ITeslaMateDbContextWrapper>();
var teslaMateContext = teslaMateContextWrapper.GetTeslaMateContextIfAvailable();
//This needs to be done before first base configuration update otherwise all TeslaMate values are removed
if (teslaMateContext != default)
{
baseConfiguration.UseTeslaMateIntegration = true;
baseConfiguration.UseTeslaMateAsDataSource = true;
}
await baseConfigurationService.UpdateBaseConfigurationAsync(baseConfiguration);
if (teslaMateContext != default)
{
try
Expand Down
Loading

0 comments on commit 592f5f9

Please sign in to comment.