| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- package org.leumasjaffe.recipe.view;
- import static org.junit.jupiter.api.Assertions.*;
- import static org.mockito.Mockito.*;
- 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.Ingredient;
- import org.mockito.Spy;
- import org.mockito.junit.jupiter.MockitoExtension;
- @ExtendWith(MockitoExtension.class)
- @RunWith(JUnitPlatform.class)
- class IngredientPanelTest extends SwingTestCase {
- @Spy MockObserverListener listener;
- Ingredient stuff;
- IngredientPanel panel;
-
- @BeforeEach
- void setUp() {
- stuff = new Ingredient("Onions", "Sliced", new Amount("100 g"));
- panel = new IngredientPanel(stuff);
- listener.setObserved(stuff);
- // setObserved invokes our callback.
- clearInvocations(listener);
- }
- @Test
- void testFilledOutWithContent() {
- assertEquals("Onions", panel.getTxtName().getText());
- assertEquals("Sliced", panel.getTxtPreparation().getText());
- assertEquals("100", panel.getTxtAmount().getText());
- assertEquals("g", panel.getTxtUnit().getText());
- }
-
- @Test
- void testContentIsEditable() {
- assertTrue(panel.getTxtName().isEditable());
- assertTrue(panel.getTxtPreparation().isEditable());
- assertTrue(panel.getTxtAmount().isEditable());
- assertTrue(panel.getTxtUnit().isEditable());
- }
- @Test
- void testIsSubscribedToUpdates() {
- stuff.setName("Bacon");
- stuff.setPreparation("Cut into Lardons");
- stuff.setAmount(new Amount("0.25 lb"));
-
- assertEquals("Onions", panel.getTxtName().getText());
- ObserverDispatch.notifySubscribers(stuff);
-
- assertEquals("Bacon", panel.getTxtName().getText());
- assertEquals(100.0, panel.getTxtAmount().getValue());
- assertEquals("g", panel.getTxtUnit().getText());
- assertEquals("Cut into Lardons", panel.getTxtPreparation().getText());
- }
- @Test
- void testViewUpdateToNameAltersModel() {
- panel.getTxtName().setText("Bacon");
- waitForSwing();
- assertEquals("Bacon", stuff.getName());
- }
-
- @Test
- void testViewUpdateToPreparationAltersModel() {
- panel.getTxtPreparation().setText("Cut into Lardons");
- waitForSwing();
- assertEquals("Cut into Lardons", stuff.getPreparation());
- }
-
- @Test
- void testViewUpdateToAmountDoesNotAltersModel() {
- panel.getTxtAmount().setValue(0.25);
- waitForSwing();
- assertEquals(100.0, stuff.getAmount().getValue());
- }
-
- @Test
- void testViewUpdateToUnitDoesNotAltersModel() {
- panel.getTxtUnit().setText("lb");
- waitForSwing();
- assertEquals("g", stuff.getAmount().unitName());
- }
- @Test
- void testUpdateToNameSendsNotify() {
- panel.getTxtName().setText("Bacon");
- waitForSwing();
- verify(listener).updateWasSignalled();
- }
-
- @Test
- void testUpdateToPreparationSendsNotify() {
- panel.getTxtPreparation().setText("Cut into Lardons");
- waitForSwing();
- verify(listener).updateWasSignalled();
- }
- @Test
- void testUpdateToAmountSendsNotify() {
- panel.getTxtAmount().setValue(0.25);
- waitForSwing();
- verify(listener, never()).updateWasSignalled();
- }
-
- @Test
- void testUpdateToUnitSendsNotify() {
- panel.getTxtUnit().setText("lb");
- waitForSwing();
- verify(listener, never()).updateWasSignalled();
- }
- }
|