/*******************************************************************************
* (c) Copyright 2016 Hewlett-Packard Development Company, L.P.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Apache License v2.0 which accompany this distribution.
*
* The Apache License is available at
* http://www.apache.org/licenses/LICENSE-2.0
*
*******************************************************************************/
package io.cloudslang.maven.compiler;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import org.codehaus.plexus.compiler.AbstractCompilerTest;
import org.codehaus.plexus.compiler.Compiler;
import org.codehaus.plexus.compiler.CompilerConfiguration;
/**
* Created by hanael on 10/07/2016.
*/
public class CloudSlangMavenCompilerTest extends AbstractCompilerTest {
public CloudSlangMavenCompilerTest() {
super();
}
@Override
protected String getRoleHint() {
return "cloudslang";
}
@Override
public void testCompilingSources() throws Exception {
ArrayList messages = new ArrayList();
Compiler compiler = (Compiler) this.lookup(Compiler.ROLE, this.getRoleHint());
messages.addAll(compiler.performCompile(getCompilerConfigurationShallowCompile()).getCompilerMessages());
int numCompilerErrors = compilerErrorCount(messages);
assertEquals("Wrong number of compilation errors.", 4, numCompilerErrors);
messages.clear();
messages.addAll(compiler.performCompile(getCompilerConfigurationNoShallowCompile()).getCompilerMessages());
numCompilerErrors = compilerErrorCount(messages);
assertEquals("Wrong number of compilation errors.", 3, numCompilerErrors);
messages.clear();
messages.addAll(compiler.performCompile(getCompilerConfigurationDontFailOnErrors()).getCompilerMessages());
numCompilerErrors = compilerErrorCount(messages);
assertEquals("Wrong number of compilation errors.", 0, numCompilerErrors);
}
private CompilerConfiguration getCompilerConfigurationShallowCompile() throws Exception {
String sourceDir = getBasedir() + "/src/test/resources/content";
Map<String, String> customCompilerArguments = new HashMap<>();
CompilerConfiguration compilerConfig = new CompilerConfiguration();
compilerConfig.setClasspathEntries(this.getClasspath());
compilerConfig.addSourceLocation(sourceDir);
compilerConfig.setCustomCompilerArgumentsAsMap(customCompilerArguments);
return compilerConfig;
}
private CompilerConfiguration getCompilerConfigurationNoShallowCompile() throws Exception {
String sourceDir = getBasedir() + "/src/test/resources/content";
Map<String, String> customCompilerArguments = new HashMap<>();
customCompilerArguments.put("ignore-dependencies", "");
CompilerConfiguration compilerConfig = new CompilerConfiguration();
compilerConfig.setClasspathEntries(this.getClasspath());
compilerConfig.addSourceLocation(sourceDir);
compilerConfig.setCustomCompilerArgumentsAsMap(customCompilerArguments);
return compilerConfig;
}
private CompilerConfiguration getCompilerConfigurationDontFailOnErrors() throws Exception {
String sourceDir = getBasedir() + "/src/test/resources/content";
Map<String, String> customCompilerArguments = new HashMap<>();
customCompilerArguments.put("ignore-errors", "");
CompilerConfiguration compilerConfig = new CompilerConfiguration();
compilerConfig.setClasspathEntries(this.getClasspath());
compilerConfig.addSourceLocation(sourceDir);
compilerConfig.setCustomCompilerArgumentsAsMap(customCompilerArguments);
return compilerConfig;
}
}