From 08341769163893a9c96d1f69889b43b1a632c53a Mon Sep 17 00:00:00 2001 From: Vitali Bibikov Date: Tue, 16 Apr 2024 18:33:16 +0200 Subject: [PATCH] Updated --- docker-compose.override.yml | 11 ++++++++++ docker-compose.yml | 2 +- src/TransactionManager.cs | 2 +- .../Setup/SomeDynamoDbEntity.cs | 22 ------------------- .../TransactionManagerMockTests.cs | 12 +++++----- 5 files changed, 19 insertions(+), 30 deletions(-) delete mode 100644 test/DynamoDBv2.Transactions.IntegrationTests/Setup/SomeDynamoDbEntity.cs rename test/{DynamoDBv2.Transactions.IntegrationTests => DynamoDBv2.Transactions.UnitTests}/TransactionManagerMockTests.cs (82%) diff --git a/docker-compose.override.yml b/docker-compose.override.yml index a4013a6..3d3b85d 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -17,6 +17,17 @@ services: - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro - './localstack:/var/lib/localstack' - './test-results:/app/test-results' + unittests: + environment: + <<: *common-variables + AWS_ACCESS_KEY_ID: dummy + AWS_SECRET_ACCESS_KEY: dummy + AWS_HOST: http://localstack:4566 + ports: + - 5056:8080 + volumes: + - './localstack:/var/lib/localstack' + - './test-results:/app/test-results' localstack: environment: <<: *common-variables diff --git a/docker-compose.yml b/docker-compose.yml index 37ded28..2f10a8a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,7 @@ services: depends_on: - localstack unittests: - image: ${DOCKER_REGISTRY-}tests + image: ${DOCKER_REGISTRY-}unittests build: context: . dockerfile: ./test/DynamoDBv2.Transactions.UnitTests/Dockerfile diff --git a/src/TransactionManager.cs b/src/TransactionManager.cs index fe8a22f..dc4c7c6 100644 --- a/src/TransactionManager.cs +++ b/src/TransactionManager.cs @@ -6,7 +6,7 @@ namespace DynamoDBv2.Transactions; -public sealed class TransactionManager(AmazonDynamoDBClient client) +public sealed class TransactionManager(IAmazonDynamoDB client) : ITransactionManager { public async Task ExecuteTransactionAsync(IEnumerable requests, CancellationToken token = default) diff --git a/test/DynamoDBv2.Transactions.IntegrationTests/Setup/SomeDynamoDbEntity.cs b/test/DynamoDBv2.Transactions.IntegrationTests/Setup/SomeDynamoDbEntity.cs deleted file mode 100644 index 23bd7b9..0000000 --- a/test/DynamoDBv2.Transactions.IntegrationTests/Setup/SomeDynamoDbEntity.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using Amazon.DynamoDBv2.DataModel; - -namespace DynamoDBv2.Transactions.UnitTests.Setup -{ - [DynamoDBTable("SomeDynamoDbEntity")] - public class SomeDynamoDbEntity : ITransactional - { - [DynamoDBHashKey(AttributeName = "MyId")] - public string Id { get; set; } - - [DynamoDBProperty(AttributeName = "Name")] - public string Name { get; set; } - - public string Status { get; set; } - - public double Amount { get; set; } - - [DynamoDBVersion] - public long? Version { get; set; } - } -} diff --git a/test/DynamoDBv2.Transactions.IntegrationTests/TransactionManagerMockTests.cs b/test/DynamoDBv2.Transactions.UnitTests/TransactionManagerMockTests.cs similarity index 82% rename from test/DynamoDBv2.Transactions.IntegrationTests/TransactionManagerMockTests.cs rename to test/DynamoDBv2.Transactions.UnitTests/TransactionManagerMockTests.cs index 54d3023..d40d9e5 100644 --- a/test/DynamoDBv2.Transactions.IntegrationTests/TransactionManagerMockTests.cs +++ b/test/DynamoDBv2.Transactions.UnitTests/TransactionManagerMockTests.cs @@ -15,8 +15,8 @@ public class TransactionManagerMockTests public async Task ExecuteTransactionAsync_MapsOperationsCorrectly() { // Arrange - var client = new Mock(); - var manager = new TransactionManager(client.Object); + var mockAmazonDynamoDB = new Mock(); + var manager = new TransactionManager(mockAmazonDynamoDB.Object); var requests = new List { new ConditionCheckTransactionRequest(), @@ -30,15 +30,15 @@ public async Task ExecuteTransactionAsync_MapsOperationsCorrectly() var response = await manager.ExecuteTransactionAsync(requests); // Assert - client.Verify(c => c.TransactWriteItemsAsync(It.IsAny(), CancellationToken.None), Times.Once()); + mockAmazonDynamoDB.Verify(c => c.TransactWriteItemsAsync(It.IsAny(), CancellationToken.None), Times.Once()); } [Fact] public async Task ExecuteTransactionAsync_AllItemsPassedToEnd() { // Arrange - var client = new Mock(); - var manager = new TransactionManager(client.Object); + var mockAmazonDynamoDB = new Mock(); + var manager = new TransactionManager(mockAmazonDynamoDB.Object); var requests = new List { new ConditionCheckTransactionRequest(), @@ -52,7 +52,7 @@ public async Task ExecuteTransactionAsync_AllItemsPassedToEnd() await manager.ExecuteTransactionAsync(requests); // Assert - client.Verify(x => x.TransactWriteItemsAsync(It.Is(req => + mockAmazonDynamoDB.Verify(x => x.TransactWriteItemsAsync(It.Is(req => req.TransactItems.Count == 5 && req.TransactItems[0].ConditionCheck != null && req.TransactItems[1].Delete != null &&