Example #1
0
    T UpdateFromString <T>(ref T obj, string str)
    {
        var doc = Config.LoadDocFromString(str, "ConfigReifierFacts_UpdateFromString_TestFilename");

        ConfigReifier.Reify(ref obj, doc);
        return(obj);
    }
Example #2
0
    T ReifyString <T>(string str) where T : new()
    {
        var doc = Config.LoadDocFromString(str, c_filename);
        T   tc  = default(T);

        ConfigReifier.Reify(ref tc, doc);
        return(tc);
    }
Example #3
0
    T ReifyString <T>(string str) where T : new()
    {
        var doc = Config.LoadDocFromString(str, "ConfigReifierFacts_ReifyString_TestFilename");
        T   tc  = default(T);

        ConfigReifier.Reify(ref tc, doc);
        return(tc);
    }
Example #4
0
    public void PostDoc_IsNull()
    {
        var           doc = Config.LoadDocFromString("baseKey: 10", c_filename);
        PostDocClass2 tc  = null;

        ConfigReifier.Reify(ref tc, doc);
        Assert.AreEqual(tc.baseKey, 10);
    }
Example #5
0
    public void FromDoc_CalledWhenReifyingEmptyList()
    {
        List <TestClass> lst = new List <TestClass>();
        var doc = Config.LoadDocFromString("[[\"Base\", 451]]", c_filename);

        ConfigReifier.Reify(ref lst, doc);
        Assert.AreEqual(1, lst.Count);
        Assert.AreEqual(lst[0].baseKey, 451);
    }
Example #6
0
    public void FromDoc_CalledWhenReifyingNullClass()
    {
        TestClass tc  = null;
        var       doc = Config.LoadDocFromString("[\"Base\", 451]", c_filename);

        ConfigReifier.Reify(ref tc, doc);
        Assert.IsNotNull(tc);
        Assert.AreEqual(tc.baseKey, 451);
    }
