universe@20: package de.uapcore.sudoku; universe@20: universe@20: import org.junit.jupiter.api.Test; universe@20: universe@20: import javax.swing.*; universe@20: universe@20: import static org.junit.jupiter.api.Assertions.assertEquals; universe@20: import static org.junit.jupiter.api.Assertions.assertNull; universe@20: universe@20: class MainMenuTest { universe@20: universe@20: private final ActionHandler actionHandler = new ActionHandler(new Field()); universe@20: universe@20: private void testListeners(JMenuItem m) { universe@20: final var listeners = m.getActionListeners(); universe@20: assertEquals(1, listeners.length); universe@20: assertEquals(actionHandler, listeners[0]); universe@20: } universe@20: universe@20: @Test universe@20: void testStructure() { universe@20: final var menu = new MainMenu(actionHandler); universe@20: universe@20: assertEquals(2, menu.getMenuCount()); universe@20: universe@20: final var datei = menu.getMenu(0); universe@20: assertEquals('D', datei.getMnemonic()); universe@20: assertEquals(9, datei.getItemCount()); universe@20: { universe@20: final var item = datei.getItem(0); universe@20: assertEquals("Neu", item.getText()); universe@20: assertEquals('N', item.getMnemonic()); universe@20: assertEquals(1, item.getRegisteredKeyStrokes().length); universe@20: assertEquals(KeyStroke.getKeyStroke("control N"), item.getRegisteredKeyStrokes()[0]); universe@20: testListeners(item); universe@20: } universe@20: { universe@20: final var item = datei.getItem(1); universe@20: assertEquals("Öffnen", item.getText()); universe@20: assertEquals('F', item.getMnemonic()); universe@20: assertEquals(1, item.getRegisteredKeyStrokes().length); universe@20: assertEquals(KeyStroke.getKeyStroke("control O"), item.getRegisteredKeyStrokes()[0]); universe@20: testListeners(item); universe@20: } universe@20: { universe@20: final var item = datei.getItem(2); universe@20: assertEquals("Speichern", item.getText()); universe@20: assertEquals('S', item.getMnemonic()); universe@20: assertEquals(1, item.getRegisteredKeyStrokes().length); universe@20: assertEquals(KeyStroke.getKeyStroke("control S"), item.getRegisteredKeyStrokes()[0]); universe@20: testListeners(item); universe@20: } universe@20: { universe@20: final var item = datei.getItem(3); universe@20: assertEquals("Speichern als...", item.getText()); universe@20: assertEquals('A', item.getMnemonic()); universe@20: testListeners(item); universe@20: } universe@20: universe@20: assertNull(datei.getItem(4)); universe@20: { universe@20: final var item = datei.getItem(5); universe@20: assertEquals("Prüfen", item.getText()); universe@20: assertEquals('P', item.getMnemonic()); universe@20: assertEquals(1, item.getRegisteredKeyStrokes().length); universe@20: assertEquals(KeyStroke.getKeyStroke("control P"), item.getRegisteredKeyStrokes()[0]); universe@20: testListeners(item); universe@20: } universe@20: { universe@20: final var item = datei.getItem(6); universe@20: assertEquals("Lösen", item.getText()); universe@20: assertEquals('L', item.getMnemonic()); universe@20: assertEquals(1, item.getRegisteredKeyStrokes().length); universe@20: assertEquals(KeyStroke.getKeyStroke("control L"), item.getRegisteredKeyStrokes()[0]); universe@20: testListeners(item); universe@20: } universe@20: assertNull(datei.getItem(7)); universe@20: { universe@20: final var item = datei.getItem(8); universe@20: assertEquals("Beenden", item.getText()); universe@20: assertEquals('E', item.getMnemonic()); universe@20: testListeners(item); universe@20: } universe@20: universe@20: final var info = menu.getMenu(1); universe@20: assertEquals("Info", info.getText()); universe@20: assertEquals('I', info.getMnemonic()); universe@20: universe@20: assertEquals(1, info.getItemCount()); universe@20: final var about = info.getItem(0); universe@20: assertEquals("Über...", about.getText()); universe@20: assertEquals('B', about.getMnemonic()); universe@20: assertEquals(1, about.getRegisteredKeyStrokes().length); universe@20: assertEquals(KeyStroke.getKeyStroke("F1"), about.getRegisteredKeyStrokes()[0]); universe@20: testListeners(about); universe@20: } universe@20: }