示例#1
0
        //测试权值正向修改
        public async System.Threading.Tasks.Task Test2Async()
        {
            //weatherservice
            var weatherRootToReturn = new WeatherRoot();

            weatherRootToReturn.main          = new Main();
            weatherRootToReturn.main.temp     = "29";
            weatherRootToReturn.main.humidity = "30";
            var weatherServiceMock = new Mock <IWeatherService>();

            weatherServiceMock.Setup(w => w.GetWeatherAsync()).ReturnsAsync(weatherRootToReturn);
            var mockWeatherService = weatherServiceMock.Object;

            // loadjsonservice

            List <FoodInformation> fi = new List <FoodInformation>();

            for (int i = 1; i <= 40; i++)
            {
                FoodInformation food = new FoodInformation();
                food.Name   = i.ToString();
                food.Weight = new List <int>();
                for (int j = 0; j < 6; j++)
                {
                    food.Weight.Add(i);
                }
                fi.Add(food);
            }

            var loadJsonServiceMock = new Mock <ILoadJsonService>();

            loadJsonServiceMock.Setup(w => w.ReadJsonAsync()).ReturnsAsync(fi);
            var mockLoadJsonServiceMock = loadJsonServiceMock.Object;

            //userchoiceservice
            var userChoiceServiceMock = new Mock <IUserChoiceService>();

            userChoiceServiceMock.Setup(w => w.ReadJsonAsync()).ReturnsAsync(new List <Log>());
            var mockUserChoiceService = userChoiceServiceMock.Object;

            //userfacorservice
            var userFavorServiceMock = new Mock <IUserFavorService>();

            userFavorServiceMock.Setup(w => w.ReadJsonAsync()).ReturnsAsync(new List <FoodWeightChange>());
            var mockUserFavorService = userFavorServiceMock.Object;
            //log
            var logServiceMock = new Mock <ILogService>();

            logServiceMock.Setup(w => w.GetLogs()).Returns(new List <Log>());
            var mockLogSerivce = logServiceMock.Object;

            var foodFavorSerivce     = new Mock <IFoodFavorService>();
            var mockFoodFavorService = foodFavorSerivce.Object;

            IRecommendationService ir = new RecommendationService(mockWeatherService, mockLoadJsonServiceMock,
                                                                  mockUserFavorService, mockLogSerivce, mockFoodFavorService);

            ir.InitRecommendationAsync();
            List <FoodInformation> ff = await ir.ReFlashAsync();

            List <int> reason = new List <int>();

            for (int i = 0; i <= 5; i++)
            {
                reason.Add(1);
            }
            ir.ChangeWeight("10", reason, false);
            var fd = ir.GetFoodInfs();

            Assert.AreEqual(fd[9].Weight[1], 14);
            //List<FoodInformation> ff = await ir.ReFlashAsync();
        }