示例#1
0
        public void provides_data()
        {
            var csvData = new List <List <string> > {
                new List <string> {
                    "1"
                }, new List <string> {
                    "2"
                }
            };

            var mockMapper = new Mock <ICsvEntityMapper>();

            mockMapper.Setup(m => m.MapToEntity(csvData[0])).Returns(new MockEntity {
                Id = 1
            });
            mockMapper.Setup(m => m.MapToEntity(csvData[1])).Returns(new MockEntity {
                Id = 2
            });

            var result = CsvDataProvider <MockEntity> .ProvideData(csvData, mockMapper.Object);

            Assert.Equal(result.Count, csvData.Count);
            Assert.IsType <MockEntity>(result[0]);
            Assert.Equal(1, result[0].Id);
            Assert.Equal(2, result[1].Id);
        }
示例#2
0
        public static async Task Main(string[] args)
        {
            string       projectRootDir       = DirectoryHelper.GetProjectRootDir();
            string       directoryCsvResource = Path.Combine(projectRootDir, @"data\csv\resource");
            const string fileCsvIngredient    = "ingredient.csv";
            const string fileCsvOrder         = "order.csv";
            const string fileCsvDish          = "dish.csv";

            var ingredientCsvData = await CsvFileReader.ReadData(directoryCsvResource, fileCsvIngredient);

            var ingredients = CsvDataProvider <Ingredient> .ProvideData(ingredientCsvData, new IngredientMapper());

            var orderCsvData = await CsvFileReader.ReadData(directoryCsvResource, fileCsvOrder);

            var orders = CsvDataProvider <Order> .ProvideData(orderCsvData, new OrderMapper());

            var dishCsvData = await CsvFileReader.ReadData(directoryCsvResource, fileCsvDish);

            var dishes = CsvDataProvider <Dish> .ProvideData(dishCsvData, new DishMapper());


            var ingredientRepo = new IngredientRepository(ingredients);
            var dishRepo       = new DishRepository(dishes);

            IRestaurant restaurant = new Restaurant(
                new DishService(dishRepo, ingredientRepo),
                new OrderService(ingredientRepo, dishRepo),
                new IngredientService(ingredientRepo)
                );


            Console.WriteLine("Before:");
            ingredientRepo.GetAll().ForEach(Console.WriteLine);
            dishRepo.GetAll().ForEach(Console.WriteLine);
            Console.WriteLine();

            orders.ForEach(order =>
            {
                var(orderId, preparedDishes) = restaurant.ProcessOrder(order);
                Console.WriteLine($"Order ID: {orderId}");
                preparedDishes.ToList().ForEach(Console.WriteLine);
            });
            Console.WriteLine();

            Console.WriteLine("After:");
            ingredientRepo.GetAll().ForEach(Console.WriteLine);
        }