예제 #1
0
 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);
 }
예제 #2
0
        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());
        }