Adding MenuDao.java, MenuDaoJena.java, MenuDaoJenaTest.java and menuForTest.n3

This commit is contained in:
bdc34 2010-11-23 21:25:33 +00:00
parent 6fe5ac59a9
commit e20e2af6c6
4 changed files with 274 additions and 0 deletions

View file

@ -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());
}
}

View file

@ -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" .