public void ConvertWithIndexEndTest() { var config = new CsvConfiguration { HasHeaderRecord = false }; var rowMock = new Mock <ICsvReaderRow>(); var headers = new[] { "Id", "Name", "Prop1", "Prop2", "Prop3" }; var currentRecord = new[] { "1", "One", "1", "2", "3" }; rowMock.Setup(m => m.Configuration).Returns(config); rowMock.Setup(m => m.FieldHeaders).Returns(headers); rowMock.Setup(m => m.CurrentRecord).Returns(currentRecord); rowMock.Setup(m => m.GetField(It.IsAny <int>())).Returns <int>(index => currentRecord[index]); var data = new CsvPropertyMapData(typeof(Test).GetProperty("Dictionary")) { Index = 2, IndexEnd = 3 }; data.TypeConverterOptions.CultureInfo = CultureInfo.CurrentCulture; var converter = new IDictionaryConverter(); var dictionary = (IDictionary)converter.ConvertFromString("1", rowMock.Object, data); Assert.AreEqual(2, dictionary.Count); Assert.AreEqual("1", dictionary["Prop1"]); Assert.AreEqual("2", dictionary["Prop2"]); }