Tests/usage of mirroring and stream sourcing
Opened this issue · 0 comments
mtmk commented
Due to the difficulty of automating leaf node testing below are examples of tests/usage of mirroring and stream sourcing.
[Fact]
public async Task Test_LeafStreamMirrorDomain()
{
await using var natsLeaf = new NatsConnection(new NatsOpts { Url = "nats://leaf:4223/", AuthOpts = new NatsAuthOpts { Username = "leaf", Password = "leaf" } });
await natsLeaf.ConnectAsync();
var jsContext = new NatsJSContext(natsLeaf);
var mirroredStream = await jsContext.CreateStreamAsync(new StreamConfig()
{
Name = "mirroredStream",
Mirror = new StreamSource
{
Name = "sourceStream1",
Domain = "hub",
},
});
}
[Fact]
public async Task Test_LeafStreamMultiSourceDomain()
{
await using var natsLeaf = new NatsConnection(new NatsOpts { Url = "nats://leaf:4223/", AuthOpts = new NatsAuthOpts { Username = "leaf", Password = "leaf" } });
await natsLeaf.ConnectAsync();
var jsContext = new NatsJSContext(natsLeaf);
var mirroredStream = await jsContext.CreateStreamAsync(new StreamConfig()
{
Name = "mirroredStreamMulti",
Sources = [
new StreamSource { Name = "sourceStream1", Domain = "hub" },
new StreamSource { Name = "sourceStream2", Domain = "hub" }
],
});
}
[Fact]
public async Task Test_LeafKVMirrorDomain()
{
await using var natsLeaf = new NatsConnection(new NatsOpts { Url = "nats://leaf:4223/", AuthOpts = new NatsAuthOpts { Username = "leaf", Password = "leaf" } });
await natsLeaf.ConnectAsync();
var jsContext = new NatsJSContext(natsLeaf);
var kvContext = new NatsKVContext(jsContext);
var mirroredStore = await kvContext.CreateStoreAsync(new NatsKVConfig("mirroredKvTestMirror")
{
Mirror = new StreamSource
{
Name = "kvTest",
Domain = "hub",
},
});
}
[Fact]
public async Task Test_LeafKVMirrorSourcesDomain()
{
await using var natsLeaf = new NatsConnection(new NatsOpts { Url = "nats://leaf:4223/", AuthOpts = new NatsAuthOpts { Username = "leaf", Password = "leaf" } });
await natsLeaf.ConnectAsync();
var jsContext = new NatsJSContext(natsLeaf);
var kvContext = new NatsKVContext(jsContext);
var mirroredStore = await kvContext.CreateStoreAsync(new NatsKVConfig("mirroredKvTestSources")
{
Sources = [
new StreamSource { Name = "kvTest", Domain = "hub" },
],
});
}
Originally posted by @darkwatchuk in #631 (comment)