Skip to content

Commit 146403a

Browse files
committed
feat(tests): add gRPC support in SpiceDB tests and update package references
1 parent c4cbd37 commit 146403a

File tree

4 files changed

+32
-14
lines changed

4 files changed

+32
-14
lines changed

Directory.Packages.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<PackageVersion Include="BouncyCastle.Cryptography" Version="2.6.1"/>
88
<PackageVersion Include="Docker.DotNet.Enhanced.X509" Version="3.128.3"/>
99
<PackageVersion Include="Docker.DotNet.Enhanced" Version="3.128.3"/>
10+
<PackageVersion Include="Grpc.Core" Version="2.46.6" />
1011
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="8.0.0"/>
1112
<PackageVersion Include="Microsoft.Bcl.HashCode" Version="1.1.1"/>
1213
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.3"/>

tests/Testcontainers.SpiceDB.Tests/SpiceDBContainerTest.cs

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1+
using System;
12
using System.Collections.Generic;
3+
using System.Net.Http;
4+
using System.Threading.Tasks;
5+
using Grpc.Core;
6+
using Grpc.Net.Client;
7+
using Xunit;
28

39
namespace Testcontainers.SpiceDB;
410

@@ -30,44 +36,51 @@ public void ExpectedPortIsMapped()
3036

3137
[Fact]
3238
[Trait(nameof(DockerCli.DockerPlatform), nameof(DockerCli.DockerPlatform.Linux))]
33-
public async Task ExecCommandReturnsSuccessful()
39+
public async Task VersionCommandReturnsSuccessful()
3440
{
3541
// Given
36-
List<string> commands = ["spicedb-cli", "version"];
42+
List<string> commands = ["spicedb", "version"];
3743

3844
// When
3945
var execResult = await _spicedbContainer.ExecAsync(commands, TestContext.Current.CancellationToken)
4046
.ConfigureAwait(true);
4147

4248
// Then
4349
Assert.True(0L.Equals(execResult.ExitCode), execResult.Stderr);
44-
Assert.Contains("spicedb", execResult.Stdout);
4550
}
4651

4752
[Fact]
4853
[Trait(nameof(DockerCli.DockerPlatform), nameof(DockerCli.DockerPlatform.Linux))]
49-
public async Task PingCommandReturnsSuccessful()
54+
public void GetGrpcConnectionStringNotNull()
5055
{
51-
// Given
52-
List<string> commands = ["spicedb-cli", "ping"];
53-
54-
// When
55-
var execResult = await _spicedbContainer.ExecAsync(commands, TestContext.Current.CancellationToken)
56-
.ConfigureAwait(true);
56+
// Given & When
57+
var connectionString = _spicedbContainer.GetGrpcConnectionString();
5758

5859
// Then
59-
Assert.True(0L.Equals(execResult.ExitCode), execResult.Stderr);
60+
Assert.NotNull(connectionString);
6061
}
6162

6263
[Fact]
6364
[Trait(nameof(DockerCli.DockerPlatform), nameof(DockerCli.DockerPlatform.Linux))]
64-
public void GetGrpcConnectionStringReturnsExpectedFormat()
65+
public async Task ShouldConnectToSpiceDB()
6566
{
66-
// Given & When
67+
// Given
6768
var connectionString = _spicedbContainer.GetGrpcConnectionString();
69+
var handler = new SocketsHttpHandler();
70+
handler.SslOptions.RemoteCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
71+
72+
// When
73+
using var channel = GrpcChannel.ForAddress(connectionString, new GrpcChannelOptions
74+
{
75+
HttpHandler = handler
76+
});
6877

6978
// Then
70-
// Note: This test will need to be updated once GetConnectionString() is properly implemented
7179
Assert.NotNull(connectionString);
80+
Assert.NotNull(channel);
81+
82+
// Test connectivity by attempting to connect
83+
await channel.ConnectAsync();
84+
Assert.Equal(ConnectivityState.Ready, channel.State);
7285
}
7386
}

tests/Testcontainers.SpiceDB.Tests/Testcontainers.SpiceDB.Tests.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
<OutputType>Exe</OutputType>
77
</PropertyGroup>
88
<ItemGroup>
9+
<PackageReference Include="Grpc.Core" />
10+
<PackageReference Include="Grpc.Net.Client" />
911
<PackageReference Include="Microsoft.NET.Test.Sdk"/>
1012
<PackageReference Include="coverlet.collector"/>
1113
<PackageReference Include="xunit.runner.visualstudio"/>

tests/Testcontainers.SpiceDB.Tests/Usings.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@
22
global using DotNet.Testcontainers.Commons;
33
global using Testcontainers.SpiceDB;
44
global using Xunit;
5+
global using Grpc.Core;
6+
global using Grpc.Net.Client;

0 commit comments

Comments
 (0)