diff -r 627e1c99bcf1 -r a95423d37588 src/test/java/de/uapcore/sudoku/MainMenuTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/de/uapcore/sudoku/MainMenuTest.java Tue Jul 28 13:48:59 2020 +0200 @@ -0,0 +1,97 @@ +package de.uapcore.sudoku; + +import org.junit.jupiter.api.Test; + +import javax.swing.*; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; + +class MainMenuTest { + + private final ActionHandler actionHandler = new ActionHandler(new Field()); + + private void testListeners(JMenuItem m) { + final var listeners = m.getActionListeners(); + assertEquals(1, listeners.length); + assertEquals(actionHandler, listeners[0]); + } + + @Test + void testStructure() { + final var menu = new MainMenu(actionHandler); + + assertEquals(2, menu.getMenuCount()); + + final var datei = menu.getMenu(0); + assertEquals('D', datei.getMnemonic()); + assertEquals(9, datei.getItemCount()); + { + final var item = datei.getItem(0); + assertEquals("Neu", item.getText()); + assertEquals('N', item.getMnemonic()); + assertEquals(1, item.getRegisteredKeyStrokes().length); + assertEquals(KeyStroke.getKeyStroke("control N"), item.getRegisteredKeyStrokes()[0]); + testListeners(item); + } + { + final var item = datei.getItem(1); + assertEquals("Öffnen", item.getText()); + assertEquals('F', item.getMnemonic()); + assertEquals(1, item.getRegisteredKeyStrokes().length); + assertEquals(KeyStroke.getKeyStroke("control O"), item.getRegisteredKeyStrokes()[0]); + testListeners(item); + } + { + final var item = datei.getItem(2); + assertEquals("Speichern", item.getText()); + assertEquals('S', item.getMnemonic()); + assertEquals(1, item.getRegisteredKeyStrokes().length); + assertEquals(KeyStroke.getKeyStroke("control S"), item.getRegisteredKeyStrokes()[0]); + testListeners(item); + } + { + final var item = datei.getItem(3); + assertEquals("Speichern als...", item.getText()); + assertEquals('A', item.getMnemonic()); + testListeners(item); + } + + assertNull(datei.getItem(4)); + { + final var item = datei.getItem(5); + assertEquals("Prüfen", item.getText()); + assertEquals('P', item.getMnemonic()); + assertEquals(1, item.getRegisteredKeyStrokes().length); + assertEquals(KeyStroke.getKeyStroke("control P"), item.getRegisteredKeyStrokes()[0]); + testListeners(item); + } + { + final var item = datei.getItem(6); + assertEquals("Lösen", item.getText()); + assertEquals('L', item.getMnemonic()); + assertEquals(1, item.getRegisteredKeyStrokes().length); + assertEquals(KeyStroke.getKeyStroke("control L"), item.getRegisteredKeyStrokes()[0]); + testListeners(item); + } + assertNull(datei.getItem(7)); + { + final var item = datei.getItem(8); + assertEquals("Beenden", item.getText()); + assertEquals('E', item.getMnemonic()); + testListeners(item); + } + + final var info = menu.getMenu(1); + assertEquals("Info", info.getText()); + assertEquals('I', info.getMnemonic()); + + assertEquals(1, info.getItemCount()); + final var about = info.getItem(0); + assertEquals("Über...", about.getText()); + assertEquals('B', about.getMnemonic()); + assertEquals(1, about.getRegisteredKeyStrokes().length); + assertEquals(KeyStroke.getKeyStroke("F1"), about.getRegisteredKeyStrokes()[0]); + testListeners(about); + } +}