Skip to content

Commit 0f9cf80

Browse files
gselzerctrueden
authored andcommitted
Add subpackage dependence integration test
1 parent c00a982 commit 0f9cf80

6 files changed

+151
-2
lines changed

src/test/java/org/scijava/packages/plugin/NoPackageCyclesRuleIntegrationTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717

1818
public class NoPackageCyclesRuleIntegrationTest {
1919
private static final URL FITNESSE_TARGET_FOLDER = getResource("fitnesse-target");
20-
private static final URL FITNESSE_EXPECTED_OUTPUT = getResource("fitnesse-expected-output.txt");
20+
private static final URL FITNESSE_EXPECTED_OUTPUT = getResource("fitnesse-expected-output-package-cycle.txt");
2121
private static final URL JUNIT_TARGET_FOLDER = getResource("junit-target");
22-
private static final URL JUNIT_EXPECTED_OUTPUT = getResource("junit-expected-output.txt");
22+
private static final URL JUNIT_EXPECTED_OUTPUT = getResource("junit-expected-output-package-cycle.txt");
2323

2424
private NoPackageCyclesRule rule;
2525
private EnforcerRuleHelperMock helper;
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package org.scijava.packages.plugin;
2+
3+
import static org.junit.Assert.assertEquals;
4+
import static org.junit.Assert.fail;
5+
6+
import java.io.File;
7+
import java.io.IOException;
8+
import java.net.URISyntaxException;
9+
import java.net.URL;
10+
11+
import org.apache.commons.io.IOUtils;
12+
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
13+
import org.junit.Before;
14+
import org.junit.Test;
15+
import org.scijava.packages.plugin.NoPackageCyclesRule;
16+
import org.scijava.packages.plugin.mock.EnforcerRuleHelperMock;
17+
18+
public class NoSubpackageDependenceRuleIntegrationTest {
19+
private static final URL FITNESSE_TARGET_FOLDER = getResource("fitnesse-target");
20+
private static final URL FITNESSE_EXPECTED_OUTPUT = getResource("fitnesse-expected-output-subpackage-dependence.txt");
21+
private static final URL JUNIT_TARGET_FOLDER = getResource("junit-target");
22+
private static final URL JUNIT_EXPECTED_OUTPUT = getResource("junit-expected-output-subpackage-dependence.txt");
23+
24+
private NoSubpackageDependenceRule rule;
25+
private EnforcerRuleHelperMock helper;
26+
27+
@Before
28+
public void setUp() throws Exception {
29+
rule = new NoSubpackageDependenceRule();
30+
helper = new EnforcerRuleHelperMock();
31+
}
32+
33+
@Test
34+
public void fitnesseIntegrationTest() throws Exception {
35+
assertPackageCycles(FITNESSE_TARGET_FOLDER, FITNESSE_EXPECTED_OUTPUT);
36+
}
37+
38+
@Test
39+
public void junitIntegrationTest() throws Exception {
40+
assertPackageCycles(JUNIT_TARGET_FOLDER, JUNIT_EXPECTED_OUTPUT);
41+
}
42+
43+
private void assertPackageCycles(URL targetFolder, URL expectedOutput) throws URISyntaxException, IOException {
44+
helper.setTestClassesDir(new File("non-existent"));
45+
helper.setClassesDir(new File(targetFolder.toURI()));
46+
try {
47+
rule.execute(helper);
48+
fail("expected EnforcerRuleException");
49+
} catch (EnforcerRuleException e) {
50+
// using assertEquals to get a nice comparison editor in eclipse
51+
assertEquals(getExpectedOutput(expectedOutput), e.getMessage());
52+
}
53+
}
54+
55+
private String getExpectedOutput(URL expectedOutput) throws IOException {
56+
return IOUtils.toString(expectedOutput.openStream()).replaceAll("\r", "");
57+
}
58+
59+
private static URL getResource(String path) {
60+
return Thread.currentThread().getContextClassLoader().getResource(path);
61+
}
62+
}

src/test/resources/fitnesse-expected-output.txt renamed to src/test/resources/fitnesse-expected-output-package-cycle.txt

File renamed without changes.
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
Some packages depend on subpackages:
2+
3+
Package fit depends on subpackages:
4+
fit.exception (ActionFixture, Binding, Binding$RecallBinding, BindingTest, CannotLoadFixtureTest, FitMatcher, FitServer, Fixture, Fixture$CellComparator, FixtureClass, FixtureLoader, Parse, ParseTest)
5+
fit.testFxtr (CannotLoadFixtureTest)
6+
7+
Package fit.decorator depends on subpackages:
8+
fit.decorator.exceptions (CopyAndAppendLastRow, CopyAndAppendLastRowTest, FixtureDecorator, FixtureDecoratorTestCase$2, IncrementColumnsValue, IncrementColumnsValueTest, Loop, LoopTest)
9+
fit.decorator.util (CopyAndAppendLastRow, CopyAndAppendLastRowTest, FixtureDecorator, FixtureDecoratorTestCase, FixtureDecoratorTestCase$1, IncrementColumnsValue, IncrementColumnsValueTest, LoopTest, TestFixture)
10+
11+
Package fitnesse depends on subpackages:
12+
fitnesse.authentication (ComponentFactory, ComponentFactoryTest, FitNesseContext, FitNesseContext$Builder, FitNesseExpediter, FitNesseExpediterTest$StoneWallAuthenticator)
13+
fitnesse.components (FitNesseContext, FitNesseContext$Builder, FitNesseExpediter, FitNesseServerTest)
14+
fitnesse.http (FitNesse, FitNesseExpediter, FitNesseExpediter$1, FitNesseExpediterTest, FitNesseExpediterTest$2, FitNesseExpediterTest$StoneWallAuthenticator, FitNesseServerTest, Responder, Shutdown, ShutdownTest)
15+
fitnesse.responders (ComponentFactory, ComponentFactoryTest, ComponentFactoryTest$DummyPlugin, FitNesseContext, FitNesseExpediter)
16+
fitnesse.responders.editing (ComponentFactory, ComponentFactoryTest, ComponentFactoryTest$DummyPlugin, ComponentFactoryTest$TestContentFilter)
17+
fitnesse.responders.run (FitNesseContext)
18+
fitnesse.socketservice (FitNesse, FitNesseServer)
19+
fitnesse.testsystems.slim (ComponentFactoryTest, ComponentFactoryTest$TestSlimTable)
20+
fitnesse.testsystems.slim.tables (ComponentFactory, ComponentFactoryTest, ComponentFactoryTest$TestSlimTable)
21+
fitnesse.testutil (ComponentFactoryTest, FitNesseExpediterTest, FitNesseServerTest)
22+
fitnesse.util (FitNesse, FitNesseExpediterTest, FitNesseServerTest)
23+
fitnesse.wiki (ComponentFactory, ComponentFactoryTest, ComponentFactoryTest$DummyPlugin, FitNesseContext, FitNesseContext$Builder, FitNesseExpediterTest, FitNesseServerTest, WikiPageFactory)
24+
fitnesse.wiki.zip (ComponentFactory, ComponentFactoryTest)
25+
fitnesse.wikitext.parser (ComponentFactory, ComponentFactoryTest, ComponentFactoryTest$DummyPlugin)
26+
27+
Package fitnesse.responders depends on subpackages:
28+
fitnesse.responders.editing (ResponderFactory, ResponderFactoryTest, WikiPageResponder)
29+
fitnesse.responders.files (ResponderFactory, ResponderFactoryTest)
30+
fitnesse.responders.refactoring (ResponderFactory, ResponderFactoryTest)
31+
fitnesse.responders.run (ResponderFactory, ResponderFactoryTest, WikiImportTestEventListener, WikiImportTestEventListener$TestEventProcessor, WikiImportTestEventListenerTest$MockSuiteResponder, WikiImportTestEventListenerTest$MockTestResponder)
32+
fitnesse.responders.search (ResponderFactory, ResponderFactoryTest)
33+
fitnesse.responders.templateUtilities (DefaultResponder, ErrorResponder, NotFoundResponder, PageFactory, ShutdownResponder, WikiImportingResponder, WikiPageResponder)
34+
fitnesse.responders.testHistory (ResponderFactory, ResponderFactoryTest)
35+
fitnesse.responders.versions (ResponderFactory, ResponderFactoryTest)
36+
37+
Package fitnesse.responders.run depends on subpackages:
38+
fitnesse.responders.run.formatters (JavaFormatter, SuiteResponder, SuiteResponder$1, SuiteXmlFormatter, TestResponder, TestResponder$1, TestResponder$2, TestResponder$HistoryWriterFactory)
39+
40+
Package fitnesse.slim depends on subpackages:
41+
fitnesse.slim.converters (ConverterSupport, ConverterTest, MethodExecutionResult, SlimMethodInvocationTestBase, StatementExecutor)
42+
fitnesse.slim.fixtureInteraction (MethodExecutor, SlimExecutionContext, SlimService)
43+
fitnesse.slim.instructions (ListExecutor$Executive, SlimClient, SlimClient$1, SlimClient$ToListExecutor, SlimServiceTestBase, StatementExecutorInterface)
44+
fitnesse.slim.protocol (SlimClient, SlimServer)
45+
fitnesse.slim.test (ConverterTest, SlimInstanceCreationTest, SlimMethodInvocationTest, SlimMethodInvocationTestBase)
46+
47+
Package fitnesse.testsystems depends on subpackages:
48+
fitnesse.testsystems.fit (TestSystemGroup)
49+
fitnesse.testsystems.slim (TestSystemGroup)
50+
fitnesse.testsystems.slim.results (TestSystem, TestSystemListener)
51+
fitnesse.testsystems.slim.tables (TestSystem, TestSystemListener)
52+
53+
Package fitnesse.testsystems.slim depends on subpackages:
54+
fitnesse.testsystems.slim.results (HtmlTable, HtmlTable$Cell, SlimTestSystem, SlimTestSystemTest$DummyListener, Table)
55+
fitnesse.testsystems.slim.tables (HtmlSlimTestSystem, HtmlTable, SlimTestContext, SlimTestContextImpl, SlimTestSystem, SlimTestSystemTest$DummyListener, Table, Table$CellContentSubstitution)
56+
57+
Package fitnesse.wiki depends on subpackages:
58+
fitnesse.wiki.zip (FileSystemPage, FileSystemPageZipFileVersioningTest)
59+
fitnesse.wikitext (WikiPageProperties)
60+
fitnesse.wikitext.parser (FileSystemPage, PageData, PageData$1, PageRepository, PathParser, ReadOnlyPageData, WikiWordReference)
61+
62+
Package fitnesse.wikitext depends on subpackages:
63+
fitnesse.wikitext.parser (PerformanceTest)
64+
fitnesse.wikitext.test (PerformanceTest)
65+
66+
Package util depends on subpackages:
67+
fitnesse.testutil (TemplateUtilTest)
68+
java.util (Clock, ClockTest, CommandLine, DateAlteringClock, DateAlteringClockTest, DateTimeUtil, FileUtil, FormattedExpression, ListUtility, MemoryFileSystem, Option, StringUtil, SystemTimeKeeper, TemplateUtil, TemplateUtilTest, TestTimeKeeper, TimeKeeper, TimeMeasurement, TimeMeasurementTest, WildcardTest)
69+
java.util.concurrent (CommandLine)
70+
java.util.regex (CommandLine, EnvironmentVariableTool, FormattedExpression, GracefulNamer, RegexTestCase)
File renamed without changes.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
Some packages depend on subpackages:
2+
3+
Package org.junit depends on subpackages:
4+
org.junit.internal (Assert, Assume)
5+
org.junit.runners (FixMethodOrder)
6+
7+
Package org.junit.experimental.theories depends on subpackages:
8+
org.junit.experimental.theories.internal (FromDataPoints, Theories$TheoryAnchor, Theories$TheoryAnchor$1, Theories$TheoryAnchor$1$1, Theories$TheoryAnchor$2)
9+
10+
Package org.junit.runner depends on subpackages:
11+
org.junit.runner.manipulation (Request)
12+
org.junit.runner.notification (JUnitCore, Result, Result$Listener, Runner)
13+
org.junit.runners (Computer)
14+
org.junit.runners.model (Computer, Computer$1, Request)
15+
16+
Package org.junit.runners depends on subpackages:
17+
org.junit.runners.model (BlockJUnit4ClassRunner, JUnit4, Parameterized, Parameterized$TestClassRunnerForParameters, ParentRunner, ParentRunner$1, ParentRunner$2, Suite)

0 commit comments

Comments
 (0)