{
Site portal = session.getWorkspace().getSite(ObjectType.PORTAL_SITE, "test");
assertNotNull(portal);
//
Navigation rootNavigation = portal.getRootNavigation();
assertNotNull(rootNavigation);
//
Navigation defaultNav = rootNavigation.getChild("default");
//
Attributes defaultAttrs = defaultNav.getAttributes();
assertEquals(1, (int)defaultAttrs.getInteger("priority"));
//
Collection<? extends Navigation> childrenNavigations = defaultNav.getChildren();
assertNotNull(childrenNavigations);
assertEquals(2, childrenNavigations.size());
Iterator<? extends Navigation> i = childrenNavigations.iterator();
//
assertTrue(i.hasNext());
Navigation nodeNavigation = i.next();
assertNotNull(nodeNavigation);
assertEquals(0, nodeNavigation.getChildren().size());
assertEquals("node_name", nodeNavigation.getName());
Described nodeDescribed = nodeNavigation.adapt(Described.class);
assertEquals("node_label", nodeDescribed.getName());
Attributes nodeAttrs = nodeNavigation.getAttributes();
assertEquals("node_uri", nodeAttrs.getString("uri"));
assertEquals("node_icon", nodeAttrs.getString("icon"));
//
assertTrue(nodeNavigation.isAdapted(Visible.class));
Visible visible = nodeNavigation.adapt(Visible.class);
GregorianCalendar start = new GregorianCalendar(2000, 2, 21, 1, 33, 0);
start.setTimeZone(TimeZone.getTimeZone("UTC"));
assertEquals(start.getTime(), visible.getStartPublicationDate());
GregorianCalendar end = new GregorianCalendar(2009, 2, 21, 1, 33, 0);
end.setTimeZone(TimeZone.getTimeZone("UTC"));
assertEquals(end.getTime(), visible.getEndPublicationDate());
assertEquals(Visibility.TEMPORAL, visible.getVisibility());
//
Link link = nodeNavigation.getLink();
assertNotNull(link);
}