PreparationPanelTest.java 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package org.leumasjaffe.recipe.view;
  2. import static org.mockito.Mockito.*;
  3. import javax.swing.JFormattedTextField;
  4. import org.junit.jupiter.api.BeforeEach;
  5. import org.junit.jupiter.api.Test;
  6. import org.junit.jupiter.api.extension.ExtendWith;
  7. import org.leumasjaffe.observer.ObservableListener;
  8. import org.leumasjaffe.observer.ObserverDispatch;
  9. import org.leumasjaffe.recipe.controller.ReplaceChildrenAction;
  10. import org.leumasjaffe.recipe.model.Ingredient;
  11. import org.leumasjaffe.recipe.model.Phase;
  12. import org.leumasjaffe.recipe.model.Preparation;
  13. import org.leumasjaffe.recipe.viewmodel.ScaleFactor;
  14. import org.mockito.InjectMocks;
  15. import org.mockito.Mock;
  16. import org.mockito.junit.jupiter.MockitoExtension;
  17. @ExtendWith(MockitoExtension.class)
  18. class PreparationPanelTest extends SwingTestCase {
  19. @Mock ObservableListener<JFormattedTextField, Preparation> durationController;
  20. @Mock ReplaceChildrenAction<Preparation, Ingredient> controller;
  21. Preparation stuff = new Preparation();
  22. @Mock Phase parent;
  23. @InjectMocks PreparationPanel panel = new PreparationPanel(new ScaleFactor());
  24. @BeforeEach
  25. void setUp() {
  26. doReturn(stuff).when(parent).getPreparation();
  27. panel.setModel(parent);
  28. }
  29. @Test
  30. void testHasContent() {
  31. verify(durationController, times(1)).setObserved(same(stuff));
  32. verify(controller, times(1)).accept(any(), same(stuff));
  33. }
  34. @Test
  35. void testUpdatesNumberOfChildrenWhenNotified() {
  36. ObserverDispatch.notifySubscribers(parent);
  37. verify(controller, times(2)).accept(any(), same(stuff));
  38. }
  39. }