public async Task DeleteAsync_should_remove_entity_id_from_parent() { using var store = new RavenDbTestDriverWrapper().GetDocumentStore(); var entity = new Entity.ExternalClaimTransformation { Id = Guid.NewGuid().ToString(), Scheme = "test" }; var parent = new Entity.ExternalProvider { Id = "test", }; var collection = GetCollection(parent); collection.Add(new Entity.ExternalClaimTransformation { Id = $"{typeof(Entity.ExternalClaimTransformation).Name.ToLowerInvariant()}/{entity.Id}" }); using var s1 = store.OpenAsyncSession(); await s1.StoreAsync(parent, $"{nameof(Entity.ExternalProvider).ToLowerInvariant()}/{parent.Id}"); await s1.StoreAsync(entity, $"{typeof(Entity.ExternalClaimTransformation).Name.ToLowerInvariant()}/{entity.Id}"); await s1.SaveChangesAsync(); var loggerMock = new Mock <ILogger <AdminStore <Entity.ExternalClaimTransformation> > >(); using var session = store.OpenAsyncSession(); var sut = CreateSut(session, loggerMock.Object); await sut.DeleteAsync(entity.Id); using var s2 = store.OpenAsyncSession(); var updated = await s2.LoadAsync <Entity.ExternalProvider> ($"{nameof(Entity.ExternalProvider).ToLowerInvariant()}/test"); var updatedCollection = GetCollection(updated); Assert.DoesNotContain(updatedCollection, i => i.Id == $"{typeof(Entity.ExternalClaimTransformation).Name.ToLowerInvariant()}/{entity.Id}"); }
private ICollection <Entity.ExternalClaimTransformation> GetCollection(Entity.ExternalProvider provider) { provider.ClaimTransformations = provider.ClaimTransformations ?? new List <Entity.ExternalClaimTransformation>(); return(provider.ClaimTransformations); }