MainTest.java
/* *******************************************************************
* Copyright (c) 2004 Contributors.
* All rights reserved.
* This program and the accompanying materials are made available
* under the terms of the Eclipse Public License v 2.0
* which accompanies this distribution and is available at
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
*
* Contributors:
* Wes Isberg initial implementation
* ******************************************************************/
package org.aspectj.tools.ajc;
import org.aspectj.bridge.AbortException;
import java.util.ArrayList;
import java.util.List;
public class MainTest extends AjcTestCase {
public void testBareMainUsage() {
List<String> fails = new ArrayList<>();
List<String> errors = new ArrayList<>();
List<String> warnings = new ArrayList<>();
List<String> infos = new ArrayList<>();
List<String> usages = new ArrayList<>();
Main.bareMain(new String[] { "-?" }, false, fails, errors, warnings, infos, usages);
assertNotNull(
"usage text not found in compiler output",
usages.stream()
.filter(message -> message.contains("AspectJ-specific options:"))
.findFirst()
.orElse(null)
);
}
public void testBareMainUsageX() {
List<String> fails = new ArrayList<>();
List<String> errors = new ArrayList<>();
List<String> warnings = new ArrayList<>();
List<String> infos = new ArrayList<>();
List<String> usages = new ArrayList<>();
Main.bareMain(new String[] { "-X" }, false, fails, errors, warnings, infos, usages);
assertNotNull(
"usage text not found in compiler output",
usages.stream()
.filter(message -> message.contains("AspectJ-specific non-standard options:"))
.findFirst()
.orElse(null)
);
}
public void testAjcUsageX() {
CompilationResult compilationResult = ajc(null, new String[] { "-X" });
MessageSpec messageSpec = new MessageSpec(
null, null, null, null, null,
newMessageList(new Message("AspectJ-specific non-standard options:"))
);
assertMessages(compilationResult, "Expecting xoptions usage message", messageSpec);
}
public void testMainMessageHolderFail() {
try {
new Main().runMain(new String[] {"-messageHolder","org.xyz.abc"},false);
fail("ajc should have thrown abort exception");
}
catch (AbortException ex) {
// good
}
}
public void testMainMessageHolderOk() {
Main main = new Main();
main.runMain(new String[] {"-messageHolder","org.aspectj.tools.ajc.TestMessageHolder"},false);
assertSame("ajc should be using our message handler",TestMessageHolder.class,main.getHolder().getClass());
}
}