Adding MenuDao.java, MenuDaoJena.java, MenuDaoJenaTest.java and menuForTest.n3
This commit is contained in:
parent
6fe5ac59a9
commit
e20e2af6c6
4 changed files with 274 additions and 0 deletions
|
@ -0,0 +1,88 @@
|
|||
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||
|
||||
package edu.cornell.mannlib.vitro.webapp.dao.jena;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import junit.framework.Assert;
|
||||
|
||||
import org.apache.log4j.Level;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.hp.hpl.jena.ontology.OntModel;
|
||||
import com.hp.hpl.jena.ontology.OntModelSpec;
|
||||
import com.hp.hpl.jena.rdf.model.Model;
|
||||
import com.hp.hpl.jena.rdf.model.ModelFactory;
|
||||
import com.hp.hpl.jena.rdf.model.impl.RDFDefaultErrorHandler;
|
||||
|
||||
import edu.cornell.mannlib.vitro.testing.AbstractTestClass;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.menu.Menu;
|
||||
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.menu.MenuItem;
|
||||
|
||||
|
||||
public class MenuDaoJenaTest extends AbstractTestClass {
|
||||
|
||||
OntModel displayModel;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
// Suppress error logging.
|
||||
setLoggerLevel(RDFDefaultErrorHandler.class, Level.OFF);
|
||||
|
||||
Model model = ModelFactory.createDefaultModel();
|
||||
InputStream in = MenuDaoJenaTest.class.getResourceAsStream("resources/menuForTest.n3");
|
||||
model.read(in,"","N3");
|
||||
displayModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM,model);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMenuItemTest(){
|
||||
MenuDaoJena menuDaoJena = new MenuDaoJena(new WebappDaoFactoryJena(displayModel));
|
||||
Menu menu = menuDaoJena.getMenu(VitroVocabulary.DISPLAY+"DefaultMenu", displayModel);
|
||||
|
||||
try{
|
||||
Class clz = UrlBuilder.class;
|
||||
Field f = clz.getDeclaredField( "contextPath" );
|
||||
f.setAccessible(true);
|
||||
f.set(null, "bogusUrlContextPath");
|
||||
}catch(Exception e){
|
||||
Assert.fail(e.toString());
|
||||
}
|
||||
|
||||
Assert.assertNotNull(menu);
|
||||
Assert.assertNotNull( menu.getItems() );
|
||||
Assert.assertEquals(5, menu.getItems().size());
|
||||
|
||||
//The nulls in getUrl() are from the UrlBuilder not being setup correctly.
|
||||
//it should be fine.
|
||||
|
||||
MenuItem item = menu.getItems().get(0);
|
||||
Assert.assertNotNull(item);
|
||||
Assert.assertEquals("Home",item.getLinkText());
|
||||
Assert.assertEquals("bogusUrlContextPath/home",item.getUrl());
|
||||
|
||||
item = menu.getItems().get(1);
|
||||
Assert.assertNotNull(item);
|
||||
Assert.assertEquals("People",item.getLinkText());
|
||||
Assert.assertEquals("bogusUrlContextPath/people",item.getUrl());
|
||||
|
||||
item = menu.getItems().get(2);
|
||||
Assert.assertNotNull(item);
|
||||
Assert.assertEquals("Publications",item.getLinkText());
|
||||
Assert.assertEquals("bogusUrlContextPath/publications",item.getUrl());
|
||||
|
||||
item = menu.getItems().get(3);
|
||||
Assert.assertNotNull(item);
|
||||
Assert.assertEquals("Events",item.getLinkText());
|
||||
Assert.assertEquals("bogusUrlContextPath/events",item.getUrl());
|
||||
|
||||
item = menu.getItems().get(4);
|
||||
Assert.assertNotNull(item);
|
||||
Assert.assertEquals("Organizations",item.getLinkText());
|
||||
Assert.assertEquals("bogusUrlContextPath/organizations",item.getUrl());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,84 @@
|
|||
# $This file is distributed under the terms of the license in /doc/license.txt$
|
||||
|
||||
@prefix owl: <http://www.w3.org/2002/07/owl#> .
|
||||
@prefix display: <http://vitro.mannlib.cornell.edu/ontologies/display/1.1#> .
|
||||
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
||||
@prefix core: <http://vivoweb.org/ontology/core#> .
|
||||
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
||||
|
||||
### This file is for the test MenuDaoJenaTest.java it is derived from vivoDefaultMenu.n3 in the vivo product.
|
||||
|
||||
#### Default Menu ####
|
||||
|
||||
display:DefaultMenu
|
||||
a display:Menu ;
|
||||
display:hasElement display:EventsMenuItem ;
|
||||
display:hasElement display:HomeMenuItem ;
|
||||
display:hasElement display:OrganizationsMenuItem ;
|
||||
display:hasElement display:PeopleMenuItem ;
|
||||
display:hasElement display:PublicationsMenuItem .
|
||||
|
||||
#### Menu Items for Default Menu ####
|
||||
|
||||
|
||||
display:HomeMenuItem
|
||||
a display:NavigationElement ;
|
||||
display:menuPosition "1";
|
||||
display:linkText "Home";
|
||||
display:toPage display:Home .
|
||||
|
||||
display:PeopleMenuItem
|
||||
a display:NavigationElement ;
|
||||
display:menuPosition "2";
|
||||
display:linkText "People";
|
||||
display:toPage display:People .
|
||||
|
||||
display:PublicationsMenuItem
|
||||
a display:NavigationElement ;
|
||||
display:menuPosition "3";
|
||||
display:linkText "Publications";
|
||||
display:toPage display:Publications .
|
||||
|
||||
display:EventsMenuItem
|
||||
a display:NavigationElement ;
|
||||
display:menuPosition "4";
|
||||
display:linkText "Events";
|
||||
display:toPage display:Events .
|
||||
|
||||
display:OrganizationsMenuItem
|
||||
a display:NavigationElement ;
|
||||
display:menuPosition "5";
|
||||
display:linkText "Organizations";
|
||||
display:toPage display:Organizations .
|
||||
|
||||
########## Pages ############
|
||||
|
||||
display:Home
|
||||
a display:Page ;
|
||||
display:requiresBodyTemplate "home.ftl" ;
|
||||
display:title "Home" ;
|
||||
display:urlMapping "/home" .
|
||||
|
||||
display:Events
|
||||
a display:Page ;
|
||||
display:requiresBodyTemplate "Events.ftl" ;
|
||||
display:title "Events" ;
|
||||
display:urlMapping "/events" .
|
||||
|
||||
display:Organizations
|
||||
a display:Page ;
|
||||
display:requiresBodyTemplate "organizations.ftl" ;
|
||||
display:title "Organizations" ;
|
||||
display:urlMapping "/organizations" .
|
||||
|
||||
display:People
|
||||
a display:Page ;
|
||||
display:requiresBodyTemplate "people.ftl" ;
|
||||
display:title "People" ;
|
||||
display:urlMapping "/people" .
|
||||
|
||||
display:Publications
|
||||
a display:Page ;
|
||||
display:requiresBodyTemplate "publications.ftl" ;
|
||||
display:title "Publications" ;
|
||||
display:urlMapping "/publications" .
|
Loading…
Add table
Add a link
Reference in a new issue