You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
1.8 KiB

package Application;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class MenuManagerTest {
MenuManager mm;
Menu rootMenu;
@BeforeEach
void setUp() {
rootMenu = new Menu("Root");
Menu menu1 = new Menu("Menu1");
Menu menu2 = new Menu("Menu2");
Menu menu1_1 = new Menu("Menu1.1");
menu1.addMenu(menu1_1);
rootMenu.addMenu(menu1);
rootMenu.addMenu(menu2);
mm = new MenuManager(rootMenu);
}
@AfterEach
void tearDown() {
}
@Test
void testSelectFunction() {
assertEquals(mm.getCurrentMenu(), rootMenu);
mm.select(0);
assertEquals(mm.getCurrentMenu(), rootMenu.getMenu(0));
mm.select(0);
assertEquals(mm.getCurrentMenu(), rootMenu.getMenu(0).getMenu(0));
}
@Test
void testIsRootMenuFunction() {
assertTrue(mm.inRootMenu());
mm.select(0);
assertFalse(mm.inRootMenu());
}
@Test
void testBackFunction() {
try {
mm.back();
Assertions.fail("Test failed: shouldn't be able to go back in rootMenu");
} catch (Exception e) {
//Should throw Exception because currently in rootMenu
}
mm.select(0);
try {
mm.back();
assertEquals(mm.getCurrentMenu(), rootMenu);
} catch (Exception e) {
Assertions.fail("Test failed: " + e.getMessage());
}
mm.select(0);
mm.select(0);
try {
mm.back();
assertEquals(mm.getCurrentMenu(), rootMenu.getMenu(0));
} catch (Exception e) {
Assertions.fail("Test failed: " + e.getMessage());
}
}
}