36 lines
1.3 KiB
C#
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));
|
|
}
|
|
}
|