Files
JiboExperiments/OpenJibo/tests/Jibo.Cloud.Tests/Infrastructure/AzureBlobPersistenceSmokeTests.cs
Jacob Dubin dfcf521a5a refactors
2026-05-17 08:08:11 -05:00

47 lines
1.8 KiB
C#

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;
}
}