| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- package org.leumasjaffe.recipe.view;
- import static org.junit.jupiter.api.Assertions.*;
- import static org.hamcrest.MatcherAssert.assertThat;
- import static org.hamcrest.collection.IsArrayWithSize.arrayWithSize;
- import static org.hamcrest.number.OrderingComparison.greaterThanOrEqualTo;
- import static org.mockito.Mockito.*;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- 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.ObserverDispatch;
- import org.leumasjaffe.recipe.model.Amount;
- import org.leumasjaffe.recipe.model.Duration;
- import org.leumasjaffe.recipe.model.Ingredient;
- import org.leumasjaffe.recipe.model.Step;
- import org.mockito.Mock;
- import org.mockito.junit.jupiter.MockitoExtension;
- @ExtendWith(MockitoExtension.class)
- @RunWith(JUnitPlatform.class)
- class StepPanelTest extends SwingTestCase {
- List<Ingredient> ingredients;
- @Mock Step stuff;
- StepPanel panel;
- @BeforeEach
- void setUp() {
- Duration dur = new Duration(Duration.Display.SECONDS, 0, 30);
- ingredients = new ArrayList<>(Arrays.asList(new Ingredient("Onion", "Sliced", new Amount("100 g"))));
- doReturn(dur).when(stuff).getDuration();
- doReturn("These are test instructions").when(stuff).getInstruction();
- doReturn(ingredients).when(stuff).getIngredients();
-
- panel = new StepPanel(0, stuff);
- }
- @Test
- void testFilledOutWithContent() {
- assertEquals("Step 1", panel.getLblIndex().getText());
- assertEquals("These are test instructions", panel.getTxtpnInstructions().getText());
- assertThat(panel.getPanelIngredients().getComponents(),
- arrayWithSize(greaterThanOrEqualTo(1)));
- }
-
- // TODO: Write tests for modifying the txtpnInstructions
- @Test
- void testPropogatesNotifications() {
- final MockObserverListener listener = spy(MockObserverListener.class);
- listener.setObserved(stuff);
- // setObserved invokes our callback.
- clearInvocations(listener);
-
- ObserverDispatch.notifySubscribers(ingredients.get(0));
-
- verify(listener, atLeast(1)).updateWasSignalled();
- }
- }
|