Add Azure Blob startup profile and config sample

This commit is contained in:
Jacob Dubin
2026-05-17 08:01:04 -05:00
parent 478a320581
commit 05efeb2853
12 changed files with 211 additions and 6 deletions

View File

@@ -0,0 +1,48 @@
using Jibo.Cloud.Infrastructure.Persistence;
namespace Jibo.Cloud.Tests.Infrastructure;
public sealed class AzureBlobPersistenceSmokeTests
{
[Fact]
public void AzureBlobSnapshotStore_RoundTripsState_WhenAzureBlobProfileIsConfigured()
{
var stateBackend = Environment.GetEnvironmentVariable("OpenJibo__State__Backend");
var stateConnectionString = Environment.GetEnvironmentVariable("OpenJibo__State__ConnectionString");
var personalMemoryBackend = Environment.GetEnvironmentVariable("OpenJibo__PersonalMemory__Backend");
var personalMemoryConnectionString = Environment.GetEnvironmentVariable("OpenJibo__PersonalMemory__ConnectionString");
if (!string.Equals(stateBackend, "AzureBlob", StringComparison.OrdinalIgnoreCase) ||
string.IsNullOrWhiteSpace(stateConnectionString))
{
return;
}
var factory = new PersistenceSnapshotStoreFactory();
var snapshotName = $"smoke-{Guid.NewGuid():N}";
var store = factory.Create(null, PersistenceBackendKind.AzureBlob, snapshotName, stateConnectionString);
var payload = new SmokeSnapshot
{
Name = "azure-smoke",
Value = "round-trip"
};
store.Save(payload);
var loaded = store.Load<SmokeSnapshot>();
Assert.NotNull(loaded);
Assert.Equal(payload.Name, loaded!.Name);
Assert.Equal(payload.Value, loaded.Value);
Assert.Equal("AzureBlob", stateBackend);
Assert.Equal("AzureBlob", personalMemoryBackend);
Assert.False(string.IsNullOrWhiteSpace(personalMemoryConnectionString));
}
private sealed class SmokeSnapshot
{
public string Name { get; init; } = string.Empty;
public string Value { get; init; } = string.Empty;
}
}