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); }
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); }