class RecipeServiceImplTest {
RecipeServiceImpl recipeService;
@Mock
RecipeRepository recipeRepository;
@BeforeEach
void setUp() {
MockitoAnnotations.initMocks(this);
recipeService = new RecipeServiceImpl(recipeRepository);
}
@Test
void getRecipe() {
Recipe recipe = new Recipe();
HashSet<Recipe> recipesData = new HashSet<>();
recipesData.add(recipe);
when(recipeRepository.findAll()).thenReturn(recipesData);
Set<Recipe> recipes = recipeService.getRecipes();
assertEquals(recipes.size(), 1);
verify(recipeRepository, times(1)).findAll(); // called 1 time(s)
}
class IndexControllerTest {
@Mock
RecipeService recipeService;
@Mock
Model model;
IndexController controller;
....
@Test
void getIndexPage() {
String viewName = controller.getIndexPage(model);
assertEquals("index", viewName);
verify(recipeService, times(1)).getRecipes();
verify(model, times(1)).addAttribute(eq("recipes"), anySet());
}
@Test
void getIndexPage() {
// given
HashSet<Recipe> recipesData = new HashSet<>();
recipesData.add(new Recipe());
recipesData.add(new Recipe());
when(recipeService.getRecipes()).thenReturn(recipesData);
ArgumentCaptor<Set<Recipe>> argumentCaptor = ArgumentCaptor.forClass(Set.class);
// when
String viewName = controller.getIndexPage(model);
// then
assertEquals("index", viewName);
verify(recipeService, times(1)).getRecipes();
verify(model, times(1)).addAttribute(eq("recipes"), argumentCaptor.capture());
Set<Recipe> setInController = argumentCaptor.getValue();
assertEquals(2, setInController.size());
}
@ExtendWith(MockitoExtension.class)
@ExtendWith(MockitoExtension.class)
class RecipeServiceImplTest {
@Mock
RecipeRepository recipeRepository;
@InjectMocks
RecipeServiceImpl recipeService;
@Test
void getRecipe() {
Recipe recipe = new Recipe();
HashSet<Recipe> recipesData = new HashSet<>();
recipesData.add(recipe);
when(recipeRepository.findAll()).thenReturn(recipesData);
Set<Recipe> recipes = recipeService.getRecipes();
assertEquals(recipes.size(), 1);
verify(recipeRepository, times(1)).findAll();
}
}