public virtual async Task CanInsertAndDeleteItem() { await InitializeAsync().ConfigureAwait(false); var id = Guid.NewGuid().ToString(); var obj1 = FakeEntity.Create(id); var store = CreateInstance(); await store.InsertItemAsync(obj1).ConfigureAwait(false); obj1.StringValue = "changed string"; await store.UpdateItemAsync(obj1).ConfigureAwait(false); var obj2 = await store.LoadItemAsync <FakeEntity>(obj1.EntityId).ConfigureAwait(false); CompareEntitities(obj1, obj2); await store.DeleteItemAsync <FakeEntity>(obj1.EntityId).ConfigureAwait(false); var obj3 = await store.LoadItemAsync <FakeEntity>(obj1.EntityId).ConfigureAwait(false); obj3.Should().BeNull(); }
public virtual async Task CanInsertManyItems() { await InitializeAsync().ConfigureAwait(false); var list = new List <FakeEntity>(); for (var i = 0; i < 1000; i++) { list.Add(FakeEntity.Create(Guid.NewGuid().ToString())); } var store = CreateInstance(); foreach (var entity in list) { await store.InsertItemAsync(entity).ConfigureAwait(false); } var all = await store.LoadItemsAsync <FakeEntity>().ConfigureAwait(false); var allKeys = all.Select(x => x.EntityId).ToArray(); foreach (var entity in list) { allKeys.Should().Contain(entity.EntityId); } }
public async Task UpdateNonExistingWillInsert() { var id = Guid.NewGuid().ToString(); var obj1 = FakeEntity.Create(id); var store = CreateInstance(); await store.UpdateItemAsync(obj1); var obj2 = await store.LoadItemAsync <FakeEntity>(obj1.EntityId); CompareEntitities(obj1, obj2); }
public async Task Test1() { var provider = GetService <MongoDbConnectionProvider>(); await provider.InitializeAsync(CancellationToken.None); var mog = GetService <MongoDbEntityStore>(); var ent = FakeEntity.Create(Guid.NewGuid().ToString()); await mog.InsertOrUpdateItemAsync(ent); await mog.InsertOrUpdateItemAsync(ent); }
public virtual async Task UpdateNonExistingWillInsert() { await InitializeAsync().ConfigureAwait(false); var id = Guid.NewGuid().ToString(); var obj1 = FakeEntity.Create(id); var store = CreateInstance(); await store.UpdateItemAsync(obj1).ConfigureAwait(false); var obj2 = await store.LoadItemAsync <FakeEntity>(obj1.EntityId).ConfigureAwait(false); CompareEntitities(obj1, obj2); }
public virtual async Task SaveAndLoadItemPropertiesEquals() { await InitializeAsync().ConfigureAwait(false); var id = Guid.NewGuid().ToString(); var obj1 = FakeEntity.Create(id); var store = CreateInstance(); await store.InsertItemAsync(obj1).ConfigureAwait(false); var entityId = id.CalculateEntityId <FakeEntity>(); var obj2 = await store.LoadItemAsync <FakeEntity>(entityId).ConfigureAwait(false); CompareEntitities(obj1, obj2); }
public virtual async Task SaveAndLoadItemsContainsAll() { await InitializeAsync().ConfigureAwait(false); var obj1 = FakeEntity.Create(Guid.NewGuid().ToString()); var obj2 = FakeEntity.Create(Guid.NewGuid().ToString()); var store = CreateInstance(); await store.InsertItemAsync(obj1).ConfigureAwait(false); await store.InsertItemAsync(obj2).ConfigureAwait(false); var all = await store.LoadItemsAsync <FakeEntity>().ConfigureAwait(false); var allKeys = all.Select(x => x.EntityId).ToArray(); allKeys.Should().Contain(obj1.EntityId); allKeys.Should().Contain(obj2.EntityId); }
public virtual async Task CanHandleDictionaries() { await InitializeAsync().ConfigureAwait(false); var store = CreateInstance(); string entityId; { var id = Guid.NewGuid().ToString(); var entity = FakeEntity.Create(id); entityId = entity.EntityId; entityId.Should().NotBeNullOrEmpty(); var aaa = DateTime.UtcNow.Ticks.ToString(); entity.Dict1 = entity.Dict1.EnsureDictContainsValue("aaa", aaa); var bbb = DateTime.UtcNow.Ticks.ToString(); entity.Dict1 = entity.Dict1.EnsureDictContainsValue("bbb", bbb); await store.InsertItemAsync(entity).ConfigureAwait(false); entity.Dict1.Should().ContainKey("aaa"); entity.Dict1["aaa"].Should().Be(aaa); entity.Dict1.Should().ContainKey("bbb"); entity.Dict1["bbb"].Should().Be(bbb); } { var entity = await store.LoadItemAsync <FakeEntity>(entityId).ConfigureAwait(false); var ccc = DateTime.UtcNow.Ticks.ToString(); entity.Dict1 = entity.Dict1.EnsureDictContainsValue("ccc", ccc); await store.UpdateItemAsync(entity).ConfigureAwait(false); entity.Dict1.Should().ContainKey("ccc"); entity.Dict1["ccc"].Should().Be(ccc); entity = await store.LoadItemAsync <FakeEntity>(entityId).ConfigureAwait(false); entity.Dict1.Should().ContainKey("ccc"); entity.Dict1["ccc"].Should().Be(ccc); } { var entity = await store.LoadItemAsync <FakeEntity>(entityId).ConfigureAwait(false); var bbb = DateTime.UtcNow.Ticks.ToString(); entity.Dict1 = entity.Dict1.EnsureDictContainsValue("bbb", bbb); entity.Dict1.Should().ContainKey("bbb"); entity.Dict1["bbb"].Should().Be(bbb); var aaa = DateTime.UtcNow.Ticks.ToString(); entity.Dict1 = entity.Dict1.EnsureDictContainsValue("aaa", aaa); await store.UpdateItemAsync(entity).ConfigureAwait(false); entity.Dict1.Should().ContainKey("aaa"); entity.Dict1["aaa"].Should().Be(aaa); entity = await store.LoadItemAsync <FakeEntity>(entityId).ConfigureAwait(false); entity.Dict1.Should().ContainKey("aaa"); entity.Dict1.Should().ContainKey("bbb"); entity.Dict1["bbb"].Should().Be(bbb); entity.Dict1["aaa"].Should().Be(aaa); } }