public void GetReadData_CanConvertNonNullableBooleansWithoutAnAttribute_ValuesConverted(string inputData, bool expected)
        {
            // Arrange
            var cut = new CsvConverterDefaultBoolean();

            cut.Initialize(null, new DefaultTypeConverterFactory());

            // Act
            bool actual = (bool)cut.GetReadData(typeof(bool), inputData, "Column1", 1, 1);

            // Assert
            Assert.AreEqual(expected, actual);
        }
        public void GetReadData_CanHandleNonIntegerStrings_ThrowsException(string inputData)
        {
            // Arrange
            var cut = new CsvConverterDefaultBoolean();

            cut.Initialize(null, new DefaultTypeConverterFactory());

            // Act
            bool actual = (bool)cut.GetReadData(typeof(bool), inputData, "Column1", 1, 1);

            // Assert
            Assert.Fail("Exception should be thrown when invalid values are passed into the parser!");
        }
        public void GetWriteData_CanConvertNullableBoolean_BoolConverted(bool inputValue, string trueValue, string falseValue, string expectedData)
        {
            // Arrange
            var cut = new CsvConverterDefaultBoolean();

            cut.FalseValue = falseValue;
            cut.TrueValue  = trueValue;

            // Act
            string actualData = cut.GetWriteData(typeof(bool?), inputValue, "Column1", 1, 1);

            // Assert
            Assert.AreEqual(expectedData, actualData);
        }
        public void GetReadData_CanConvertSpecializedBooleanIfAnAttributeIsProvided_ValuesConverted(string inputData, bool expected)
        {
            // Arrange
            var attribute = new CsvConverterBooleanAttribute();

            attribute.TrueValue  = "Cat";
            attribute.FalseValue = "Frog";

            var cut = new CsvConverterDefaultBoolean();

            cut.Initialize(attribute, new DefaultTypeConverterFactory());

            // Act
            bool actual = (bool)cut.GetReadData(typeof(bool), inputData, "Column1", 1, 1);

            // Assert
            Assert.AreEqual(expected, actual);
        }