예제 #1
0
        public void CreateCsvLineTest()
        {
            var example = new Example()
            {
                StringValue           = "foo",
                DecimalValue          = 123456,
                DateTimeValue         = new DateTime(2020, 1, 1),
                BooleanValue          = false,
                IntValue              = 100,
                NullableDecimalValue  = 1000,
                NullableDateTimeValue = new DateTime(2020, 1, 1),
                NullableIntValue      = 123,
                SeparateIndex         = "bar",
                ValueObject           = new ValueObject("abc"),
                DoubleValue           = 10.123,
                NullableDoubleValue   = 111.111,
                ShortValue            = 100,
                NullableShortValue    = 200,
                LongValue             = 10000,
                NullableLongValue     = 20000,
                FloatValue            = 1.1f,
                NullableFloatValue    = 1.2f,
            };

            var c = CsvParser <Example> .FromType();

            var actual = c.CreateCsvLine(example);

            var expected = "foo,\"123,456\",2020/01/01,False,100,1000,2020/01/01,123,,bar,abc,10.123,111.111,100,200,10000,20000,1.1,1.2";

            Assert.AreEqual(expected, actual);
        }
예제 #2
0
        public void CreateObjectColumnNotFoundTest()
        {
            var x = new ColumnNotFound()
            {
                Value = "foo",
            };

            Assert.ThrowsException <InvalidOperationException>(() => CsvParser <ColumnNotFound> .FromType());
        }
예제 #3
0
        public void CreateObjectSpecialValueTest()
        {
            var expected = new SpecialValue();

            var c = CsvParser <SpecialValue> .FromType();

            var actual = c.CreateObject(c.CreateCsvLine(expected));

            Assert.AreEqual(expected, actual);
        }
예제 #4
0
        public void CreateHeaderTest()
        {
            var c = CsvParser <Example> .FromType();

            var actual = c.CreateHeader();

            var expected = @"CustomName,DecimalValue,DateTimeValue,BooleanValue,IntValue,NullableDecimalValue,NullableDateTimeValue,NullableIntValue,,SeparateIndex,ValueObject,DoubleValue,NullableDoubleValue,ShortValue,NullableShortValue,LongValue,NullableLongValue,FloatValue,NullableFloatValue";

            Assert.AreEqual(expected, actual);
        }
예제 #5
0
        public void CreateCsvLineSpecialValueTest()
        {
            var c = CsvParser <SpecialValue> .FromType();

            var actual = c.CreateCsvLine(new SpecialValue());

            var expected = "\"fo\"\"o\",\"fo\"\"\"\"o\",\"fo\ro\",\"fo\no\",\"fo\r\no\"";

            Assert.AreEqual(expected, actual);
        }
예제 #6
0
        public void CreateObjectIndexDuplicateTest()
        {
            var x = new IndexDuplicate()
            {
                Value1 = "foo",
                Value2 = "bar",
            };

            Assert.ThrowsException <InvalidOperationException>(() => CsvParser <IndexDuplicate> .FromType());
        }
예제 #7
0
        public void CreateObjectTest()
        {
            var expected = new Example()
            {
                StringValue           = "foo",
                DecimalValue          = 1000,
                DateTimeValue         = new DateTime(2020, 1, 1),
                IntValue              = 123,
                NullableDecimalValue  = 2000,
                NullableDateTimeValue = new DateTime(2020, 1, 2),
                NullableIntValue      = 456,
                ValueObject           = new ValueObject("abc"),
                DoubleValue           = 10.123,
                NullableDoubleValue   = 111.111,
            };

            var c = CsvParser <Example> .FromType();

            var actual = c.CreateObject(c.CreateCsvLine(expected));

            Assert.AreEqual(expected, actual);
        }
예제 #8
0
        public void CreateObjectFailureTest()
        {
            var c = CsvParser <Foo> .FromType();

            Assert.ThrowsException <CsvValidationException>(() => c.CreateObject("x"));
        }
예제 #9
0
        public void CreateObjectIndexNotFoundTest()
        {
            var c = CsvParser <Example> .FromType();

            Assert.ThrowsException <CsvValidationException>(() => c.CreateObject("foo,123"));
        }