Skip to content

Commit

Permalink
Merge pull request #4 from Shuttle/async
Browse files Browse the repository at this point in the history
- initial async refactoring
  • Loading branch information
eben-roux authored Apr 30, 2024
2 parents 4e6edad + f5db794 commit 3ed8d7e
Show file tree
Hide file tree
Showing 8 changed files with 240 additions and 169 deletions.
72 changes: 45 additions & 27 deletions Shuttle.Esb.Sql.Idempotence.Tests/IdempotenceTest.cs
Original file line number Diff line number Diff line change
@@ -1,45 +1,63 @@
using System.Data.Common;
using System.Data.SqlClient;
using System.Threading.Tasks;
using Microsoft.Data.SqlClient;
using Microsoft.Extensions.DependencyInjection;
using NUnit.Framework;
using Shuttle.Core.Data;
using Shuttle.Esb;
using Shuttle.Esb.Sql.Queue;
using Shuttle.Esb.Tests;

namespace Shuttle.Esb.Sql.Idempotence.Tests
namespace Shuttle.Esb.Sql.Idempotence.Tests;

[TestFixture]
public class IdempotenceTest : IdempotenceFixture
{
[TestFixture]
public class IdempotenceTest : IdempotenceFixture
[SetUp]
public void SetUp()
{
[Test]
[TestCase(false, false)]
[TestCase(false, true)]
[TestCase(true, false)]
[TestCase(true, true)]
public void Should_be_able_to_perform_full_processing(bool isTransactionalEndpoint, bool enqueueUniqueMessages)
{
DbProviderFactories.RegisterFactory("System.Data.SqlClient", SqlClientFactory.Instance);
DbProviderFactories.RegisterFactory("Microsoft.Data.SqlClient", SqlClientFactory.Instance);
}

var services = new ServiceCollection();
[Test]
[TestCase(false, false)]
[TestCase(false, true)]
[TestCase(true, false)]
[TestCase(true, true)]
public void Should_be_able_to_perform_full_processing(bool isTransactionalEndpoint, bool enqueueUniqueMessages)
{
TestIdempotenceProcessing(GetServiceCollection(), @"sql://idempotence/{0}", isTransactionalEndpoint, enqueueUniqueMessages);
}

services.AddDataAccess(builder =>
{
builder.AddConnectionString("Idempotence", "System.Data.SqlClient",
"server=.;database=shuttle;user id=sa;password=Pass!000");
});
[Test]
[TestCase(false, false)]
[TestCase(false, true)]
[TestCase(true, false)]
[TestCase(true, true)]
public async Task Should_be_able_to_perform_full_processing_async(bool isTransactionalEndpoint, bool enqueueUniqueMessages)
{
await TestIdempotenceProcessingAsync(GetServiceCollection(), @"sql://idempotence/{0}", isTransactionalEndpoint, enqueueUniqueMessages);
}

private static ServiceCollection GetServiceCollection()
{
var services = new ServiceCollection();

services.AddSqlQueue(builder =>
services.AddDataAccess(builder =>
{
builder.AddConnectionString("Idempotence", "Microsoft.Data.SqlClient",
"server=.;database=shuttle;user id=sa;password=Pass!000;TrustServerCertificate=true");
});

services.AddSqlQueue(builder =>
{
builder.AddOptions("idempotence", new SqlQueueOptions
{
builder.AddOptions("idempotence", new SqlQueueOptions
{
ConnectionStringName = "Idempotence"
});
ConnectionStringName = "Idempotence"
});
});

services.AddSqlIdempotence();
services.AddSqlIdempotence();

TestIdempotenceProcessing(services, @"sql://idempotence/{0}", isTransactionalEndpoint, enqueueUniqueMessages);
}
return services;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Data.SqlClient" Version="5.1.5" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="7.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.0" />
<PackageReference Include="NUnit" Version="3.13.3" />
<PackageReference Include="NUnit3TestAdapter" Version="4.3.1" />
<PackageReference Include="Shuttle.Esb.Sql.Queue" Version="13.2.2" />
<PackageReference Include="Shuttle.Esb.Tests" Version="13.2.2" />
<PackageReference Include="Shuttle.Core.Data" Version="13.0.2" />
<PackageReference Include="System.Data.SqlClient" Version="4.8.5" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="NUnit" Version="3.14.0" />
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0" />
<PackageReference Include="Shuttle.Esb.Sql.Queue" Version="14.0.0" />
<PackageReference Include="Shuttle.Esb.Tests" Version="14.0.0" />
<PackageReference Include="Shuttle.Core.Data" Version="15.0.1" />
</ItemGroup>

<ItemGroup>
Expand Down
8 changes: 4 additions & 4 deletions Shuttle.Esb.Sql.Idempotence/.package/package.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<package>
<metadata>
<id>Shuttle.Esb.Sql.Idempotence</id>
<version>13.2.1</version>
<version>14.0.0</version>
<authors>Eben Roux</authors>
<owners>Eben Roux</owners>
<license type="expression">BSD-3-Clause</license>
Expand All @@ -13,11 +13,11 @@
<repository type="git" url="https://github.com/Shuttle/Shuttle.Esb.Sql.Idempotence.git" />
<projectUrl>https://github.com/Shuttle/Shuttle.Esb.Sql.Idempotence</projectUrl>
<description>Sql-based implementation of IIdempotenceService interface for use with Shuttle.Esb.</description>
<copyright>Copyright (c) 2022, Eben Roux</copyright>
<copyright>Copyright (c) 2024, Eben Roux</copyright>
<tags>idempotence</tags>
<dependencies>
<dependency id="Shuttle.Core.Data" version="13.0.2" />
<dependency id="Shuttle.Esb" version="13.2.1" />
<dependency id="Shuttle.Core.Data" version="15.0.1" />
<dependency id="Shuttle.Esb" version="14.0.0" />
</dependencies>
</metadata>
<files>
Expand Down
10 changes: 5 additions & 5 deletions Shuttle.Esb.Sql.Idempotence/Columns.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ namespace Shuttle.Esb.Sql.Idempotence
{
public class Columns
{
public static MappedColumn<Guid> MessageId = new MappedColumn<Guid>("MessageId", DbType.Guid);
public static MappedColumn<Guid> MessageIdReceived = new MappedColumn<Guid>("MessageIdReceived", DbType.Guid);
public static MappedColumn<string> InboxWorkQueueUri = new MappedColumn<string>("InboxWorkQueueUri", DbType.AnsiString);
public static MappedColumn<byte[]> MessageBody = new MappedColumn<byte[]>("MessageBody", DbType.Binary);
public static MappedColumn<int> AssignedThreadId = new MappedColumn<int>("AssignedThreadId", DbType.Int32);
public static Column<Guid> MessageId = new Column<Guid>("MessageId", DbType.Guid);
public static Column<Guid> MessageIdReceived = new Column<Guid>("MessageIdReceived", DbType.Guid);
public static Column<string> InboxWorkQueueUri = new Column<string>("InboxWorkQueueUri", DbType.AnsiString);
public static Column<byte[]> MessageBody = new Column<byte[]>("MessageBody", DbType.Binary);
public static Column<int> AssignedThreadId = new Column<int>("AssignedThreadId", DbType.Int32);
}
}
Loading

0 comments on commit 3ed8d7e

Please sign in to comment.