package org.sakaiproject.search.tool; //import java.util.ArrayList; import java.util.List; import java.util.Properties; import org.jmock.Mock; import org.jmock.cglib.MockObjectTestCase; import org.sakaiproject.authz.api.SecurityService; import org.sakaiproject.component.api.ServerConfigurationService; import org.sakaiproject.search.api.SearchService; import org.sakaiproject.tool.api.Placement; import org.sakaiproject.tool.api.ToolManager; //import junit.framework.TestCase; public class SearchBeanImplTest extends MockObjectTestCase { SearchBeanImpl sbi = null; Mock mockSearchService = null; Mock mockToolManager = null; Mock mockPlacement = null; Mock mockProperties = null; Mock mockSecurityService = null; Mock mockServerConfiguration = null; String defaultSiteId = "defaultSiteId"; protected void setUp() throws Exception { super.setUp(); // sbi = new SearchBeanImpl("defaultSiteId"); mockSearchService = mock(SearchService.class,"searchService"); mockToolManager = mock(ToolManager.class,"toolManager"); mockPlacement = mock(Placement.class,"placement"); mockProperties = mock(Properties.class,"properties"); mockSecurityService = mock(SecurityService.class,"securityService"); mockServerConfiguration = mock(ServerConfigurationService.class, "serverconfigurationService"); sbi = new SearchBeanImpl(defaultSiteId,(SearchService) mockSearchService.proxy(), "defaultSearch", (ToolManager) mockToolManager.proxy(), (SecurityService)mockSecurityService.proxy(), (ServerConfigurationService)mockServerConfiguration.proxy()); } // extractPropertiesFromTool public void testExtractPropertiesFromToolPlacement() { mockToolManager.expects(once()).method("getCurrentPlacement").will(returnValue(mockPlacement.proxy())); mockPlacement.expects(once()).method("getPlacementConfig").will(returnValue(mockProperties.proxy())); mockProperties.expects(once()).method("isEmpty").will(returnValue(true)); mockPlacement.expects(once()).method("getConfig").will(returnValue(mockProperties.proxy())); assertNotNull(sbi.extractPropertiesFromTool()); } public void testExtractPropertiesFromToolCurrentPlacement() { mockToolManager.expects(once()).method("getCurrentPlacement").will(returnValue(mockPlacement.proxy())); mockPlacement.expects(once()).method("getPlacementConfig").will(returnValue(mockProperties.proxy())); mockProperties.expects(once()).method("isEmpty").will(returnValue(false)); assertNotNull(sbi.extractPropertiesFromTool()); } // extractSiteIdsFromToolProperty public void testExtractSiteIdsFromPropertiesNoProperties() { mockProperties.expects(once()).method("getProperty").with(eq("search_site_ids")).will(returnValue(null)); String [] s = sbi.extractSiteIdsFromProperties((Properties) mockProperties.proxy()); assertTrue("array of one empty siteIds",s.length==1); assertTrue("siteId is empty","".equals(s[0])); } public void testExtractSiteIdsFromPropertiesEmptyProperties() { mockProperties.expects(once()).method("getProperty").with(eq("search_site_ids")).will(returnValue("")); String [] s = sbi.extractSiteIdsFromProperties((Properties) mockProperties.proxy()); assertTrue("array of one empty siteIds",s.length==1); assertTrue("siteId is empty","".equals(s[0])); } public void testExtractSiteIdsFromProperties1SiteId() { mockProperties.expects(once()).method("getProperty").with(eq("search_site_ids")).will(returnValue("SiteIdOne")); String [] s = sbi.extractSiteIdsFromProperties((Properties) mockProperties.proxy()); assertTrue("array of one siteid",s.length==1); assertTrue("siteId is default","SiteIdOne".equals(s[0])); } public void testExtractSiteIdsFromProperties2SiteId() { mockProperties.expects(once()).method("getProperty").with(eq("search_site_ids")).will(returnValue("SiteIdOne,SiteIdTwo")); String [] s = sbi.extractSiteIdsFromProperties((Properties) mockProperties.proxy()); assertTrue("array of two siteIds",s.length==2); assertTrue("siteId has two entries","SiteIdOne".equals(s[0])); assertTrue("siteId has two entries","SiteIdTwo".equals(s[1])); } public void testExtractSiteIdsFromProperties2SiteIdBlanks() { mockProperties.expects(once()).method("getProperty").with(eq("search_site_ids")).will(returnValue(" SiteIdOne , SiteIdTwo ")); String [] s = sbi.extractSiteIdsFromProperties((Properties) mockProperties.proxy()); assertTrue("array of siteIds with blanks",s.length==2); assertTrue("siteId has two entries","SiteIdOne".equals(s[0])); assertTrue("siteId has two entries","SiteIdTwo".equals(s[1])); } public void testExtractSiteIdsFromPropertiesJustBlank() { mockProperties.expects(once()).method("getProperty").with(eq("search_site_ids")).will(returnValue(" ")); String [] s = sbi.extractSiteIdsFromProperties((Properties) mockProperties.proxy()); assertTrue("single blank siteid",s.length==1); assertTrue("siteId is empty","".equals(s[0])); } // Not tested explicitly as very simple and just calls other tested methods. // public void GetToolPropertySiteIds() { // fail("not yet tested"); // } // If no ids from tool properties, will get only current site id public void testGetSearchSitesNullSiteIdsArray() { List l = sbi.getSearchSites(null); assertTrue("no property site ids",l.size()==1); assertEquals("default site id",defaultSiteId,l.get(0)); } public void testGetSearchSitesEmptySiteIdsArray() { List l = sbi.getSearchSites(new String[] {}); assertTrue("no property site ids",l.size()==1); assertEquals("default site id",defaultSiteId,l.get(0)); } public void testGetSearchSitesEmptyValueSiteIdsArray() { List l = sbi.getSearchSites(new String[] {""}); assertTrue("no property site ids",l.size()==1); assertEquals("default site id",defaultSiteId,l.get(0)); } public void testGetSearchSitesOneValueSiteIdsArray() { List l = sbi.getSearchSites(new String[] {"toolProp1"}); assertTrue("no property site ids",l.size()==2); assertEquals("default site id",defaultSiteId,l.get(0)); assertEquals("toolProp1","toolProp1",l.get(1)); } public void testGetSearchSitesTwoValueSiteIdsArray() { List l = sbi.getSearchSites(new String[] {"toolSiteId1","toolSiteId2"}); assertTrue("no property site ids",l.size()==3); assertEquals("default site id",defaultSiteId,l.get(0)); assertEquals("toolSiteId1","toolSiteId1",l.get(1)); assertEquals("toolSiteId2","toolSiteId2",l.get(2)); } } //Mock mockSubscriber = mock(Subscriber.class); //Publisher publisher = new Publisher(); //publisher.add( (Subscriber)mockSubscriber.proxy() );