package org.esa.snap.rcp.nodes;
import org.esa.snap.core.datamodel.Product;
import org.esa.snap.core.datamodel.ProductManager;
import org.esa.snap.rcp.util.TestProducts;
import org.junit.Test;
import org.openide.awt.UndoRedo;
import org.openide.nodes.Children;
import org.openide.nodes.Node;
import static org.junit.Assert.*;
/**
* @author Norman Fomferra
*/
public class ProductGroupNodeTest {
@Test
public void testDefaultTree() throws Exception {
ProductManager productManager = new ProductManager();
ProductGroupNode rootNode = new ProductGroupNode(productManager);
Product product1 = TestProducts.createProduct1();
productManager.addProduct(product1);
assertEquals(1, rootNode.getChildren().getNodesCount());
assertEquals(PNode.class, rootNode.getChildren().getNodeAt(0).getClass());
PNode pNode = (PNode) rootNode.getChildren().getNodeAt(0);
assertSame(product1, pNode.getProduct());
assertEquals("[1] Test_Product_1", pNode.getDisplayName());
Children children = pNode.getChildren();
assertNotNull(children);
Node[] groupNodes = children.getNodes();
assertNotNull(groupNodes);
assertEquals(5, groupNodes.length);
assertEquals("Metadata", groupNodes[0].getDisplayName());
assertEquals("Vector Data", groupNodes[1].getDisplayName());
assertEquals("Tie-Point Grids", groupNodes[2].getDisplayName());
assertEquals("Bands", groupNodes[3].getDisplayName());
assertEquals("Masks", groupNodes[4].getDisplayName());
//assertEquals("Flag-Codings", groupNodes[2].getDisplayName());
//assertEquals("Index-Codings", groupNodes[3].getDisplayName());
for (Node groupNode : groupNodes) {
assertTrue(groupNode instanceof UndoRedo.Provider);
}
}
}