UserStatistic createdUserStatistic = mock(UserStatistic.class);
when(createdUserStatistic.getValue()).thenReturn(10);
when(userStatisticDaoService.get(any(UserWrapper.class), any(StatisticRefEnum.class))).thenReturn(createdUserStatistic);
IUserWrapperDaoService userWrapperDaoService = mock(IUserWrapperDaoService.class);
IUserLevelDaoService userLevelDaoService = mock(IUserLevelDaoService.class);
ILevelDaoService levelDaoService = mock(ILevelDaoService.class);
Level level = mock(Level.class);
when(levelDaoService.findMatchingLevel(any(Category.class), anyInt())).thenReturn(level);
LevelManager levelManager = new LevelManager(userStatisticDaoService, userWrapperDaoService, userLevelDaoService, levelDaoService);
UserWrapper userWrapper = mock(UserWrapper.class);
levelManager.checkLevels(userWrapper);
when(userLevelDaoService.last(any(UserWrapper.class), any(Category.class))).thenReturn(level);
levelManager.checkLevels(userWrapper);
verify(userLevelDaoService, times(3)).addLevelToUser(any(Level.class), any(UserWrapper.class));
}