コード例 #1
0
        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();
        }
コード例 #2
0
        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);
        }
コード例 #3
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");
        }