shoc-backend/SeaHavenIndustries.Tests/LifecycleStatusMapperTests.cs

50 lines
1.8 KiB
C#
Raw Normal View History

using Data.SeaHavenIndustries.Enums;
using SeaHaven.Services.Helpers;
namespace SeaHavenIndustries.Tests;
public class LifecycleStatusMapperTests
{
[Theory]
[InlineData("Open", LifecycleStatus.Incomplete)]
[InlineData("InProgress", LifecycleStatus.InProgress)]
[InlineData("In Progress", LifecycleStatus.InProgress)]
[InlineData("Completed", LifecycleStatus.Completed)]
[InlineData("Cancelled", LifecycleStatus.Canceled)]
[InlineData("On Hold", LifecycleStatus.Pending)]
[InlineData("Scheduled", LifecycleStatus.Scheduled)]
public void FromLegacyStatus_MapsKnownValues(string input, LifecycleStatus expected)
{
var result = LifecycleStatusMapper.FromLegacyStatus(input);
Assert.Equal(expected, result);
}
[Theory]
[InlineData("Incomplete", LifecycleStatus.Incomplete)]
[InlineData("En Route", LifecycleStatus.EnRoute)]
[InlineData("On Site", LifecycleStatus.OnSite)]
[InlineData("Rescheduled", LifecycleStatus.Rescheduled)]
[InlineData("Pending Quote", LifecycleStatus.PendingQuote)]
public void ParseLifecycleStatus_MapsFeLabels(string input, LifecycleStatus expected)
{
var result = LifecycleStatusMapper.ParseLifecycleStatus(input);
Assert.Equal(expected, result);
}
[Theory]
[InlineData(LifecycleStatus.EnRoute, "En Route")]
[InlineData(LifecycleStatus.OnSite, "On Site")]
[InlineData(LifecycleStatus.PendingQuote, "Pending Quote")]
public void ToFeLabel_ReturnsFrontendLabels(LifecycleStatus status, string expected)
{
Assert.Equal(expected, LifecycleStatusMapper.ToFeLabel(status));
}
[Fact]
public void FromLegacyStatus_Unknown_ReturnsNull()
{
var result = LifecycleStatusMapper.FromLegacyStatus("MysteryStatus");
Assert.Null(result);
}
}