|
|
@@ -1,5 +1,6 @@
|
|
|
package org.leumasjaffe.recipe.view;
|
|
|
|
|
|
+import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
|
import static org.mockito.Mockito.*;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
@@ -7,13 +8,10 @@ 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;
|
|
|
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;
|
|
|
@@ -25,14 +23,12 @@ import org.mockito.Spy;
|
|
|
import org.mockito.junit.jupiter.MockitoExtension;
|
|
|
|
|
|
@ExtendWith(MockitoExtension.class)
|
|
|
-@RunWith(JUnitPlatform.class)
|
|
|
class ElementPanelTest extends SwingTestCase {
|
|
|
|
|
|
List<Phase> phases;
|
|
|
Element stuff;
|
|
|
|
|
|
@Mock ObservableListener<CollatedDurationPanel, Element> durationListener;
|
|
|
- @Spy JTextField txtName;
|
|
|
@Spy JPanel panelViewPort;
|
|
|
@InjectMocks ElementPanel panel = new ElementPanel();
|
|
|
|
|
|
@@ -48,10 +44,33 @@ class ElementPanelTest extends SwingTestCase {
|
|
|
|
|
|
@Test
|
|
|
void testFilledOutWithContent() {
|
|
|
- verify(txtName).setText(eq("Curry"));
|
|
|
+ assertEquals("Curry", panel.getTxtName().getText());
|
|
|
verify(panelViewPort).add(any(PhasePanel.class));
|
|
|
verify(durationListener).setObserved(same(stuff));
|
|
|
}
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void testIsSubscribedToUpdates() {
|
|
|
+ stuff.setName("Sandwich");
|
|
|
+
|
|
|
+ ObserverDispatch.notifySubscribers(stuff);
|
|
|
+
|
|
|
+ assertEquals("Sandwich", panel.getTxtName().getText());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void testViewUpdateToNameAltersModel() {
|
|
|
+ final MockObserverListener listener = spy(MockObserverListener.class);
|
|
|
+ listener.setObserved(stuff);
|
|
|
+ // setObserved() calls update
|
|
|
+ clearInvocations(listener);
|
|
|
+
|
|
|
+ panel.getTxtName().setText("Sandwich");
|
|
|
+ waitForSwing();
|
|
|
+
|
|
|
+ assertEquals("Sandwich", stuff.getName());
|
|
|
+ verify(listener).updateWasSignalled();
|
|
|
+ }
|
|
|
|
|
|
@Test
|
|
|
void testPropogatesNotifications() {
|