public void ShouldConvertOnlyCorrectType(Type type, bool expected) { var sut = new YesNoConverter(); var canConvert = sut.CanConvert(type); Assert.Equal(expected, canConvert); }
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)); }
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 }