package org.jggug.hudson.plugins.gcrawler.crawlers; import static org.easymock.EasyMock.createMock; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.replay; import static org.easymock.EasyMock.verify; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.jggug.hudson.plugins.gcrawler.GrailsProjectInfo; import org.jggug.hudson.plugins.gcrawler.scm.RepositoryException; import org.jggug.hudson.plugins.gcrawler.scm.RepositoryWrapper; import org.junit.Test; public class GrailsProjectCrawlerTaskTest { @Test public void test_isUpdated_greaterThan() throws RepositoryException { RepositoryWrapper repository = createMock(RepositoryWrapper.class); expect(repository.getLatestRevision()).andReturn(3L); replay(repository); GrailsProjectCrawlerTask task = createTask(repository); GrailsProjectInfo info = new GrailsProjectInfo(); info.setRevision(2); assertTrue(task.isUpdated(info)); verify(repository); } @Test public void isUpdated_equal() throws RepositoryException { RepositoryWrapper repository = createMock(RepositoryWrapper.class); expect(repository.getLatestRevision()).andReturn(2L); replay(repository); GrailsProjectCrawlerTask task = createTask(repository); GrailsProjectInfo info = new GrailsProjectInfo(); info.setRevision(2); assertFalse(task.isUpdated(info)); verify(repository); } @Test public void isUpdated_lessThan() throws RepositoryException { RepositoryWrapper repository = createMock(RepositoryWrapper.class); expect(repository.getLatestRevision()).andReturn(1L); replay(repository); GrailsProjectCrawlerTask task = createTask(repository); GrailsProjectInfo info = new GrailsProjectInfo(); info.setRevision(2); assertTrue(task.isUpdated(info)); verify(repository); } // TODO // @Test // public void setupApplicationProperties() { // GrailsProjectInfo info = new GrailsProjectInfo(); // String text = // "app.version=0.1\n" + // "app.grails.version=1.1.1\n" + // "app.name=GCrawler\n" + // "app.servlet.version=2.4\n" + // "plugins.foo=0.1\n" + // "plugins.bar=1.0-SNAPSHOT"; // // task.setupProjectInfo(info, text); // assertEquals("GCrawler", info.getAppName()); // assertEquals("1.1.1", info.getGrailsVersion()); // assertEquals("2.4", info.getServletVersion()); // assertEquals("0.1", info.getVersion()); // assertEquals(Arrays.asList("foo-0.1", "bar-1.0-SNAPSHOT"), info.getPlugins()); // } // // @Test // public void setupApplicationProperties_NoPlugins() { // GrailsProjectInfo info = new GrailsProjectInfo(); // String text = // "app.version=0.1\n" + // "app.grails.version=1.1.1\n" + // "app.name=GCrawler\n" + // "app.servlet.version=2.4"; // // task.setupProjectInfo(info, text); // assertEquals("GCrawler", info.getAppName()); // assertEquals("1.1.1", info.getGrailsVersion()); // assertEquals("2.4", info.getServletVersion()); // assertEquals("0.1", info.getVersion()); // assertTrue(info.getPlugins().isEmpty()); // } private GrailsProjectCrawlerTask createTask(RepositoryWrapper repository) { return new GrailsProjectCrawlerTask(null, null, null, repository) { @Override protected String getDomain() { return ""; } @Override protected String getProjectUrl(GrailsProjectInfo info) { return ""; } }; } }