9695ec8c51
* Show code coverage for dev * SpeckleHttp coverage and moved base stuff around * add SpeckleHttpTests
83 lines
2.2 KiB
C#
83 lines
2.2 KiB
C#
using FluentAssertions;
|
|
using Speckle.Sdk.SQLite;
|
|
|
|
namespace Speckle.Sdk.Tests.Unit.SQLite;
|
|
|
|
public class SQLiteJsonCacheManagerTests : IDisposable
|
|
{
|
|
private readonly string _basePath = $"{Guid.NewGuid()}.db";
|
|
|
|
public void Dispose()
|
|
{
|
|
if (File.Exists(_basePath))
|
|
{
|
|
//don't disable the pool because we should be disabling it in the manager
|
|
GC.Collect();
|
|
GC.WaitForPendingFinalizers();
|
|
File.Delete(_basePath);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void TestGetAll()
|
|
{
|
|
var data = new List<(string id, string json)>() { ("id1", "1"), ("id2", "2") };
|
|
using var manager = new SqLiteJsonCacheManager(_basePath, 2);
|
|
manager.SaveObjects(data);
|
|
var items = manager.GetAllObjects();
|
|
items.Count.Should().Be(data.Count);
|
|
var i = items.ToDictionary();
|
|
foreach (var (id, json) in data)
|
|
{
|
|
i.TryGetValue(id, out var j).Should().BeTrue();
|
|
j.Should().Be(json);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void TestGet()
|
|
{
|
|
var data = new List<(string id, string json)>() { ("id1", "1"), ("id2", "2") };
|
|
using var manager = new SqLiteJsonCacheManager(_basePath, 2);
|
|
foreach (var d in data)
|
|
{
|
|
manager.SaveObject(d.id, d.json);
|
|
}
|
|
foreach (var d in data)
|
|
{
|
|
manager.SaveObject(d.id, d.json);
|
|
}
|
|
var items = manager.GetAllObjects();
|
|
items.Count.Should().Be(data.Count);
|
|
|
|
var id1 = data[0].id;
|
|
var json1 = manager.GetObject(id1);
|
|
json1.Should().Be(data[0].json);
|
|
manager.HasObject(id1).Should().BeTrue();
|
|
|
|
manager.UpdateObject(id1, "3");
|
|
json1 = manager.GetObject(id1);
|
|
json1.Should().Be("3");
|
|
manager.HasObject(id1).Should().BeTrue();
|
|
|
|
manager.DeleteObject(id1);
|
|
json1 = manager.GetObject(id1);
|
|
json1.Should().BeNull();
|
|
manager.HasObject(id1).Should().BeFalse();
|
|
|
|
manager.UpdateObject(id1, "3");
|
|
json1 = manager.GetObject(id1);
|
|
json1.Should().Be("3");
|
|
manager.HasObject(id1).Should().BeTrue();
|
|
|
|
var id2 = data[1].id;
|
|
var json2 = manager.GetObject(id2);
|
|
json2.Should().Be(data[1].json);
|
|
manager.HasObject(id2).Should().BeTrue();
|
|
manager.DeleteObject(id2);
|
|
json2 = manager.GetObject(id2);
|
|
json2.Should().BeNull();
|
|
manager.HasObject(id2).Should().BeFalse();
|
|
}
|
|
}
|