Пример #1
0
        public void LoadYamlTest()
        {
            YamlRepository repo = GetYamlRepo(nameof(LoadYamlTest));
            // save some stuff to daorepo
            string details  = 10.RandomLetters();
            string testName = 8.RandomLetters();
            Parent parent   = new Parent {
                Details = details, Name = testName
            };

            parent = repo.DaoRepository.Save(parent);
            FileInfo yamlFile     = repo.GetYamlFile(typeof(Parent), parent.Name);
            string   yamlFilePath = repo.YamlDataDirectory.GetYamlFilePath(typeof(Parent), parent.Name);

            Expect.IsFalse(File.Exists(yamlFilePath), $"file existed but shouldn't have: {yamlFilePath}");
            Expect.IsNull(yamlFile);
            FileInfo loadNamesFile = repo.GetLoadNamesFile(typeof(Parent));

            // write names to sync file
            repo.AddNameToLoad <Parent>(parent.Name);
            // Call LoadYaml
            repo.WriteYaml();
            // expect yaml files to exist
            yamlFile = repo.GetYamlFile(typeof(Parent), parent.Name);
            Expect.IsNotNull(yamlFile);
            Parent fromYaml = repo.ReadYaml <Parent>(parent.Name);

            Expect.AreEqual(fromYaml.Cuid, parent.Cuid);
            Expect.AreEqual(fromYaml.Name, parent.Name);
            Expect.AreEqual(fromYaml.Uuid, parent.Uuid);
        }
Пример #2
0
        public void YamlSyncToDbTest()
        {
            string details        = 10.RandomLetters();
            string updatedDetails = 5.RandomLetters();
            string testName       = 8.RandomLetters();
            Parent parent         = new Parent {
                Details = details, Name = testName
            };
            YamlRepository repo = GetYamlRepo(nameof(YamlSyncToDbTest));

            parent = repo.Save(parent);

            Parent loaded = repo.LoadYaml <Parent>(testName).ToList().FirstOrDefault();

            Expect.IsNotNull(loaded);
            loaded.Details = updatedDetails;
            repo.YamlDataDirectory.Save <Parent>(loaded);

            FileInfo     file     = repo.YamlDataDirectory.GetYamlFile(typeof(Parent), testName);
            YamlDataFile data     = new YamlDataFile(typeof(Parent), file);
            Parent       fromFile = data.As <Parent>();

            Expect.AreEqual(testName, fromFile.Name);
            Expect.AreEqual(updatedDetails, fromFile.Details);
            Parent fromDb = repo.DaoRepository.Retrieve <Parent>(fromFile.Id);

            Expect.AreEqual(details, fromDb.Details);
            repo.Synchronize();
            fromDb = repo.DaoRepository.Retrieve <Parent>(fromFile.Id);
            Expect.AreEqual(testName, fromDb.Name);
            Expect.AreEqual(updatedDetails, fromDb.Details);
        }
Пример #3
0
        private YamlRepository GetYamlRepo(string name)
        {
            YamlRepository repo = new YamlRepository($".\\{name}", new SQLiteDatabase($"{name}_Db", name));

            repo.AddType <Parent>();
            repo.AddType <House>();
            repo.AddType <Child>();
            return(repo);
        }
        public void Repository_should_save_and_load_model()
        {
            var repository = new YamlRepository();

            var expected = _fixture.Create <SystemModel>();

            repository.Save(expected, _directory);

            var actual = repository.Load(_directory);

            actual.AssertDeepEqualsTo(expected);
        }
Пример #5
0
        static void Main(string[] args)
        {
            IDeserializer globalDeserializer = new DeserializerBuilder()
                                               .WithTagMapping("!ChildClass1", typeof(ChildClass1))
                                               .WithTagMapping("!ChildClass2", typeof(ChildClass2))
                                               .Build();

            IRepository <Class> repo = new YamlRepository <Class>("class", globalDeserializer);

            foreach (Class @class in repo.FindAll())
            {
                Console.WriteLine(@class);
            }
        }
Пример #6
0
        public void YamlRepositoryCreateRetrieveTest()
        {
            Parent parent = new Parent {
                Details = "Some details"
            };
            House house = new House {
                HouseDetails = "house details"
            };

            parent.Houses = new List <House>();
            parent.Houses.Add(house);
            YamlRepository repo = GetYamlRepo(nameof(YamlRepositoryCreateRetrieveTest));

            parent = repo.Save(parent);

            Parent retrieved = repo.Retrieve <Parent>(parent.Id);

            Expect.IsNotNull(retrieved);
            Expect.IsNotNull(retrieved.Houses);
            Expect.AreEqual(1, retrieved.Houses.Count);
        }
Пример #7
0
        public void CanAddNameToLoad()
        {
            YamlRepository repo          = GetYamlRepo(nameof(CanAddNameToLoad));
            FileInfo       loadNamesFile = repo.GetLoadNamesFile(typeof(Parent));

            if (File.Exists(loadNamesFile.FullName))
            {
                File.Delete(loadNamesFile.FullName);
            }
            Expect.IsFalse(File.Exists(loadNamesFile.FullName));
            HashSet <string> names = repo.AddNameToLoad <Parent>("monkey");

            Expect.IsTrue(File.Exists(loadNamesFile.FullName));
            names = repo.AddNameToLoad <Parent>("monkey");
            names = repo.AddNameToLoad <Parent>("banana");
            Expect.AreEqual(2, names.Count);
            List <string> fromFile = File.ReadAllLines(loadNamesFile.FullName).ToList();

            Expect.AreEqual(2, fromFile.Count);
            Expect.IsTrue(fromFile.Contains("monkey"));
            Expect.IsTrue(fromFile.Contains("banana"));
        }
Пример #8
0
        public void YamlSyncFromDbTest()
        {
            YamlRepository repo           = GetYamlRepo(nameof(LoadYamlTest));
            string         details        = 10.RandomLetters();
            string         updatedDetails = 15.RandomLetters();
            string         testName       = 8.RandomLetters();
            Parent         parent         = new Parent {
                Details = details, Name = testName
            };

            parent = repo.DaoRepository.Save(parent);
            repo.AddNameToLoad <Parent>(parent.Name);
            repo.WriteYaml();
            Parent fromFile = repo.ReadYaml <Parent>(parent.Name);

            Expect.AreEqual(fromFile.Details, parent.Details);
            parent.Details = updatedDetails;
            parent         = repo.DaoRepository.Save(parent);
            repo.Synchronize();
            fromFile = repo.ReadYaml <Parent>(parent.Name);
            Expect.AreEqual(fromFile.Details, updatedDetails);
        }
        [Test] public void Repository_should_load_roles_with_no_mapped_machines()
        {
            var model = new SystemModel(new[]
            {
                new Role("api", new [] { "dev1", "dev2" }),
                new Role("csapi", new string[] {}),
                new Role("service", null)
            }, new[]
            {
                new Tenant("a", new [] { "dev1" }),
            }, new[]
            {
                new TenantTag("a", new [] { "dev1" })
            });

            var repository = new YamlRepository();

            repository.Save(model, _directory);

            var actual = repository.Load(_directory);

            actual.AssertDeepEqualsTo(model);
        }
Пример #10
0
        private static void UploadDefinitions(Options options)
        {
            var model = new YamlRepository().Load(options.DefinitionsDir);

            new Uploader(options.OctopusUrl, options.OctopusApiKey).UploadModel(model);
        }