Browse Source

Added getFormattedMenuList method to MenuManager with test for printing to Console

feature-menu
Nick Stolbov 3 years ago
parent
commit
691ca536ea
  1. 26
      src/main/java/Application/MenuManager.java
  2. 7
      src/test/java/Application/MenuManagerTest.java

26
src/main/java/Application/MenuManager.java

@ -7,35 +7,47 @@ public class MenuManager {
private ArrayList<Menu> menuList; private ArrayList<Menu> menuList;
private Menu currentMenu; private Menu currentMenu;
public MenuManager(){
public MenuManager() {
menuList = new ArrayList<>(); menuList = new ArrayList<>();
currentMenu = null; currentMenu = null;
} }
public void addMenu(Menu menu){
public void addMenu(Menu menu) {
menuList.add(menu); menuList.add(menu);
} }
public void select(int i){
if(currentMenu == null)
public void select(int i) {
if (currentMenu == null)
this.currentMenu = menuList.get(i); this.currentMenu = menuList.get(i);
else else
this.currentMenu = currentMenu.getMenu(i); this.currentMenu = currentMenu.getMenu(i);
} }
public void back() throws Exception { public void back() throws Exception {
if(!this.inRootMenu())
if (!this.inRootMenu())
this.currentMenu = this.currentMenu.getPreviousMenu(); this.currentMenu = this.currentMenu.getPreviousMenu();
else else
throw new Exception("Menu is in the root menu, a previous menu doesn't exist"); throw new Exception("Menu is in the root menu, a previous menu doesn't exist");
} }
public Menu getCurrentMenu(){
public Menu getCurrentMenu() {
return this.currentMenu; return this.currentMenu;
} }
public boolean inRootMenu(){
public boolean inRootMenu() {
return this.currentMenu == null; return this.currentMenu == null;
} }
public String getFormattedMenuList() {
StringBuilder result = new StringBuilder();
ArrayList<Menu> baseMenuList = this.menuList;
if(!inRootMenu())
baseMenuList = currentMenu.getSubMenuList();
for(int i = 0; i < baseMenuList.size(); i++)
result.append(i + 1).append(": ").append(baseMenuList.get(i).getName()).append("\n");
return result.toString();
}
} }

7
src/test/java/Application/MenuManagerTest.java

@ -66,4 +66,11 @@ class MenuManagerTest {
Assertions.fail("Test failed: " + e.getMessage()); 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");
}
} }
Loading…
Cancel
Save