Example #7
0
    public void RefiesCaseInsensitive_Missing()
    {
        var doc  = Config.LoadDocFromString(@"---
            childintkey: 32
        ", "ConfigReifier_ReifiesCaseInsensitive_TestFilename");
        var inst = ConfigReifier.CreateInstance <ChildStruct>(doc, ConfigOptions.AllowMissingFields);

        Assert.AreEqual(inst.childIntKey, 32);
    }
Example #8
0
    public void RefiesExtraFields_NoException()
    {
        var doc  = Config.LoadDocFromString(@"---
            floatKey: 1.56
        ", "ConfigReifier_ReifiesExtraFields_TestFilename");
        var inst = ConfigReifier.CreateInstance <TestClass>(doc, ConfigOptions.AllowMissingFields);

        Assert.AreEqual(inst.floatKey, 1.56f);
    }
Example #9
0
    public void PostDoc_CanReplaceWithReturnValue()
    {
        var           doc = Config.LoadDocFromString("baseKey: 10", c_filename);
        PostDocClass3 tc  = null;

        ConfigReifier.Reify(ref tc, doc);
        Assert.NotNull(tc);
        Assert.AreEqual(tc.baseKey, 99);
    }
Example #10
0
    public void ReifierAttributes_AllowMissingClass_OverridesOptions()
    {
        var doc  = Config.LoadDocFromString(@"---
            stringField: wot
        ", "ConfigReifier_ReifierAttributes_TestFilename");
        var inst = ConfigReifier.CreateInstance <AllowMissingClass>(doc, ConfigOptions.None);

        Assert.AreEqual(inst.stringField, "wot");
        Assert.AreEqual(inst.listField, null);
    }
Example #11
0
    public void ReifierAttributes_Mandatory_ExceptsIfNotSet()
    {
        var doc = Config.LoadDocFromString(@"---
            AllowedMissing: derp
        ", "ConfigReifier_ReifierAttributes_TestFilename");

        Assert.Throws <ParseException>(
            () => {
            ConfigReifier.CreateInstance <AttributesClass>(doc, ConfigOptions.AllowMissingFields);
        });
    }
Example #12
0
    public void ReifierAttributes_AllowMissingClass_ChecksMandatoryField()
    {
        var doc = Config.LoadDocFromString(@"---
            listField: [a,b]
        ", "ConfigReifier_ReifierAttributes_TestFilename");

        Assert.Throws <ParseException>(
            () => {
            ConfigReifier.CreateInstance <AllowMissingClass>(doc, ConfigOptions.AllowMissingFields);
        });
    }
Example #13
0
    public void ReifierAttributes_AllowMissingClass_AcceptsSetting()
    {
        var doc  = Config.LoadDocFromString(@"---
            stringField: hmm
            listField: [1]
        ", "ConfigReifier_ReifierAttributes_TestFilename");
        var inst = ConfigReifier.CreateInstance <AllowMissingClass>(doc, ConfigOptions.None);

        Assert.AreEqual(inst.stringField, "hmm");
        Assert.AreEqual(inst.listField[0], "1");
    }
Example #14
0
    public void ReifierAttributes_MandatoryClass_OverridesOptions()
    {
        var doc = Config.LoadDocFromString(@"---
            stringField: uh
        ", "ConfigReifier_ReifierAttributes_TestFilename");

        Assert.Throws <ParseException>(
            () => {
            ConfigReifier.CreateInstance <MandatoryClass>(doc, ConfigOptions.AllowMissingFields);
        });
    }
Example #15
0
    public void ReifiesStatic_Struct()
    {
        var doc = Config.LoadDocFromString(
            @"---
            staticIntKey: 3049
            "
            , "ConfigReifierFacts_ReifyString_TestFilename");

        ConfigReifier.ReifyStatic <ChildStruct>(doc);
        Assert.AreEqual(ChildStruct.staticIntKey, 3049);
    }
Example #16
0
    public void ReifierAttributes_AllowedMissing_ByDefaultInClassWithMandatory()
    {
        var doc  = Config.LoadDocFromString(@"---
            Mandatory: 15
        ", "ConfigReifier_ReifierAttributes_TestFilename");
        var inst = ConfigReifier.CreateInstance <AttributesClass>(doc, ConfigOptions.AllowMissingFields);

        Assert.AreEqual(inst.Mandatory, 15);
        Assert.AreEqual(inst.AllowedMissing, "initial");
        Assert.AreEqual(inst.MissingOrNotDependingOnDefault, "initial2");
    }
Example #17
0
    public void ReifiesSingle_CreateSingleFieldClass()
    {
        var doc = Config.LoadDocFromString(
            @"---
            8342
            "
            , "ConfigReifierFacts_ReifySingle_TestFilename");
        var inst = ConfigReifier.CreateInstance <SingleFieldClass>(doc);

        Assert.AreEqual(inst.SingleField, 8342);
    }
Example #18
0
    public void ReifiesStatic_IgnoresNonStaticFields()
    {
        var doc = Config.LoadDocFromString(
            @"---
            intKey: 10   # try to bogusly set a non-static field
            "
            , "ConfigReifierFacts_ReifyString_TestFilename");

        // passes if there are no exceptions
        ConfigReifier.ReifyStatic <TestClass>(doc);
    }
Example #19
0
    public void ReifierAttributes_MandatoryClass_AllowsMissingField()
    {
        var doc  = Config.LoadDocFromString(@"---
            intField: 99
        ", "ConfigReifier_ReifierAttributes_TestFilename");
        var inst = ConfigReifier.CreateInstance <MandatoryClass>(doc, ConfigOptions.None);

        Assert.AreEqual(inst.intField, 99);
        Assert.AreEqual(inst.stringField, "initial");
        Assert.AreEqual(inst.ignoreField, "initialignore");
    }
Example #20
0
    public void ConfigReifier_SetFieldsOnObject_CastedObject()
    {
        var tc  = (object)new TestClass();
        var doc = Config.LoadDocFromString(
            @"---
            intKey: 99077
            "
            , "ConfigReifierFacts_ReifyString_TestFilename");

        ConfigReifier.SetFieldsOnObject(ref tc, doc);
        Assert.AreEqual(((TestClass)tc).intKey, 99077);
    }
Example #21
0
    public void ConfigReifier_SetFieldsOnObject_PlainObject()
    {
        var tc  = new TestClass();
        var doc = Config.LoadDocFromString(
            @"---
            intKey: 99088
            "
            , "ConfigReifierFacts_ReifyString_TestFilename");

        ConfigReifier.SetFieldsOnObject(ref tc, doc);
        Assert.AreEqual(tc.intKey, 99088);
    }
Example #22
0
    public void FromDoc_UpdatesTestClass()
    {
        var tc = new TestClass {
            baseKey = 15
        };
        var saved = tc;
        var doc   = Config.LoadDocFromString("[\"Base\", 99]", c_filename);

        ConfigReifier.Reify(ref tc, doc);
        Assert.AreSame(tc, saved);
        Assert.AreEqual(tc.baseKey, 99);
    }
Example #23
0
    public void Reify_DocNode()
    {
        var doc = Config.LoadDocFromString(@"---
            ugh: bugh
        ", "ConfigReifier_DocNode_TestFilename");

        DocNode d = null;

        ConfigReifier.Reify(ref d, doc);
        Assert.True(d.ContainsKey("ugh"));
        Assert.AreEqual(d["ugh"].AsString(), "bugh");
    }
Example #24
0
    public void ReifierAttributes_AllowMissingClass_DoesCheckExtraFieldsToo()
    {
        var doc = Config.LoadDocFromString(@"---
            stringField: hi
            extra_field: 33333
        ", "ConfigReifier_ReifierAttributes_TestFilename");

        Assert.Throws <ParseException>(
            () => {
            ConfigReifier.CreateInstance <AllowMissingClass>(doc, ConfigOptions.AllowMissingFields);
        });
    }
Example #25
0
    public void ReifierAttributes_MandatoryClass_AcceptsSetting()
    {
        var doc  = Config.LoadDocFromString(@"---
            intField: 10
            stringField: uh
        ", "ConfigReifier_ReifierAttributes_TestFilename");
        var inst = ConfigReifier.CreateInstance <MandatoryClass>(doc, ConfigOptions.None);

        Assert.AreEqual(inst.intField, 10);
        Assert.AreEqual(inst.stringField, "uh");
        Assert.AreEqual(inst.ignoreField, "initialignore");
    }
Example #26
0
    public void ReifierAttributes_Mandatory_AllowsSetting()
    {
        var doc  = Config.LoadDocFromString(@"---
            Mandatory: 10
            AllowedMissing: derp
        ", "ConfigReifier_ReifierAttributes_TestFilename");
        var inst = ConfigReifier.CreateInstance <AttributesClass>(doc);

        Assert.AreEqual(inst.Mandatory, 10);
        Assert.AreEqual(inst.AllowedMissing, "derp");
        Assert.AreEqual(inst.Ignored, false);
    }
Example #27
0
    public void ReifiesStatic_StaticClass()
    {
        var doc = Config.LoadDocFromString(
            @"---
            staticStringList: [herp, derp]
            "
            , "ConfigReifierFacts_ReifyString_TestFilename");

        ConfigReifier.ReifyStatic(typeof(PureStatic), doc);
        Assert.AreEqual(PureStatic.staticStringList[0], "herp");
        Assert.AreEqual(PureStatic.staticStringList[1], "derp");
    }
Example #28
0
    public void RefiesMissingFields_NoException()
    {
        var doc  = Config.LoadDocFromString(@"---
            childIntKey: 42
            childFloatKey: 1.25
            staticIntKey: 332
        ", "ConfigReifier_ReifiesMissingFields_TestFilename");
        var inst = ConfigReifier.CreateInstance <ChildStruct>(doc, ConfigOptions.None);

        Assert.AreEqual(inst.childIntKey, 42);
        Assert.AreEqual(inst.childFloatKey, 1.25);
        Assert.AreEqual(ChildStruct.staticIntKey, 332);
    }
Example #29
0
    public void ReifierAttributes_AllowedMissing_NoExceptionIfMissing()
    {
        var doc  = Config.LoadDocFromString(@"---
            Mandatory: 15
            MissingOrNotDependingOnDefault: true
        ", "ConfigReifier_ReifierAttributes_TestFilename");
        var inst = ConfigReifier.CreateInstance <AttributesClass>(doc, ConfigOptions.None);

        Assert.AreEqual(inst.Mandatory, 15);
        Assert.AreEqual(inst.AllowedMissing, "initial");
        Assert.AreEqual(inst.Ignored, false);
        Assert.AreEqual(inst.MissingOrNotDependingOnDefault, "true");
    }
Example #30
0
    public void RefiesCaseInsensitive()
    {
        var doc  = Config.LoadDocFromString(@"---
            childintkey: 32
            CHILDFLOATKEY: 11
            StaticiNtKey: 5
        ", "ConfigReifier_ReifiesCaseInsensitive_TestFilename");
        var inst = ConfigReifier.CreateInstance <ChildStruct>(doc, ConfigOptions.None);

        Assert.AreEqual(inst.childIntKey, 32);
        Assert.AreEqual(inst.childFloatKey, 11);
        Assert.AreEqual(ChildStruct.staticIntKey, 5);
    }