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);
        }
Example #2
0
        public void WillThrow()
        {
            ConsoleLogger logger = new ConsoleLogger();

            logger.StartLoggingThread();
            YamlDataFile data = new YamlDataFile(typeof(Data), _arrayData, logger);

            Expect.Throws(() =>
            {
                Data d = (Data)data.Data;
            }, "Referencing Data didn't throw");
        }
Example #3
0
        public void WillNormalize()
        {
            ConsoleLogger logger = new ConsoleLogger();

            logger.StartLoggingThread();
            YamlDataFile data = new YamlDataFile(typeof(Data), _normalizeData, logger);

            data.ArrayBehavior = ArrayBehavior.Normalize;
            DirectoryInfo dir = data.File.Directory;

            DeleteFile(Path.Combine(dir.FullName, "Item One.yaml"));
            DeleteFile(Path.Combine(dir.FullName, "Item Two.yaml"));
            DeleteFile(Path.Combine(dir.FullName, "Item Three.yaml"));
            Data d = (Data)data.Data;

            Expect.IsTrue(File.Exists(Path.Combine(dir.FullName, "Item One.yaml")));
            Expect.IsTrue(File.Exists(Path.Combine(dir.FullName, "Item Two.yaml")));
            Expect.IsTrue(File.Exists(Path.Combine(dir.FullName, "Item Three.yaml")));
        }
Example #4
0
        public void WillWarn()
        {
            ConsoleLogger logger = new ConsoleLogger();

            logger.StartLoggingThread();
            bool?fired = false;

            logger.WarnEventOccurred += (o, a) =>
            {
                fired = true;
            };
            YamlDataFile data = new YamlDataFile(typeof(Data), _arrayData, logger);

            data.ArrayBehavior = ArrayBehavior.Warn;
            Expect.IsFalse(fired.Value);
            Data d = (Data)data.Data;

            Expect.IsTrue(fired.Value);
        }