/* * Copyright 2009-2013 PrimeTek. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.primefaces.model; import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; public class CheckboxTreeNodeTest { private TreeNode root; @Before public void initModel() { root = new CheckboxTreeNode("Files", null); TreeNode documents = new CheckboxTreeNode("Documents", root); TreeNode pictures = new CheckboxTreeNode("Pictures", root); TreeNode movies = new CheckboxTreeNode("Movies", root); TreeNode work = new CheckboxTreeNode("Work", documents); TreeNode primefaces = new CheckboxTreeNode("PrimeFaces", documents); //Documents TreeNode expenses = new CheckboxTreeNode("document", "Expenses", work); TreeNode resume = new CheckboxTreeNode("document", "Resume", work); TreeNode refdoc = new CheckboxTreeNode("document", "Refdoc", primefaces); //Pictures TreeNode barca = new CheckboxTreeNode("picture", "Barcelona.jpg", pictures); TreeNode primelogo = new CheckboxTreeNode("picture", "Logo.jpg", pictures); TreeNode optimus = new CheckboxTreeNode("picture", "OptimusPrime.jpg", pictures); //Movies TreeNode pacino = new CheckboxTreeNode("Al Pacino", movies); TreeNode deniro = new CheckboxTreeNode("Robert De Niro", movies); TreeNode scarface = new CheckboxTreeNode("mp3", "Scarface", pacino); TreeNode carlitosWay = new CheckboxTreeNode("mp3", "Carlito's Way", pacino); TreeNode goodfellas = new CheckboxTreeNode("mp3", "Goodfellas", deniro); TreeNode untouchables = new CheckboxTreeNode("mp3", "Untouchables", deniro); } @Test public void shouldPropagateDown() { TreeNode work = root.getChildren().get(0).getChildren().get(0); assertEquals("Work", work.getData()); work.setSelected(true); TreeNode expenses = work.getChildren().get(0); TreeNode resume = work.getChildren().get(1); assertTrue(expenses.isSelected()); assertTrue(resume.isSelected()); } @Test public void shouldPropagateUpWhenOneChildOfANodeIsSelected() { TreeNode document = root.getChildren().get(0); TreeNode work = document.getChildren().get(0); TreeNode expenses = work.getChildren().get(0); TreeNode resume = work.getChildren().get(1); expenses.setSelected(true); assertTrue(work.isPartialSelected()); assertTrue(document.isPartialSelected()); assertFalse(work.isSelected()); assertFalse(document.isSelected()); } @Test public void shouldPropagateUpWhenAllChildrenOfANodeIsSelected() { TreeNode document = root.getChildren().get(0); TreeNode work = document.getChildren().get(0); TreeNode expenses = work.getChildren().get(0); TreeNode resume = work.getChildren().get(1); expenses.setSelected(true); resume.setSelected(true); assertTrue(work.isSelected()); assertTrue(document.isPartialSelected()); assertFalse(document.isSelected()); } }