Skip to content

Commit 674174b

Browse files
committed
tests
1 parent 5ad5bea commit 674174b

File tree

5 files changed

+94
-2
lines changed

5 files changed

+94
-2
lines changed

test/WorkflowCore.IntegrationTests/Scenarios/ExternalEvents.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ protected override void ConfigureWorkflow(IServiceCollection services)
6464
counter++;
6565
}
6666

67+
Host.PublishEvent("MyEvent", "1", "Fail");
6768
Host.PublishEvent("MyEvent", "0", "Pass");
6869

6970
Instance = PersistenceProvider.GetWorkflowInstance(WorkflowId).Result;
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Text;
4+
using WorkflowCore.Interface;
5+
using NUnit;
6+
using FluentAssertions;
7+
using NUnit.Framework;
8+
9+
namespace WorkflowCore.TestAssets.LockProvider
10+
{
11+
public abstract class DistributedLockProviderTests
12+
{
13+
protected IDistributedLockProvider Subject;
14+
15+
[SetUp]
16+
public void Setup()
17+
{
18+
Subject = CreateProvider();
19+
Subject.Start();
20+
}
21+
22+
protected abstract IDistributedLockProvider CreateProvider();
23+
24+
[Test]
25+
public async void AcquiresLock()
26+
{
27+
const string lock1 = "lock1";
28+
const string lock2 = "lock2";
29+
await Subject.AcquireLock(lock2);
30+
31+
var acquired = await Subject.AcquireLock(lock1);
32+
33+
acquired.Should().Be(true);
34+
}
35+
36+
[Test]
37+
public async void DoesNotAcquireWhenLocked()
38+
{
39+
const string lock1 = "lock1";
40+
await Subject.AcquireLock(lock1);
41+
42+
var acquired = await Subject.AcquireLock(lock1);
43+
44+
acquired.Should().Be(false);
45+
}
46+
47+
[Test]
48+
public async void ReleasesLock()
49+
{
50+
const string lock1 = "lock1";
51+
await Subject.AcquireLock(lock1);
52+
53+
await Subject.ReleaseLock(lock1);
54+
55+
var available = await Subject.AcquireLock(lock1);
56+
available.Should().Be(true);
57+
}
58+
59+
[TearDown]
60+
public virtual void TearDown()
61+
{
62+
Subject.Stop();
63+
}
64+
}
65+
}

test/WorkflowCore.TestAssets/WorkflowCore.TestAssets.csproj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,13 @@
1717

1818
<ItemGroup>
1919
<PackageReference Include="FluentAssertions" Version="4.19.0" />
20-
<PackageReference Include="Machine.Fakes" Version="2.8.0-beta3" />
21-
<PackageReference Include="Machine.Fakes.Moq" Version="2.8.0-beta3" />
20+
<PackageReference Include="Machine.Fakes" Version="2.8.0" />
21+
<PackageReference Include="Machine.Fakes.Moq" Version="2.8.0" />
2222
<PackageReference Include="Machine.Specifications" Version="0.11.0" />
2323
<PackageReference Include="Machine.Specifications.Should" Version="0.11.0" />
2424
<PackageReference Include="Moq" Version="4.7.1" />
2525
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
26+
<PackageReference Include="NUnit" Version="3.6.1" />
2627
</ItemGroup>
2728

2829
</Project>
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using FluentAssertions;
2+
using NUnit.Framework;
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Text;
6+
using WorkflowCore.Interface;
7+
using WorkflowCore.Services;
8+
using WorkflowCore.TestAssets.LockProvider;
9+
10+
namespace WorkflowCore.UnitTests.SingleNodeLockProviderTests
11+
{
12+
[TestFixture]
13+
public class SingleNodeLockProviderTests : DistributedLockProviderTests
14+
{
15+
protected override IDistributedLockProvider CreateProvider()
16+
{
17+
return new SingleNodeLockProvider();
18+
}
19+
}
20+
}

test/WorkflowCore.UnitTests/WorkflowCore.UnitTests.csproj

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.1" />
3131
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.1" />
3232
<PackageReference Include="Moq" Version="4.7.1" />
33+
<PackageReference Include="NUnit" Version="3.6.1" />
34+
<PackageReference Include="NUnit.ConsoleRunner" Version="3.6.1" />
35+
<PackageReference Include="NUnit3TestAdapter" Version="3.7.0" />
36+
<PackageReference Include="System.Runtime.InteropServices" Version="4.3.0" />
37+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0-beta1-build3642" />
3338
</ItemGroup>
3439

3540
</Project>

0 commit comments

Comments
 (0)