static async Task Main(string[] args) { string directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var files = Directory.GetFiles(directory, "*.*", SearchOption.AllDirectories); var dataReader = new DataFileReader(new FileStreamReader()); IList <Model> models = await dataReader.ReadFiles(files); Console.WriteLine("Output1:"); foreach (var model in models.OrderBy(_ => _.LastName).OrderBy(_ => _.Gender).ToList()) { Console.WriteLine($"LastName: {model.LastName}\t FirstName: {model.FirstName}\t Gender: {model.Gender}\t FavoriteColor: {model.FavoriteColor}\t DateOfBirth: {model.DateOfBirth.ToShortDateString()}"); } Console.WriteLine("Output2:"); foreach (var model in models.OrderBy(_ => _.DateOfBirth).ToList()) { Console.WriteLine($"LastName: {model.LastName}\t FirstName: {model.FirstName}\t Gender: {model.Gender}\t FavoriteColor: {model.FavoriteColor}\t DateOfBirth: {model.DateOfBirth.ToShortDateString()}"); } Console.WriteLine("Output3:"); foreach (var model in models.OrderByDescending(_ => _.LastName).ToList()) { Console.WriteLine($"LastName: {model.LastName}\t FirstName: {model.FirstName}\t Gender: {model.Gender}\t FavoriteColor: {model.FavoriteColor}\t DateOfBirth: {model.DateOfBirth.ToShortDateString()}"); } Console.ReadKey(); }
public async Task ReadFilesInvalidTest() { //Arrange MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes("lastname,firstname,gender,invalid,dateofbirth")); Mock <IFileStreamReader> fileStreamReader = new Mock <IFileStreamReader>(); fileStreamReader.Setup(m => m.GetReader(It.IsAny <FileInfo>())).Returns(new StreamReader(memoryStream)); var dataFileReader = new DataFileReader(fileStreamReader.Object); //Act List <Model> models = await dataFileReader.ReadFiles(new string[] { "something.invalid" }); //Assert Assert.AreEqual(models.Count, 0); }
public async Task ReadFilesSsvSuccessTest() { //Arrange MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes("lastname firstname space favoritecolor 1/1/2001")); Mock <IFileStreamReader> fileStreamReader = new Mock <IFileStreamReader>(); fileStreamReader.Setup(m => m.GetReader(It.IsAny <FileInfo>())).Returns(new StreamReader(memoryStream)); var dataFileReader = new DataFileReader(fileStreamReader.Object); //Act List <Model> models = await dataFileReader.ReadFiles(new string[] { "something.ssv" }); //Assert Assert.AreEqual(models.Count, 1); Assert.AreEqual(models[0].LastName, "lastname"); Assert.AreEqual(models[0].FirstName, "firstname"); Assert.AreEqual(models[0].Gender, "space"); Assert.AreEqual(models[0].FavoriteColor, "favoritecolor"); Assert.AreEqual(models[0].DateOfBirth.ToShortDateString(), "1/1/2001"); }