52 lines
1.3 KiB
C#
52 lines
1.3 KiB
C#
|
|
using Elsa.Testing.Shared;
|
||
|
|
using Elsa.Workflows;
|
||
|
|
|
||
|
|
namespace Elsa.Activities.UnitTests.Primitives;
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Unit tests for the <see cref="Finish"/> activity.
|
||
|
|
/// </summary>
|
||
|
|
public class FinishTests
|
||
|
|
{
|
||
|
|
[Fact(DisplayName = "Finish implements ITerminalNode interface")]
|
||
|
|
public void Finish_ImplementsITerminalNode()
|
||
|
|
{
|
||
|
|
// Arrange
|
||
|
|
var finish = new Finish();
|
||
|
|
|
||
|
|
// Assert
|
||
|
|
Assert.IsAssignableFrom<ITerminalNode>(finish);
|
||
|
|
}
|
||
|
|
|
||
|
|
[Fact(DisplayName = "Finish completes successfully")]
|
||
|
|
public async Task Should_Complete_Successfully()
|
||
|
|
{
|
||
|
|
// Arrange
|
||
|
|
var finish = new Finish();
|
||
|
|
|
||
|
|
// Act
|
||
|
|
var context = await ExecuteAsync(finish);
|
||
|
|
|
||
|
|
// Assert
|
||
|
|
Assert.Equal(ActivityStatus.Completed, context.Status);
|
||
|
|
}
|
||
|
|
|
||
|
|
[Fact(DisplayName = "Finish transitions workflow to Finished substatus")]
|
||
|
|
public async Task Should_Transition_Workflow_To_Finished()
|
||
|
|
{
|
||
|
|
// Arrange
|
||
|
|
var finish = new Finish();
|
||
|
|
|
||
|
|
// Act
|
||
|
|
var context = await ExecuteAsync(finish);
|
||
|
|
|
||
|
|
// Assert
|
||
|
|
Assert.Equal(WorkflowSubStatus.Finished, context.WorkflowExecutionContext.SubStatus);
|
||
|
|
}
|
||
|
|
|
||
|
|
private static async Task<ActivityExecutionContext> ExecuteAsync(IActivity activity)
|
||
|
|
{
|
||
|
|
return await new ActivityTestFixture(activity).ExecuteAsync();
|
||
|
|
}
|
||
|
|
}
|