Example #1
0
        public void TestYamlWithDictionary()
        {
            var testYaml =
                "MyField: value\n" +
                "Dict:\n" +
                "  Key1:\n" +
                "    - FieldA: Value1A\n" +
                "    - FieldB: 1\n" +
                "  Key2:\n" +
                "    - FieldA: Value2A\n" +
                "    - FieldB: 2\n";


            var result = MyYamlDeserializer.Deserialize <TestWithDictionary>(testYaml);

            Assert.AreEqual("value", result.MyField);

            Assert.AreEqual(2, result.Dict.Count);

            Assert.AreEqual("Value1A", result.Dict["Key1"].FieldA);
            Assert.AreEqual(1, result.Dict["Key1"].FieldB);

            Assert.AreEqual("Value2A", result.Dict["Key2"].FieldA);
            Assert.AreEqual(2, result.Dict["Key2"].FieldB);
        }
        public void TestModelParse()
        {
            var yamlText = "Version:2" + (char)13 + (char)10 +
                           "Field:\n" +
                           "   \n" +
                           "  MyDataValue:value\n" +
                           "  MyDataValue2:2\n\n" +
                           "field2:asd\n" +
                           "MyBool: True\n" +
                           "TimeSpanField: 00:00:20\n" +
                           "EnumField: Two\n" +
                           "MyArray:\n" +
                           "  - value1\n" +
                           "  - value2";

            var yamlBytes = Encoding.UTF8.GetBytes(yamlText);

            var model = MyYamlDeserializer.Deserialize <TestModel>(yamlBytes);

            Assert.AreEqual(2, model.Version);
            Assert.AreEqual("value", model.Field.MyDataValue);
            Assert.AreEqual(2, model.Field.MyDataValue2);

            Assert.AreEqual(TimeSpan.Parse("00:00:20"), model.TimeSpanField);

            Assert.AreEqual(2, model.MyArray.Length);
            Assert.AreEqual("value1", model.MyArray[0]);
            Assert.AreEqual("value2", model.MyArray[1]);

            Assert.AreEqual(MyEnum.Two, model.EnumField);
            Assert.IsTrue(model.MyBool);
        }
Example #3
0
        public void TestSimpleDictionaries()
        {
            var testYaml =
                "MyField: value\n" +
                "Dict:\n" +
                "  - key1: value1\n" +
                "  - key2: value2\n";

            var result = MyYamlDeserializer.Deserialize <TestSimpleDictionary>(testYaml);

            Assert.AreEqual("value", result.MyField);

            Assert.AreEqual(2, result.Dict.Count);
            Assert.AreEqual("value1", result.Dict["key1"]);
            Assert.AreEqual("value2", result.Dict["key2"]);
        }
Example #4
0
        public void TestModelParse()
        {
            var yamlText = "Version:2" + (char)13 + (char)10 +
                           "Field:\n" +
                           "   \n" +
                           "  MyDataValue:value\n" +
                           "  MyDataValue2:2\n\n" +
                           "field2:asd\n" +
                           "MyBool: True\n" +
                           "EnumField: Two\n" +
                           "MyArray:\n" +
                           "  - value1\n" +
                           "  - value2";

            var yamlBytes = Encoding.UTF8.GetBytes(yamlText);

            var model = MyYamlDeserializer.Deserialize <TestModelWithDefaultValue>(yamlBytes);

            Assert.AreEqual(2, model.Version);

            Assert.AreEqual(45, model.DefaultValue);
        }
Example #5
0
        public static T GetSettings <T>(string homeFileName) where T : class, new()
        {
            var yaml = ReadingFromEnvVariable() ?? ReadFromFileInHome(homeFileName);

            if (yaml == null)
            {
                Console.WriteLine();
                throw new Exception("No settings found");
            }

            var notUsed = new List <string>();

            var result = MyYamlDeserializer.Deserialize <T>(yaml, notUsed);

            if (notUsed.Count > 0)
            {
                Console.WriteLine();
                Console.WriteLine();
                throw new Exception("The line is not initialized: " + notUsed[0]);
            }

            return(result);
        }