public void AutoMapWithExistingMapTest() { var config = new CsvHelper.Configuration.Configuration(); var existingMap = new SimpleMap(); config.Maps.Add(existingMap); var data = new { Simple = new Simple { Id = 1, Name = "one" } }; var map = config.AutoMap(data.GetType()); Assert.IsNotNull(map); Assert.AreEqual(0, map.MemberMaps.Count); Assert.AreEqual(1, map.ReferenceMaps.Count); // Since Simple is a reference on the anonymous object, the type won't // be re-used. Types which are created from automapping aren't added // to the list of registered maps either. Assert.IsNotInstanceOfType(map.ReferenceMaps[0].Data.Mapping, typeof(SimpleMap)); }
public void ChangeMemberMapTest() { var config = new CsvHelper.Configuration.Configuration(); var map = config.AutoMap <A>(); map.Map(m => m.B.C.P3).Index(3); }
public void CircularDependencyWithMultiplePropertiesTest() { var config = new CsvHelper.Configuration.Configuration(); var map = config.AutoMap <A>(); Assert.AreEqual(1, map.MemberMaps.Count); Assert.AreEqual(3, map.ReferenceMaps.Count); }
public void AutoMapWithDefaultConstructor() { var config = new CsvHelper.Configuration.Configuration(); ClassMap map = config.AutoMap <SimpleReferenceHasNoDefaultConstructor>(); Assert.AreEqual("Id", map.MemberMaps[0].Data.Names[0]); Assert.AreEqual("Name", map.ReferenceMaps[0].Data.Mapping.MemberMaps[0].Data.Names[0]); Assert.AreEqual("name", map.ReferenceMaps[0].Data.Mapping.ParameterMaps[0].Data.Name); }
public void AutoMapEnumerableTest() { var config = new CsvHelper.Configuration.Configuration(); try { config.AutoMap(typeof(List <string>)); Assert.Fail(); } catch (ConfigurationException) {} }
public void CircularDependencyTest() { var config = new CsvHelper.Configuration.Configuration(); var map = config.AutoMap <ACircular>(); Assert.IsNotNull(map); Assert.AreEqual(1, map.MemberMaps.Count); Assert.AreEqual(1, map.ReferenceMaps.Count); Assert.AreEqual(1, map.ReferenceMaps[0].Data.Mapping.MemberMaps.Count); Assert.AreEqual(0, map.ReferenceMaps[0].Data.Mapping.ReferenceMaps.Count); }
public virtual IEnumerable <T> GetData(string FilePath, Func <CsvReader, bool> filter) { IEnumerable <T> info = (IEnumerable <T>)null; //ExceptionList errors = new ExceptionList(); List <T> quotes = new List <T>(); try { _syncLock.EnterReadLock(); _config.ReadingExceptionOccurred = (ex) => HandleError(ex); //_config.BadDataCallback = (ex, row) => HandleError(ex, ref errors); if (_map != null) { _config.RegisterClassMap(_map); } else { _config.AutoMap <T>(); } using (TextReader textReader = File.OpenText(FilePath)) using (CsvReader reader = new CsvReader(textReader, _config)) { if (filter is null) { quotes.AddRange(reader.GetRecords <T>().ToList()); } else { while (reader.Read()) { if (filter(reader)) { quotes.Add(reader.GetRecord <T>()); } } } } } catch (Exception ex) { throw ex; //errors.AddOperationException($"CSV could get get info from {FilePath}.", FilePath, ex); } finally { _syncLock.ExitReadLock(); } //info = await Task.FromResult(quotes); //errors = await Task.FromResult(errors); return(quotes.AsEnumerable <T>()); }
public void AutoMapWithNestedHeaders() { var config = new CsvHelper.Configuration.Configuration { PrefixReferenceHeaders = true, }; var map = config.AutoMap <Nested>(); Assert.AreEqual("Simple1.Id", map.ReferenceMaps[0].Data.Mapping.MemberMaps[0].Data.Names[0]); Assert.AreEqual("Simple1.Name", map.ReferenceMaps[0].Data.Mapping.MemberMaps[1].Data.Names[0]); Assert.AreEqual("Simple2.Id", map.ReferenceMaps[1].Data.Mapping.MemberMaps[0].Data.Names[0]); Assert.AreEqual("Simple2.Name", map.ReferenceMaps[1].Data.Mapping.MemberMaps[1].Data.Names[0]); }
public void SelfCircularDependencyTest() { var config = new CsvHelper.Configuration.Configuration(); var map = config.AutoMap <SelfCircularA>(); }