Files
Hy2026/tests/TarninaHub.Tests/Domain/SubmissionWorkflowTests.cs
T

36 lines
1.3 KiB
C#

using TarninaHub.Domain.Enums;
using TarninaHub.Domain.Rules;
namespace TarninaHub.Tests.Domain;
public class SubmissionWorkflowTests
{
[Theory]
[InlineData(SubmissionStatus.New, SubmissionStatus.Triaged, true)]
[InlineData(SubmissionStatus.New, SubmissionStatus.Matched, false)]
[InlineData(SubmissionStatus.Triaged, SubmissionStatus.Matched, true)]
[InlineData(SubmissionStatus.Matched, SubmissionStatus.InProgress, true)]
[InlineData(SubmissionStatus.InProgress, SubmissionStatus.Closed, true)]
[InlineData(SubmissionStatus.Closed, SubmissionStatus.Triaged, false)]
[InlineData(SubmissionStatus.Rejected, SubmissionStatus.New, false)]
public void CanTransition_EnforcesWorkflow(SubmissionStatus from, SubmissionStatus to, bool expected)
{
Assert.Equal(expected, SubmissionWorkflow.CanTransition(from, to));
}
[Fact]
public void CanTransition_AllowsSameStatus()
{
Assert.True(SubmissionWorkflow.CanTransition(SubmissionStatus.New, SubmissionStatus.New));
}
[Theory]
[InlineData(SubmissionStatus.Closed, true)]
[InlineData(SubmissionStatus.Rejected, true)]
[InlineData(SubmissionStatus.New, false)]
public void IsTerminal_RecognizesFinalStates(SubmissionStatus status, bool expected)
{
Assert.Equal(expected, SubmissionWorkflow.IsTerminal(status));
}
}