From: <jbo...@li...> - 2005-10-26 12:42:10
|
Author: aron.gombas Date: 2005-10-26 08:41:50 -0400 (Wed, 26 Oct 2005) New Revision: 1450 Added: trunk/labs/kosmos/src/test/hu/midori/kosmos/AbstractKosmosTest.java trunk/labs/kosmos/src/test/hu/midori/kosmos/server/AbstractKosmosServiceTest.java Modified: trunk/labs/kosmos/src/test/hu/midori/kosmos/server/cc/CcServiceTest.java trunk/labs/kosmos/src/test/hu/midori/kosmos/server/jira/JiraServiceTest.java trunk/labs/kosmos/src/test/hu/midori/kosmos/server/sf/SfServiceTest.java trunk/labs/kosmos/src/test/hu/midori/kosmos/server/svn/SvnServiceTest.java Log: Further unit test skeletons Added: trunk/labs/kosmos/src/test/hu/midori/kosmos/AbstractKosmosTest.java =================================================================== --- trunk/labs/kosmos/src/test/hu/midori/kosmos/AbstractKosmosTest.java 2005-10-25 17:48:52 UTC (rev 1449) +++ trunk/labs/kosmos/src/test/hu/midori/kosmos/AbstractKosmosTest.java 2005-10-26 12:41:50 UTC (rev 1450) @@ -0,0 +1,33 @@ +/* + * Kosmos. + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ +package hu.midori.kosmos; + +import java.util.Properties; + +import junit.framework.TestCase; + +import org.apache.log4j.PropertyConfigurator; + +/** + * Unit test. + * + * @author <a href="mailto:aro...@mi...">Aron Gombas</a> + * @version $Id$ + */ +public class AbstractKosmosTest extends TestCase { + public void setUp() throws Exception { + super.setUp(); + + // configure log4j programatically (it doesn't require new files in the webapp class-path) + Properties props = new Properties(); + props.put("log4j.rootLogger", "DEBUG, stdout"); + props.put("log4j.appender.stdout", "org.apache.log4j.ConsoleAppender"); + props.put("log4j.appender.stdout.layout", "org.apache.log4j.PatternLayout"); + props.put("log4j.appender.stdout.layout.ConversionPattern", "%-4r %-5p %c %x - %m%n" ); + PropertyConfigurator.configure(props); + } +} Added: trunk/labs/kosmos/src/test/hu/midori/kosmos/server/AbstractKosmosServiceTest.java =================================================================== --- trunk/labs/kosmos/src/test/hu/midori/kosmos/server/AbstractKosmosServiceTest.java 2005-10-25 17:48:52 UTC (rev 1449) +++ trunk/labs/kosmos/src/test/hu/midori/kosmos/server/AbstractKosmosServiceTest.java 2005-10-26 12:41:50 UTC (rev 1450) @@ -0,0 +1,19 @@ +/* + * Kosmos. + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ +package hu.midori.kosmos.server; + +import hu.midori.kosmos.AbstractKosmosTest; + +/** + * Unit test. + * + * @author <a href="mailto:aro...@mi...">Aron Gombas</a> + * @version $Id$ + */ +public class AbstractKosmosServiceTest extends AbstractKosmosTest { + // TODO add testing for caching, timestamping and such +} Modified: trunk/labs/kosmos/src/test/hu/midori/kosmos/server/cc/CcServiceTest.java =================================================================== --- trunk/labs/kosmos/src/test/hu/midori/kosmos/server/cc/CcServiceTest.java 2005-10-25 17:48:52 UTC (rev 1449) +++ trunk/labs/kosmos/src/test/hu/midori/kosmos/server/cc/CcServiceTest.java 2005-10-26 12:41:50 UTC (rev 1450) @@ -6,11 +6,57 @@ */ package hu.midori.kosmos.server.cc; +import hu.midori.kosmos.model.CcProject; +import hu.midori.kosmos.protocol.CcService; +import hu.midori.kosmos.server.AbstractKosmosServiceTest; + +import java.util.List; + /** * Unit test. * * @author <a href="mailto:aro...@mi...">Aron Gombas</a> * @version $Id$ */ -public class CcServiceTest {// TODO just pass in test logfiles and check the result returned +public class CcServiceTest extends AbstractKosmosServiceTest { + private CcService service = new CcServiceImpl(); + + /** TODO */ + public void testMostRecentFinder() { + // TODO + } + + /** Tests with an invalid path. */ + public void testInvalidPath() { + assertEquals(0, service.getProjects("nosuchpath").size()); + } + + public void testStandardLogs() {// TODO add these files to the repo and the src distro + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/ais"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/cargo-m2-trunk"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/commons-math"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/frifinans"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/gridportlets"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/gridsphere"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/gvlam"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/jboss-3.2"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/jboss-remoting"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/log4rss"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/mobicents-dailytckrun"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/mock-apis-trunk"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/openpacs"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/scarab-mysql"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/scarab-pgsql"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/weta-dfs"); + } + + // TODO add more logfiles + + /** TODO */ + public void testLog(String dir) { + List<CcProject> projects = service.getProjects(dir); + assertEquals(1, projects.size()); // one CC log contains exactly one project + + // TODO assert for properties + } } Modified: trunk/labs/kosmos/src/test/hu/midori/kosmos/server/jira/JiraServiceTest.java =================================================================== --- trunk/labs/kosmos/src/test/hu/midori/kosmos/server/jira/JiraServiceTest.java 2005-10-25 17:48:52 UTC (rev 1449) +++ trunk/labs/kosmos/src/test/hu/midori/kosmos/server/jira/JiraServiceTest.java 2005-10-26 12:41:50 UTC (rev 1450) @@ -6,11 +6,104 @@ */ package hu.midori.kosmos.server.jira; +import hu.midori.kosmos.model.JiraProject; +import hu.midori.kosmos.protocol.JiraService; +import hu.midori.kosmos.server.AbstractKosmosServiceTest; + +import java.util.List; + /** * Unit test. * * @author <a href="mailto:aro...@mi...">Aron Gombas</a> * @version $Id$ */ -public class JiraServiceTest {// TODO just pass in test URLs and check the result returned +public class JiraServiceTest extends AbstractKosmosServiceTest { + private JiraService service = new JiraServiceImpl(); + + /** Tests with invalid URL. */ + public void testInvalidUrl() { + assertEquals(0, service.getProjects("http://www.nosuchdomain.com/jira").size()); + } + + /** TODO */ + public void testAuthentication() { + // TODO implement after the authentication is implemented + } + + public void testApacheInstance() { + // TODO pass Apache URL to testInstance(); + } + + public void testAtlassianInstance() { + testPublicInstance("http://jira.atlassian.com/browse/COBJ"); + testPublicInstance("http://jira.atlassian.com/browse/CORE"); + testPublicInstance("http://jira.atlassian.com/browse/MAIL"); + testPublicInstance("http://jira.atlassian.com/browse/PLUG"); + testPublicInstance("http://jira.atlassian.com/browse/CONF"); + testPublicInstance("http://jira.atlassian.com/browse/JRA"); + testPublicInstance("http://jira.atlassian.com/browse/PERF"); + testPublicInstance("http://jira.atlassian.com/browse/SVN"); + testPublicInstance("http://jira.atlassian.com/browse/TST"); + } + + public void testCodeHausInstance() { + testPublicInstance("http://jira.codehaus.org/browse/ACL"); + testPublicInstance("http://jira.codehaus.org/browse/ACTIVEIO"); + testPublicInstance("http://jira.codehaus.org/browse/AWS"); + testPublicInstance("http://jira.codehaus.org/browse/ASP"); + testPublicInstance("http://jira.codehaus.org/browse/AJLIB"); + testPublicInstance("http://jira.codehaus.org/browse/ANNOGEN"); + testPublicInstance("http://jira.codehaus.org/browse/ASH"); + testPublicInstance("http://jira.codehaus.org/browse/AWARE"); + testPublicInstance("http://jira.codehaus.org/browse/BERKANO"); + testPublicInstance("http://jira.codehaus.org/browse/BLISSED"); + testPublicInstance("http://jira.codehaus.org/browse/BOO"); + testPublicInstance("http://jira.codehaus.org/browse/CARGO"); + } + + public void testJBossInstance() { + testPublicInstance("http://jira.jboss.com/jira/browse/JBQA"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBWIKI"); + testPublicInstance("http://jira.jboss.com/jira/browse/EJBTHREE"); + testPublicInstance("http://jira.jboss.com/jira/browse/HIBERNATE"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBAOP"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBAS"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBIDE"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBMESSAGING"); + testPublicInstance("http://jira.jboss.com/jira/browse/JGRP"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBTPL"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBDOCS"); + testPublicInstance("http://jira.jboss.com/jira/browse/JASSIST"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBADMCON"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBBENCH"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBBUILD"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBCACHE"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBCLUSTER"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBINSTALL"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBPM"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBLAB"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBMAIL"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBMICROCONT"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBPORTAL"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBPROFILER"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBREM"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBSEAM"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBSER"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBSHARP"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBWEB"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBXB"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBWS"); + testPublicInstance("http://jira.jboss.com/jira/browse/KOSMOS"); + } + + // TODO add further instances seen in the Atlassian pages + + /** TODO */ + protected void testPublicInstance(String url) { + List<JiraProject> projects = service.getProjects(url); + assertTrue(projects.size() > 0); + + // TODO assert for properties + } } Modified: trunk/labs/kosmos/src/test/hu/midori/kosmos/server/sf/SfServiceTest.java =================================================================== --- trunk/labs/kosmos/src/test/hu/midori/kosmos/server/sf/SfServiceTest.java 2005-10-25 17:48:52 UTC (rev 1449) +++ trunk/labs/kosmos/src/test/hu/midori/kosmos/server/sf/SfServiceTest.java 2005-10-26 12:41:50 UTC (rev 1450) @@ -8,51 +8,54 @@ import hu.midori.kosmos.model.SfRelease; import hu.midori.kosmos.protocol.SfService; +import hu.midori.kosmos.server.AbstractKosmosServiceTest; import java.util.List; -import java.util.Properties; -import org.apache.log4j.PropertyConfigurator; - -import junit.framework.TestCase; - /** * Unit test. * * @author <a href="mailto:aro...@mi...">Aron Gombas</a> * @version $Id$ */ -public class SfServiceTest extends TestCase { - SfService service = new SfServiceImpl(); - - public void setUp() throws Exception {// TODO move to AbstractTestCase - super.setUp(); - - // configure log4j programatically (it doesn't require new files in the webapp class-path) - Properties props = new Properties(); - props.put("log4j.rootLogger", "DEBUG, stdout"); - props.put("log4j.appender.stdout", "org.apache.log4j.ConsoleAppender"); - props.put("log4j.appender.stdout.layout", "org.apache.log4j.PatternLayout"); - props.put("log4j.appender.stdout.layout.ConversionPattern", "%-4r %-5p %c %x - %m%n" ); - PropertyConfigurator.configure(props); - } +public class SfServiceTest extends AbstractKosmosServiceTest { + private SfService service = new SfServiceImpl(); - /** Tests with a project that has releases. */ - public void testRelease() { - List<SfRelease> releases = service.getFileReleases("http://sourceforge.net/projects/struts"); - assertTrue(releases.size() > 0); - - // TODO assert for properties - // TODO test other service things + /** Tests with invalid URL. */ + public void testInvalidUrl() { + assertEquals(0, service.getFileReleases("http://sourceforge.net/projects/nosuchproject").size()); } /** Tests with a project that has no release yet. */ public void testNoRelease() { - assertEquals(0, service.getFileReleases("http://sourceforge.net/projects/pixie-perl")); + assertEquals(0, service.getFileReleases("http://sourceforge.net/projects/pixie-perl").size()); } - /** Tests with invalid URL. */ - public void testInvalidUrl() { - assertEquals(0, service.getFileReleases("http://sourceforge.net/projects/nosuchproject")); + public void testKosmosDependencyProjects() { + testProjectWithRelease("http://sourceforge.net/projects/cruisecontrol"); + testProjectWithRelease("http://sourceforge.net/projects/displaytag"); + testProjectWithRelease("http://sourceforge.net/projects/jfreechart"); + testProjectWithRelease("http://sourceforge.net/projects/jtidy"); + testProjectWithRelease("http://sourceforge.net/projects/saxon"); + testProjectWithRelease("http://www.sourceforge.net/projects/springframework"); } + + public void testJBossProjects() { + testProjectWithRelease("http://sourceforge.net/projects/jboss"); + } + + public void testKosmosToolProjects() { + testProjectWithRelease("http://sourceforge.net/projects/docbook"); + testProjectWithRelease("http://sourceforge.net/projects/junit"); + } + + // TODO test various projects here with long release list + + /** TODO */ + protected void testProjectWithRelease(String url) { + List<SfRelease> releases = service.getFileReleases(url); + assertTrue(releases.size() > 0); + + // TODO assert for properties + } } Modified: trunk/labs/kosmos/src/test/hu/midori/kosmos/server/svn/SvnServiceTest.java =================================================================== --- trunk/labs/kosmos/src/test/hu/midori/kosmos/server/svn/SvnServiceTest.java 2005-10-25 17:48:52 UTC (rev 1449) +++ trunk/labs/kosmos/src/test/hu/midori/kosmos/server/svn/SvnServiceTest.java 2005-10-26 12:41:50 UTC (rev 1450) @@ -6,11 +6,54 @@ */ package hu.midori.kosmos.server.svn; +import hu.midori.kosmos.model.SvnRepository; +import hu.midori.kosmos.protocol.SvnService; +import hu.midori.kosmos.server.AbstractKosmosServiceTest; + +import java.util.List; + /** * Unit test. * * @author <a href="mailto:aro...@mi...">Aron Gombas</a> * @version $Id$ */ -public class SvnServiceTest {// TODO just pass in test URLs and check the result returned +public class SvnServiceTest extends AbstractKosmosServiceTest { + private SvnService service = new SvnServiceImpl(); + + /** Tests with invalid URL. */ + public void testInvalidUrl() { + assertEquals(0, service.getRepositories("http://www.nosuchdomain.com/svn").size()); + } + + /** TODO */ + public void testAuthentication() { + // TODO implement after the authentication is implemented + } + + public void testApacheInstance() { + testPublicInstance("http://svn.apache.org/repos/asf/commons"); + testPublicInstance("http://svn.apache.org/repos/asf/db"); + testPublicInstance("http://svn.apache.org/repos/asf/incubator/agila"); + } + + public void testJBossInstance() { + testPublicInstance("http://anonsvn.labs.jboss.com/trunk/labs/demo"); + testPublicInstance("http://anonsvn.labs.jboss.com/trunk/labs/jbossprofiler"); + testPublicInstance("http://anonsvn.labs.jboss.com/trunk/labs/jbossweb"); + testPublicInstance("http://anonsvn.labs.jboss.com/trunk/labs/jrunit"); + testPublicInstance("http://anonsvn.labs.jboss.com/trunk/labs/kosmos"); + testPublicInstance("http://anonsvn.labs.jboss.com/trunk/labs/portletswap"); + testPublicInstance("http://anonsvn.labs.jboss.com/trunk/labs/reportingservices"); + } + + // TODO add more instances here + + /** TODO */ + protected void testPublicInstance(String url) { + List<SvnRepository> repositories = service.getRepositories(url); + assertTrue(repositories.size() > 0); + + // TODO assert for properties + } } |