PhasePanelTest.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package org.leumasjaffe.recipe.view;
  2. import static org.mockito.Mockito.*;
  3. import java.util.Arrays;
  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.mock.MockObserverListener;
  8. import org.leumasjaffe.observer.ObserverDispatch;
  9. import org.leumasjaffe.recipe.model.Duration;
  10. import org.leumasjaffe.recipe.model.Phase;
  11. import org.leumasjaffe.recipe.model.Preparation;
  12. import org.leumasjaffe.recipe.model.Rest;
  13. import org.leumasjaffe.recipe.model.Step;
  14. import org.leumasjaffe.recipe.viewmodel.ScaleFactor;
  15. import org.mockito.Mock;
  16. import org.mockito.Spy;
  17. import org.mockito.junit.jupiter.MockitoExtension;
  18. @ExtendWith(MockitoExtension.class)
  19. class PhasePanelTest extends SwingTestCase {
  20. @Spy MockObserverListener listener;
  21. final Preparation prep = new Preparation();
  22. final Step stub = new Step();
  23. final Rest rest = new Rest(Rest.Where.REFRIGERATOR, new Duration("10 s"), Duration.ZERO);
  24. @Mock Phase stuff;
  25. PhasePanel panel;
  26. @BeforeEach
  27. void setUp() {
  28. doReturn(Arrays.asList(stub)).when(stuff).getCooking();
  29. doReturn(prep).when(stuff).getPreparation();
  30. doReturn(rest).when(stuff).getRest();
  31. panel = new PhasePanel(stuff, new ScaleFactor());
  32. listener.setObserved(stuff);
  33. // setObserved() calls update
  34. clearInvocations(listener);
  35. }
  36. @Test
  37. void testPropogatesSignalFromSteps() {
  38. ObserverDispatch.notifySubscribers(stub);
  39. verify(listener).updateWasSignalled();
  40. }
  41. @Test
  42. void testPropogatesSignalFromPrep() {
  43. ObserverDispatch.notifySubscribers(prep);
  44. verify(listener).updateWasSignalled();
  45. }
  46. @Test
  47. void testPropogatesSignalFromRest() {
  48. ObserverDispatch.notifySubscribers(rest);
  49. verify(listener).updateWasSignalled();
  50. }
  51. }