package org.leumasjaffe.recipe.view; import static org.mockito.Mockito.*; import javax.swing.JFormattedTextField; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.leumasjaffe.observer.ObservableListener; import org.leumasjaffe.observer.ObserverDispatch; import org.leumasjaffe.recipe.controller.ReplaceChildrenController; import org.leumasjaffe.recipe.model.Ingredient; import org.leumasjaffe.recipe.model.Preparation; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; @ExtendWith(MockitoExtension.class) class PreparationPanelTest extends SwingTestCase { @Mock ObservableListener durationListener; @Mock ReplaceChildrenController controller; Preparation stuff = new Preparation(); @InjectMocks PreparationPanel panel = new PreparationPanel(); @BeforeEach void setUp() { panel.setModel(stuff); } @Test void testHasContent() { verify(durationListener, times(1)).setObserved(same(stuff)); verify(controller, times(1)).accept(any(), same(stuff)); } @Test void testUpdatesNumberOfChildrenWhenNotified() { ObserverDispatch.notifySubscribers(stuff); verify(controller, times(2)).accept(any(), same(stuff)); } }