public void Init() { persister = new DatabasePersister(); try { persister.Load(); } catch (Exception) { //BUG IN EF } _target = (string)typeof(DatabasePersister).GetField( "_originalTarget", BindingFlags.Instance | BindingFlags.NonPublic)?.GetValue(persister); }
public async Task LoadTest() { DbAssemblyMetadata assemblyMetadata = new DbAssemblyMetadata { Name = "test0" }; DbNamespaceMetadata namespaceMeta1 = new DbNamespaceMetadata { Name = "test1" }; DbNamespaceMetadata namespaceMeta2 = new DbNamespaceMetadata { Name = "test2" }; assemblyMetadata.Namespaces = new[] { namespaceMeta1, namespaceMeta2 }; DbTypeMetadata type1 = new DbTypeMetadata { Name = "Type1" }; DbTypeMetadata type2 = new DbTypeMetadata { Name = "Type2" }; namespaceMeta1.Types = new[] { type1 }; namespaceMeta2.Types = new[] { type2 }; persister.Access(_target); await persister.Save(assemblyMetadata); IAssemblyMetadata loaded = await Task.Run(async() => await persister.Load()); DbAssemblyMetadata loadedAssembly = loaded as DbAssemblyMetadata; Assert.IsNotNull(loadedAssembly); Assert.AreEqual("test0", loadedAssembly.Name); Assert.AreEqual(2, loadedAssembly.Namespaces.Count()); Assert.AreEqual("test1", loadedAssembly.Namespaces.First().Name); Assert.AreEqual(1, loadedAssembly.Namespaces.First().Types.Count()); Assert.AreEqual("test2", loadedAssembly.Namespaces.Last().Name); Assert.AreEqual(1, loadedAssembly.Namespaces.Last().Types.Count()); }