package org.skyscreamer.yoga.listener; import java.io.IOException; import java.util.Map; import junit.framework.Assert; import org.junit.Test; import org.skyscreamer.yoga.configuration.DefaultEntityConfigurationRegistry; import org.skyscreamer.yoga.mapper.YogaRequestContext; import org.skyscreamer.yoga.model.ObjectMapHierarchicalModelImpl; import org.skyscreamer.yoga.selector.CoreSelector; import org.skyscreamer.yoga.selector.SelectorResolver; import org.skyscreamer.yoga.test.model.basic.BasicTestDataLeaf; import org.skyscreamer.yoga.test.util.DummyHttpServletRequest; import org.skyscreamer.yoga.test.util.DummyHttpServletResponse; public class NavigationLinksListenerTest { static YogaRequestContext requestContext = new YogaRequestContext( "map", new SelectorResolver(), new DummyHttpServletRequest(), new DummyHttpServletResponse() ); @Test public void testBasic() throws IOException { BasicTestDataLeaf leaf = new BasicTestDataLeaf(); ObjectMapHierarchicalModelImpl model = new ObjectMapHierarchicalModelImpl(); RenderingEvent<BasicTestDataLeaf> event = new RenderingEvent<BasicTestDataLeaf>( RenderingEventType.POJO_CHILD, model, leaf, BasicTestDataLeaf.class, requestContext, new CoreSelector( new DefaultEntityConfigurationRegistry() ) ); new NavigationLinksListener().eventOccurred( event ); Map<String, Object> objectTree = model.getUnderlyingModel(); Map<String, Object> navLinks = getMap( objectTree, "navigationLinks" ); Assert.assertNotNull( navLinks ); Map<String, Object> otherMap = getMap( navLinks, "other" ); Assert.assertNotNull( otherMap ); Assert.assertEquals( "/basic-leaf/0.map?selector=other", otherMap.get( "href" ) ); } @SuppressWarnings("unchecked") private Map<String, Object> getMap( Map<String, Object> map, String key ) { return (Map<String, Object>) map.get( key ); } }