Ejemplo n.º 1
0
        public void ShouldConvertOnlyCorrectType(Type type, bool expected)
        {
            var sut        = new YesNoConverter();
            var canConvert = sut.CanConvert(type);

            Assert.Equal(expected, canConvert);
        }
Ejemplo n.º 2
0
        public void ShouldWriteCorrectValue(object value, string expected)
        {
            var jsonWriterMock = new Mock <JsonWriter>();

            jsonWriterMock.Setup(m => m.WriteValue(It.IsAny <string>()));
            var sut = new YesNoConverter();

            sut.WriteJson(jsonWriterMock.Object, value, null);

            jsonWriterMock.Verify(m => m.WriteValue(expected));
        }
Ejemplo n.º 3
0
        public void BooleanValuesAreParsedCorrectly()
        {
            var booleanValues = ValuesSampleFiles.FirstOrDefault(f =>
                                                                 f.EndsWith("boolean.ini", StringComparison.OrdinalIgnoreCase));

            Assert.NotNull(booleanValues);

            var configFileEnglish = new ConfigParser(booleanValues, new ConfigParserSettings
            {
                MultiLineValues = MultiLineValues.QuoteDelimitedValues,
                Encoding        = Encoding.UTF8,
                // if some day Boolean.ToString(IFormatProvider) will work
                // https://msdn.microsoft.com/en-us/library/s802ct92(v=vs.110).aspx#Anchor_1
                Culture          = new CultureInfo("en-US"),
                BooleanConverter = new YesNoConverter("vero", "falso")
            }
                                                     );

            const string valoriItaliani = "ValoriItaliani";                                // [ValoriItaliani]

            Assert.True(configFileEnglish.GetValue(valoriItaliani, "positivo", false));    // positivo = vero
            Assert.False(configFileEnglish.GetValue(valoriItaliani, "sampleOff", true));   // sampleOff = falso

            const string simpleSection = "Simple";                                         // [Simple]

            Assert.False(configFileEnglish.GetValue(simpleSection, "empty", false));       // empty=
            Assert.True(configFileEnglish.GetValue(simpleSection, "numericTrue", false));  // numericTrue=1
            Assert.False(configFileEnglish.GetValue(simpleSection, "numericFalse", true)); // numericFalse=0
            Assert.True(configFileEnglish.GetValue(simpleSection, "textTrue", false));     // textTrue = true
            Assert.False(configFileEnglish.GetValue(simpleSection, "textFalse", true));    // textFalse = false

            // ReSharper disable once RedundantArgumentDefaultValue
            var yesNoConverter = new YesNoConverter(
                "yes", // ReSharper disable once RedundantArgumentDefaultValue
                "no"
                );
            const string yesNoSection = "YesNo";                                                       // [YesNo]

            Assert.True(configFileEnglish.GetValue(yesNoSection, "sampleYes", false, yesNoConverter)); // sampleYes=Yes
            Assert.False(configFileEnglish.GetValue(yesNoSection, "sampleNo", true, yesNoConverter));  // sampleNo=no
            var          onOffConverter = new YesNoConverter("on", "off");
            const string onOffSection   = "OnOff";                                                     // [OnOff]

            Assert.True(configFileEnglish.GetValue(onOffSection, "sampleOn", false, onOffConverter));  // sampleOn=on
            Assert.False(configFileEnglish.GetValue(onOffSection, "sampleOff", true, onOffConverter)); // sampleOff=Off
            var          enDisConverter = new YesNoConverter("Enabled", "Disabled");
            const string enDisSection   = "EnabledDisabled";                                           // [EnabledDisabled]

            Assert.True(configFileEnglish.GetValue(enDisSection, "sampleOn", false, enDisConverter));  // sampleOn=on
            Assert.False(configFileEnglish.GetValue(enDisSection, "sampleOff", true, enDisConverter)); // sampleOff=Off

            // =========================================================================================
            // +++++++++   Wow, boolean values parsed auto-magically: look mum no converters   +++++++++
            // =========================================================================================// [YesNo]
            Assert.True(configFileEnglish.GetValue(yesNoSection, "sampleYes", false)); // sampleYes=Yes
            Assert.False(configFileEnglish.GetValue(yesNoSection, "sampleNo", true));  // sampleNo=no

            //                                                                                          // [OnOff]
            Assert.True(configFileEnglish.GetValue(onOffSection, "sampleOn", false));  // sampleOn=on
            Assert.False(configFileEnglish.GetValue(onOffSection, "sampleOff", true)); // sampleOff=Off

            //                                                                                          // [EnabledDisabled]
            Assert.True(configFileEnglish.GetValue(enDisSection, "sampleOn", false));  // sampleOn=on
            Assert.False(configFileEnglish.GetValue(enDisSection, "sampleOff", true)); // sampleOff=Off
        }