Remove outdated tests

This commit is contained in:
Sipke Schoorstra 2022-12-16 22:07:24 +01:00
parent 5f7f115c28
commit b32c3b45bb
3 changed files with 5 additions and 140 deletions

View file

@ -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>

View file

@ -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 ++;
}
}
}

View file

@ -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")
}
});
}
}