blob: ef7e90e5091e09e940b2ec43a4cbc89439e72851 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008, 2016 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.ua.tests.cheatsheet.other;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetCollectionElement;
import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetElement;
import org.junit.Before;
import org.junit.Test;
public class TestCheatSheetCollection {
private CheatSheetCollectionElement root;
private CheatSheetElement csA;
private CheatSheetElement csB;
private CheatSheetElement cs12A;
private CheatSheetElement cs2A;
private CheatSheetCollectionElement c1;
private CheatSheetCollectionElement c2;
private CheatSheetCollectionElement c11;
private CheatSheetCollectionElement c12;
@Before
public void setUp() throws Exception {
root = new CheatSheetCollectionElement("rootPlugin", "rootId", "rootName", root);
csA = new CheatSheetElement("A");
csA.setID("idA");
csB = new CheatSheetElement("B");
csB.setID("idB");
cs12A = new CheatSheetElement("12A");
cs12A.setID("id12A");
cs2A = new CheatSheetElement("2A");
cs2A.setID("id2A");
c1 = new CheatSheetCollectionElement("p1", "c1Id", "c1", root);
c2 = new CheatSheetCollectionElement("p2", "c2Id", "c2", root);
c11 = new CheatSheetCollectionElement("p11", "c11Id", "c11", c1);
c12 = new CheatSheetCollectionElement("p12", "c12Id", "c12", c1);
root.add(c1);
root.add(csA);
root.add(csB);
root.add(c2);
c1.add(c11);
c1.add(c12);
c2.add(cs2A);
c12.add(cs12A);
}
@Test
public void testRoot() {
assertEquals(2, root.getChildren().length);
assertEquals(2, root.getCheatSheets().length);
assertFalse(root.isEmpty());
assertEquals("rootName", root.getLabel(null));
assertEquals("rootId", root.getId());
assertEquals("rootPlugin", root.getPluginId());
}
@Test
public void testTopLevelChildCategories() {
Object[] children = root.getChildren();
assertEquals(c1, children[0]);
assertEquals(c2, children[1]);
assertEquals(2, c1.getChildren().length);
assertEquals(0, c1.getCheatSheets().length);
assertFalse(c1.isEmpty());
assertEquals(0, c2.getChildren().length);
assertEquals(1, c2.getCheatSheets().length);
assertFalse(c2.isEmpty());
}
@Test
public void testTopLevelCheatsheets() {
Object[] cheatsheets = root.getCheatSheets();
assertEquals(csA, cheatsheets[0]);
assertEquals(csB, cheatsheets[1]);
}
@Test
public void testSecondLevelChildCategories() {
Object[] children = c1.getChildren();
assertEquals(c11, children[0]);
assertEquals(c12, children[1]);
assertEquals(0, c11.getChildren().length);
assertEquals(0, c11.getCheatSheets().length);
assertTrue(c11.isEmpty());
assertEquals(0, c12.getChildren().length);
assertEquals(1, c12.getCheatSheets().length);
assertFalse(c12.isEmpty());
}
@Test
public void testFind() {
assertEquals(csA, root.findCheatSheet("idA", true));
assertEquals(csA, root.findCheatSheet("idA", false));
assertNull(root.findCheatSheet("idC", true));
assertEquals(cs12A, root.findCheatSheet("id12A", true));
assertNull(root.findCheatSheet("id12A", false));
}
}