public void DelimitedSchemaMapping_Properly_Maps_Delimited_Strings() { // Create Schema var personSchema = new DelimitedSchema<Person>(); personSchema.AddMapping(p => p.FirstName, 0); personSchema.AddMapping(p => p.LastName, 1); personSchema.AddMapping(p => p.Gender, 2); personSchema.AddMapping(p => p.DateOfBirth, 3); var chargeSchema = new DelimitedSchema<Charge>(); chargeSchema.AddMapping(c => c.Code, 0); chargeSchema.AddMapping(c => c.Units, 1); chargeSchema.AddMapping(c => c.ChargeAmount, 2); // Create Mapper var personMapper = new DelimitedSchemaObjectMapper<Person>(personSchema, "|"); var chargeMapper = new DelimitedSchemaObjectMapper<Charge>(chargeSchema, "|"); // Map lines var person = personMapper.MapLine("Foo|Bar|M|01/02/2003"); var charge = chargeMapper.MapLine("12345|1|89.93"); Assert.AreEqual("Foo", person.FirstName); Assert.AreEqual("Bar", person.LastName); Assert.AreEqual("M", person.Gender); Assert.AreEqual(DateTime.Parse("01/02/2003"), person.DateOfBirth); Assert.AreEqual("12345", charge.Code); Assert.AreEqual(1, charge.Units); Assert.AreEqual(89.93m, charge.ChargeAmount); }
public void FileReader_ReadFile_Enumerates_Each_Line() { var schema = new DelimitedSchema<Person>(); schema.AddMapping(s => s.FirstName, 1); schema.AddMapping(s => s.LastName, 2); schema.AddMapping(s => s.Gender, 3); schema.AddMapping(s => s.DateOfBirth, 4); var mapper = new DelimitedSchemaObjectMapper<Person>(schema, "|"); var persons = new List<Person>(); var fr = new FileReader(); fr.ReadFile("text.txt", line => { if (line.StartsWith("P")) { persons.Add(mapper.MapLine(line)); } }); Assert.AreEqual(3, persons.Count); }