|
|
@@ -2,7 +2,12 @@ package org.leumasjaffe.recipe.view;
|
|
|
|
|
|
import static org.mockito.Mockito.*;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+import javax.swing.JPanel;
|
|
|
+import javax.swing.JTextField;
|
|
|
|
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
@@ -10,10 +15,11 @@ import org.junit.jupiter.api.extension.ExtendWith;
|
|
|
import org.junit.platform.runner.JUnitPlatform;
|
|
|
import org.junit.runner.RunWith;
|
|
|
import org.leumasjaffe.mock.MockObserverListener;
|
|
|
+import org.leumasjaffe.observer.ObservableListener;
|
|
|
import org.leumasjaffe.observer.ObserverDispatch;
|
|
|
import org.leumasjaffe.recipe.model.Phase;
|
|
|
-import org.leumasjaffe.recipe.model.CollatedDuration;
|
|
|
import org.leumasjaffe.recipe.model.Element;
|
|
|
+import org.mockito.InjectMocks;
|
|
|
import org.mockito.Mock;
|
|
|
import org.mockito.Spy;
|
|
|
import org.mockito.junit.jupiter.MockitoExtension;
|
|
|
@@ -22,25 +28,39 @@ import org.mockito.junit.jupiter.MockitoExtension;
|
|
|
@RunWith(JUnitPlatform.class)
|
|
|
class ElementPanelTest extends SwingTestCase {
|
|
|
|
|
|
- @Spy MockObserverListener listener;
|
|
|
- final Phase stub = new Phase();
|
|
|
- @Mock Element stuff;
|
|
|
- ElementPanel panel;
|
|
|
+ List<Phase> phases;
|
|
|
+ Element stuff;
|
|
|
+
|
|
|
+ @Mock ObservableListener<CollatedDurationPanel, Element> durationListener;
|
|
|
+ @Spy JTextField txtName;
|
|
|
+ @Spy JPanel panelViewPort;
|
|
|
+ @InjectMocks ElementPanel panel = new ElementPanel();
|
|
|
|
|
|
@BeforeEach
|
|
|
void setUp() {
|
|
|
- doReturn(Arrays.asList(stub)).when(stuff).getPhases();
|
|
|
- doReturn(CollatedDuration.ZERO).when(stuff).getCollatedDuration();
|
|
|
- panel = new ElementPanel(stuff);
|
|
|
+ phases = new ArrayList<>(Arrays.asList(new Phase()));
|
|
|
+ stuff = new Element();
|
|
|
+ stuff.setName("Curry");
|
|
|
+ stuff.setPhases(phases);
|
|
|
|
|
|
+ panel.setModel(stuff);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void testFilledOutWithContent() {
|
|
|
+ verify(txtName).setText(eq("Curry"));
|
|
|
+ verify(panelViewPort).add(any(PhasePanel.class));
|
|
|
+ verify(durationListener).setObserved(same(stuff));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void testPropogatesNotifications() {
|
|
|
+ final MockObserverListener listener = spy(MockObserverListener.class);
|
|
|
listener.setObserved(stuff);
|
|
|
// setObserved() calls update
|
|
|
clearInvocations(listener);
|
|
|
- }
|
|
|
|
|
|
- @Test
|
|
|
- void testPropogatesSignalFromChildren() {
|
|
|
- ObserverDispatch.notifySubscribers(stub);
|
|
|
+ ObserverDispatch.notifySubscribers(phases.get(0));
|
|
|
verify(listener).updateWasSignalled();
|
|
|
}
|
|
|
|