PreparationPanelTest.java 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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.ReplaceChildrenController;
  10. import org.leumasjaffe.recipe.model.Ingredient;
  11. import org.leumasjaffe.recipe.model.Preparation;
  12. import org.mockito.InjectMocks;
  13. import org.mockito.Mock;
  14. import org.mockito.junit.jupiter.MockitoExtension;
  15. @ExtendWith(MockitoExtension.class)
  16. class PreparationPanelTest extends SwingTestCase {
  17. @Mock ObservableListener<JFormattedTextField, Preparation> durationListener;
  18. @Mock ReplaceChildrenController<Preparation, Ingredient> controller;
  19. Preparation stuff = new Preparation();
  20. @InjectMocks PreparationPanel panel = new PreparationPanel();
  21. @BeforeEach
  22. void setUp() {
  23. panel.setModel(stuff);
  24. }
  25. @Test
  26. void testHasContent() {
  27. verify(durationListener, times(1)).setObserved(same(stuff));
  28. verify(controller, times(1)).accept(any(), same(stuff));
  29. }
  30. @Test
  31. void testUpdatesNumberOfChildrenWhenNotified() {
  32. ObserverDispatch.notifySubscribers(stuff);
  33. verify(controller, times(2)).accept(any(), same(stuff));
  34. }
  35. }