/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
* 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.dashbuilder.navigation;
import org.dashbuilder.json.JsonObject;
import org.dashbuilder.navigation.impl.NavTreeBuilder;
import org.dashbuilder.navigation.json.NavTreeJSONMarshaller;
import org.junit.Test;
import static org.junit.Assert.*;
public class NavTreeJsonTest {
public static final NavTree NAV_TREE = new NavTreeBuilder()
.item("1", "name1", "desc1", true, "ctx1")
.item("2", "name2", "desc2", false, "ctx2")
.divider()
.group("3", "name3", "desc3", true)
.item("4", "name4", "desc4", true, "ctx4")
.build();
@Test
public void testNavTreeMarshalling() {
NavTreeJSONMarshaller jsonMarshaller = NavTreeJSONMarshaller.get();
JsonObject _jsonObj = jsonMarshaller.toJson(NAV_TREE);
assertNotNull(_jsonObj.toString());
NavTree navTree = jsonMarshaller.fromJson(_jsonObj);
assertEquals(navTree.getRootItems().size(), 4);
NavItem navItem = navTree.getItemById("1");
assertNotNull(navItem);
assertEquals(navItem.getType(), NavItem.Type.ITEM);
assertEquals(navItem.getName(), "name1");
assertEquals(navItem.getDescription(), "desc1");
assertEquals(navItem.isModifiable(), true);
assertEquals(navItem.getContext(), "ctx1");
navItem = navTree.getItemById("2");
assertNotNull(navItem);
assertEquals(navItem.getType(), NavItem.Type.ITEM);
assertEquals(navItem.getName(), "name2");
assertEquals(navItem.getDescription(), "desc2");
assertEquals(navItem.isModifiable(), false);
assertEquals(navItem.getContext(), "ctx2");
navItem = navTree.getItemById("3");
assertNotNull(navItem);
assertEquals(navItem.getType(), NavItem.Type.GROUP);
assertEquals(navItem.getName(), "name3");
assertEquals(navItem.getDescription(), "desc3");
assertEquals(navItem.isModifiable(), true);
navItem = navTree.getItemById("4");
assertNotNull(navItem);
assertEquals(navItem.getType(), NavItem.Type.ITEM);
assertEquals(navItem.getName(), "name4");
assertEquals(navItem.getDescription(), "desc4");
assertEquals(navItem.isModifiable(), true);
assertEquals(navItem.getContext(), "ctx4");
assertEquals(navItem.getParent(), navTree.getItemById("3"));
}
}