Files
spouliot dbe4170986 Add unit tests for 9 new services/controllers and expand existing test coverage
116 tests passing: JobPhotoService, MeasurementConversionService, PlatformSettingsService,
QuoteApprovalController, QuotePhotoService, ShopCapabilityCalculator, StorageMigrationService,
TenantContext, UsageQuotaController — plus expanded PricingCalculation, Registration, and
Subscription tests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 18:27:30 -04:00

63 lines
2.0 KiB
C#

using PowderCoating.Application.Services;
namespace PowderCoating.UnitTests;
public class MeasurementConversionServiceTests
{
private readonly MeasurementConversionService _service = new();
[Fact]
public void SquareFeetToMeters_AndBack_RoundTripsToCurrencyStylePrecision()
{
var squareMeters = _service.SquareFeetToMeters(100m);
var squareFeet = _service.SquareMetersToFeet(squareMeters);
Assert.Equal(9.29m, squareMeters);
Assert.Equal(100m, squareFeet, 1);
}
[Fact]
public void PoundsToKilograms_AndBack_RoundTripsToCurrencyStylePrecision()
{
var kilograms = _service.PoundsToKilograms(10m);
var pounds = _service.KilogramsToPounds(kilograms);
Assert.Equal(4.54m, kilograms);
Assert.Equal(10.01m, pounds, 2);
}
[Fact]
public void ConvertArea_WhenImperialToMetric_UsesSquareFeetConversion()
{
var result = _service.ConvertArea(50m, fromImperial: true, toMetric: true);
Assert.Equal(4.65m, result);
}
[Fact]
public void ConvertArea_WhenSourceAndTargetAreSameSystem_ReturnsOriginalValue()
{
Assert.Equal(12.34m, _service.ConvertArea(12.34m, fromImperial: true, toMetric: false));
Assert.Equal(56.78m, _service.ConvertArea(56.78m, fromImperial: false, toMetric: true));
}
[Fact]
public void ConvertWeight_WhenMetricToImperial_UsesKilogramsToPounds()
{
var result = _service.ConvertWeight(5m, fromImperial: false, toMetric: false);
Assert.Equal(11.02m, result);
}
[Fact]
public void UnitLabelHelpers_ReturnExpectedMetricAndImperialLabels()
{
Assert.Equal("sq ft", _service.GetAreaUnitLabel(false));
Assert.Equal("sq m", _service.GetAreaUnitLabel(true));
Assert.Equal("lb", _service.GetWeightUnitLabel(false));
Assert.Equal("kg", _service.GetWeightUnitLabel(true));
Assert.Equal("sq ft/lb", _service.GetCoverageUnitLabel(false));
Assert.Equal("sq m/kg", _service.GetCoverageUnitLabel(true));
}
}