Example #1
0
        public void ConvertWithIndexEndTest()
        {
            var config = new CsvConfiguration {
                HasHeaderRecord = false
            };
            var rowMock       = new Mock <ICsvReaderRow>();
            var currentRecord = new[] { "1", "one", "1", "2", "3" };
            var context       = new ReadingContext(new StringReader(string.Empty), config, false)
            {
                Record = currentRecord
            };

            rowMock.Setup(m => m.Configuration).Returns(config);
            rowMock.Setup(m => m.Context).Returns(context);
            rowMock.Setup(m => m.GetField(It.IsAny <Type>(), It.IsAny <int>())).Returns <Type, int>((type, index) => Convert.ToInt32(currentRecord[index]));
            var data = new CsvPropertyMapData(typeof(Test).GetProperty("List"))
            {
                Index    = 2,
                IndexEnd = 3
            };

            data.TypeConverterOptions.CultureInfo = CultureInfo.CurrentCulture;

            var converter = new CollectionGenericConverter();
            var list      = (List <int?>)converter.ConvertFromString("1", rowMock.Object, data);

            Assert.AreEqual(2, list.Count);
            Assert.AreEqual(1, list[0]);
            Assert.AreEqual(2, list[1]);
        }
        public void ConvertNoIndexEndTest()
        {
            var rowMock       = new Mock <ICsvReaderRow>();
            var currentRecord = new[] { "1", "one", "1", "2", "3" };

            rowMock.Setup(m => m.CurrentRecord).Returns(currentRecord);
            rowMock.Setup(m => m.GetField(It.IsAny <Type>(), It.IsAny <int>())).Returns <Type, int>((type, index) => Convert.ToInt32(currentRecord[index]));
            var data = new CsvPropertyMapData(typeof(Test).GetProperty("List"))
            {
                Index = 2
            };

            data.TypeConverterOptions.CultureInfo = CultureInfo.CurrentCulture;

            var converter = new CollectionGenericConverter();
            var list      = (List <int>)converter.ConvertFromString("1", rowMock.Object, data);

            Assert.AreEqual(3, list.Count);
            Assert.AreEqual(1, list[0]);
            Assert.AreEqual(2, list[1]);
            Assert.AreEqual(3, list[2]);
        }