Add tests for partnership workflow, middleman adaptation and idea notifications; extract reusable test stubs into separate files; add architecture guard forbidding object-valued dictionaries in data contracts.
26 lines
956 B
C#
26 lines
956 B
C#
using TarninaHub.Domain.Enums;
|
|
using TarninaHub.Domain.Rules;
|
|
|
|
namespace TarninaHub.Tests.Domain;
|
|
|
|
public class PartnershipWorkflowTests
|
|
{
|
|
[Theory]
|
|
[InlineData(PartnershipStatus.Proposed, PartnershipStatus.Active, true)]
|
|
[InlineData(PartnershipStatus.Proposed, PartnershipStatus.Closed, true)]
|
|
[InlineData(PartnershipStatus.Active, PartnershipStatus.Closed, true)]
|
|
[InlineData(PartnershipStatus.Closed, PartnershipStatus.Active, false)]
|
|
[InlineData(PartnershipStatus.Active, PartnershipStatus.Proposed, false)]
|
|
public void CanTransition_EnforcesLifecycle(PartnershipStatus from, PartnershipStatus to, bool expected)
|
|
{
|
|
Assert.Equal(expected, PartnershipWorkflow.CanTransition(from, to));
|
|
}
|
|
|
|
[Fact]
|
|
public void Closed_IsTerminal()
|
|
{
|
|
Assert.True(PartnershipWorkflow.IsTerminal(PartnershipStatus.Closed));
|
|
Assert.False(PartnershipWorkflow.IsTerminal(PartnershipStatus.Proposed));
|
|
}
|
|
}
|