Remove outdated tests
This commit is contained in:
parent
5f7f115c28
commit
b32c3b45bb
|
|
@ -7,9 +7,9 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="6.0.0"/>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0"/>
|
||||
<PackageReference Include="xunit" Version="2.4.1"/>
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="6.0.0" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0" />
|
||||
<PackageReference Include="xunit" Version="2.4.1" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
|
|
@ -21,8 +21,8 @@
|
|||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\src\modules\Elsa.Workflows.Runtime\Elsa.Workflows.Runtime.csproj"/>
|
||||
<ProjectReference Include="..\Elsa.Testing.Shared\Elsa.Testing.Shared.csproj"/>
|
||||
<ProjectReference Include="..\..\src\modules\Elsa.Workflows.Runtime\Elsa.Workflows.Runtime.csproj" />
|
||||
<ProjectReference Include="..\Elsa.Testing.Shared\Elsa.Testing.Shared.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -1,86 +0,0 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Elsa.Extensions;
|
||||
using Elsa.Testing.Shared;
|
||||
using Elsa.Workflows.Core.Implementations;
|
||||
using Elsa.Workflows.Core.Middleware.Workflows;
|
||||
using Elsa.Workflows.Core.Models;
|
||||
using Elsa.Workflows.Core.Services;
|
||||
using Elsa.Workflows.Core.State;
|
||||
using Elsa.Workflows.Runtime.Extensions;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Xunit;
|
||||
using Xunit.Abstractions;
|
||||
|
||||
namespace Elsa.IntegrationTests.Scenarios.PersistentVariables;
|
||||
|
||||
public class WorkflowInstancePersistenceTests
|
||||
{
|
||||
private readonly IWorkflowRunner _workflowRunner;
|
||||
private readonly CapturingTextWriter _capturingTextWriter = new();
|
||||
private readonly IWorkflowBuilderFactory _workflowBuilderFactory;
|
||||
|
||||
public WorkflowInstancePersistenceTests(ITestOutputHelper testOutputHelper)
|
||||
{
|
||||
var services = new TestApplicationBuilder(testOutputHelper).WithCapturingTextWriter(_capturingTextWriter).Build();
|
||||
_workflowBuilderFactory = services.GetRequiredService<IWorkflowBuilderFactory>();
|
||||
_workflowRunner = services.GetRequiredService<IWorkflowRunner>();
|
||||
|
||||
services.ConfigureDefaultWorkflowExecutionPipeline(pipeline => pipeline
|
||||
.UsePersistentVariables()
|
||||
.UseDefaultActivityScheduler());
|
||||
}
|
||||
|
||||
[Fact(DisplayName = "Persistent variables are persisted after workflow gets blocked")]
|
||||
public async Task Test1()
|
||||
{
|
||||
// Run the workflow.
|
||||
var result = await _workflowRunner.RunAsync<BlockingWorkflow>();
|
||||
|
||||
// Assert the variable was persisted.
|
||||
var persistentVariables = result.WorkflowState.PersistentVariables;
|
||||
var currentLanguageVariable = persistentVariables.FirstOrDefault();
|
||||
|
||||
Assert.NotNull(currentLanguageVariable);
|
||||
}
|
||||
|
||||
[Fact(DisplayName = "Persistent variables are applied before workflow gets resumed")]
|
||||
public async Task Test2()
|
||||
{
|
||||
// Build the workflow.
|
||||
var languages = new[] { "C#", "JavaScript", "Haskell" };
|
||||
var workflow = await _workflowBuilderFactory.CreateBuilder().BuildWorkflowAsync(new BlockingWorkflow(languages));
|
||||
var currentIndex = 0;
|
||||
|
||||
var bookmark = default(Bookmark?);
|
||||
var workflowState = default(WorkflowState?);
|
||||
var variable = workflow.Variables.First();
|
||||
|
||||
// Continuously resume the workflow until no more bookmarks are returned.
|
||||
while (true)
|
||||
{
|
||||
// Run/resume the workflow.
|
||||
var result = workflowState == null
|
||||
? await _workflowRunner.RunAsync(workflow)
|
||||
: await _workflowRunner.RunAsync(workflow, workflowState, new RunWorkflowOptions(BookmarkId: bookmark!.Id));
|
||||
|
||||
bookmark = result.WorkflowState.Bookmarks.FirstOrDefault();
|
||||
|
||||
if (bookmark == null)
|
||||
break;
|
||||
|
||||
workflowState = result.WorkflowState;
|
||||
|
||||
// Assert that the expected variable is persisted.
|
||||
var persistentVariablesDictionary = (IDictionary<string, object>)workflowState.Properties[WorkflowStateStorageDriver.VariablesDictionaryStateKey];
|
||||
var stateId = $"{workflowState.Id}:{variable.Name}";
|
||||
var persistedValue = persistentVariablesDictionary[stateId];
|
||||
var expectedValue = languages[currentIndex];
|
||||
|
||||
Assert.Equal(expectedValue, persistedValue);
|
||||
|
||||
currentIndex ++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
using Elsa.Workflows.Core;
|
||||
using Elsa.Workflows.Core.Activities;
|
||||
using Elsa.Workflows.Core.Models;
|
||||
using Elsa.Workflows.Core.Services;
|
||||
|
||||
namespace Elsa.IntegrationTests.Scenarios.PersistentVariables;
|
||||
|
||||
public class BlockingWorkflow : WorkflowBase
|
||||
{
|
||||
// ReSharper disable once UnusedMember.Global
|
||||
public BlockingWorkflow() : this(new[] { "C#", "JavaScript", "Haskell" })
|
||||
{
|
||||
}
|
||||
|
||||
public BlockingWorkflow(string[] languages)
|
||||
{
|
||||
Languages = languages;
|
||||
}
|
||||
|
||||
public string[] Languages { get; }
|
||||
|
||||
protected override void Build(IWorkflowBuilder workflow)
|
||||
{
|
||||
var currentLanguage = workflow.WithVariable<string>().WithWorkflowDrive();
|
||||
|
||||
workflow.WithRoot(new Sequence
|
||||
{
|
||||
Activities =
|
||||
{
|
||||
new WriteLine("Start"),
|
||||
new ForEach<string>(Languages)
|
||||
{
|
||||
CurrentValue = new Output<string?>(currentLanguage),
|
||||
Body = new Sequence
|
||||
{
|
||||
Activities =
|
||||
{
|
||||
new WriteLine("Waiting for event..."),
|
||||
new Event("Resume") { Id = "Resume" },
|
||||
new WriteLine(context => currentLanguage.Get<string>(context))
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
new WriteLine("Done")
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue