Skip to content

Commit 80da773

Browse files
author
Oleksii Sokol
committed
fix dynamoDb container
1 parent 21425a6 commit 80da773

File tree

3 files changed

+49
-35
lines changed

3 files changed

+49
-35
lines changed

ManagedCode.Database.Tests/DynamoDbTests/DynamoDBQueryableTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*using System;
1+
using System;
22
using System.Threading.Tasks;
33
using FluentAssertions;
44
using ManagedCode.Database.Tests.BaseTests;
@@ -9,10 +9,10 @@
99

1010
namespace ManagedCode.Database.Tests.DynamoDbTests;
1111

12-
[Collection("DynamoDB collection")]
12+
[Collection(nameof(DynamoDBTestContainer))]
1313
public class DynamoDBQueryableTests : BaseQueryableTests<string, TestDynamoDbItem>
1414
{
15-
public DynamoDBQueryableTests() : base(new DynamoDBTestContainer())
15+
public DynamoDBQueryableTests(DynamoDBTestContainer container) : base(container)
1616
{
1717
}
1818

@@ -55,4 +55,4 @@ await itemsResult
5555
.Should()
5656
.ThrowAsync<ArgumentNullException>();
5757
}
58-
}*/
58+
}

ManagedCode.Database.Tests/DynamoDbTests/DynamoDbCollectionTests.cs

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*using FluentAssertions;
1+
using FluentAssertions;
22
using ManagedCode.Database.Core.Exceptions;
33
using ManagedCode.Database.Tests.BaseTests;
44
using ManagedCode.Database.Tests.Common;
@@ -10,10 +10,10 @@
1010

1111
namespace ManagedCode.Database.Tests.DynamoDbTests;
1212

13-
[Collection("DynamoDB collection")]
13+
[Collection(nameof(DynamoDBTestContainer))]
1414
public class DynamoDbCollectionTests : BaseCollectionTests<string, TestDynamoDbItem>
1515
{
16-
public DynamoDbCollectionTests() : base(new DynamoDBTestContainer())
16+
public DynamoDbCollectionTests(DynamoDBTestContainer container) : base(container)
1717
{
1818
}
1919

@@ -51,30 +51,30 @@ public override async Task DeleteItemById_WhenItemDoesntExists()
5151
deleted.Should().ThrowExactlyAsync<DatabaseException>();
5252
}
5353

54-
*//* [Fact]
55-
public override async Task GetById_ReturnOk()
54+
[Fact]
55+
public override async Task GetById_ReturnOk()
56+
{
57+
// Arrange
58+
var itemId = GenerateId();
59+
await Collection.InsertAsync(CreateNewItem(itemId));
60+
61+
try
62+
{
63+
// Act
64+
var getItemResult = await Collection.GetAsync(itemId);
65+
66+
// Assert
67+
getItemResult.Should().NotBeNull();
68+
}
69+
catch (DatabaseException e)
5670
{
57-
// Arrange
58-
var itemId = GenerateId();
59-
await Collection.InsertAsync(CreateNewItem(itemId));
60-
61-
try
62-
{
63-
// Act
64-
var getItemResult = await Collection.GetAsync(itemId);
65-
66-
// Assert
67-
getItemResult.Should().NotBeNull();
68-
}
69-
catch (DatabaseException e)
70-
{
71-
// Act
72-
var getItemResult = () => Collection.GetAsync(itemId);
73-
74-
// Assert
75-
await getItemResult.Should().ThrowAsync<DatabaseException>();
76-
}
77-
}*//*
71+
// Act
72+
var getItemResult = () => Collection.GetAsync(itemId);
73+
74+
// Assert
75+
await getItemResult.Should().ThrowAsync<DatabaseException>();
76+
}
77+
}
7878

7979
[Fact]
8080
public override async Task InsertItem_WhenItemExist_ShouldThrowDatabaseException()
@@ -102,4 +102,4 @@ public override async Task UpdateItem_WhenItemDoesntExists()
102102
// Assert
103103
updateItem.Should().BeNull();
104104
}
105-
}*/
105+
}

ManagedCode.Database.Tests/TestContainers/DynamoDBTestContainer.cs

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@
88
using ManagedCode.Database.Core;
99
using ManagedCode.Database.DynamoDB;
1010
using ManagedCode.Database.Tests.Common;
11+
using Xunit;
1112
using Xunit.Abstractions;
1213

1314
namespace ManagedCode.Database.Tests.TestContainers;
1415

15-
public class DynamoDBTestContainer : ITestContainer<string, TestDynamoDbItem>
16+
[CollectionDefinition(nameof(DynamoDBTestContainer))]
17+
public class DynamoDBTestContainer : ITestContainer<string, TestDynamoDbItem>, ICollectionFixture<DynamoDBTestContainer>, IDisposable
1618
{
1719
// private readonly ITestOutputHelper _testOutputHelper;
1820
private readonly TestcontainersContainer _dynamoDBTestContainer;
@@ -21,7 +23,7 @@ public class DynamoDBTestContainer : ITestContainer<string, TestDynamoDbItem>
2123
private const string containerName = "dynamoContainer";
2224
private const ushort privatePort = 8000;
2325
private bool containerExsist = false;
24-
26+
private string containerId;
2527

2628
public DynamoDBTestContainer()
2729
{
@@ -64,13 +66,17 @@ public async Task InitializeAsync()
6466
if (!containerExsist)
6567
{
6668
publicPort = _dynamoDBTestContainer.GetMappedPublicPort(privatePort);
69+
70+
containerId = _dynamoDBTestContainer.Id;
6771
}
6872
else
6973
{
7074
var listContainers = await _dockerClient.Containers.ListContainersAsync(new ContainersListParameters());
7175

7276
ContainerListResponse containerListResponse = listContainers.Single(container => container.Names.Contains($"/{containerName}"));
7377

78+
containerId = containerListResponse.ID;
79+
7480
publicPort = containerListResponse.Ports.Single(port => port.PrivatePort == privatePort).PublicPort;
7581
}
7682

@@ -93,10 +99,18 @@ public async Task InitializeAsync()
9399
public async Task DisposeAsync()
94100
{
95101
await _dbDatabase.DisposeAsync();
96-
//await _dynamoDBContainer.StopAsync();
97-
//await _dynamoDBContainer.CleanUpAsync();
98102

99103
//_testOutputHelper.WriteLine($"DynamoDb container State:{_dynamoDBContainer.State}");
100104
//_testOutputHelper.WriteLine("=STOP=");
101105
}
106+
107+
public async void Dispose()
108+
{
109+
110+
await _dockerClient.Containers.RemoveContainerAsync(containerId,
111+
new ContainerRemoveParameters
112+
{
113+
Force = true
114+
});
115+
}
102116
}

0 commit comments

Comments
 (0)