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.

95 lines
2.4 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;
@BeforeEach
void setUp() {
Menu menu1 = new Menu("Menu1");
Menu menu2 = new Menu("Menu2");
Menu menu1_1 = new Menu("Menu1.1");
menu1.addMenu(menu1_1);
mm = new MenuManager();
mm.addMenu(menu1);
mm.addMenu(menu2);
}
@AfterEach
void tearDown() {
}
@Test
void select() {
assertNull(mm.getCurrentMenu());
//Negative index
mm.select(-1);
assertNull(mm.getCurrentMenu());
mm.select(0);
assertEquals(mm.getCurrentMenu().getName(), "Menu1");
//Dose nothing when index to big
mm.select(1);
assertEquals(mm.getCurrentMenu().getName(), "Menu1");
mm.select(0);
assertEquals(mm.getCurrentMenu().getName(), "Menu1.1");
mm.select(0);
assertEquals(mm.getCurrentMenu().getName(), "Menu1.1");
}
@Test
void inRootMenu() {
assertTrue(mm.inRootMenu());
mm.select(0);
assertFalse(mm.inRootMenu());
}
@Test
void back() {
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();
assertTrue(mm.inRootMenu());
} catch (Exception e) {
Assertions.fail("Test failed: " + e.getMessage());
}
mm.select(0);
mm.select(0);
try {
mm.back();
assertEquals(mm.getCurrentMenu().getName(), "Menu1");
} catch (Exception e) {
Assertions.fail("Test failed: " + e.getMessage());
}
}
@Test
void getFormattedMenuList(){
assertEquals(mm.getFormattedMenuList(), "1: Menu1\n2: Menu2\n");
mm.select(0);
assertEquals(mm.getFormattedMenuList(), "1: Menu1.1\n");
}
@Test
void getSize() {
assertEquals(mm.getSize(), 2);
mm.select(0);
assertEquals(mm.getSize(), 1);
mm.select(0);
assertEquals(mm.getSize(), 0);
}
}