Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,5 @@
log/
target/
.mvn
log.txt
**/pom.xml.versionsBackup
5 changes: 4 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,10 @@ install:
- bash .travis/install_demo_project.sh

script:
- mvn package -DdbUser="${DB_USER}" -DdbPass="${DB_PASS}"
- echo "Run Unit tests"
- mvn test
- echo "Run Integration tests"
- mvn verify -Dmaven.skip.test -DdbUser="${DB_USER}" -DdbPass="${DB_PASS}" -DdbUrl="jdbc:oracle:thin:@${DB_URL}"

#before_deploy:
# - bash .travis/create_release.sh
Expand Down
2 changes: 1 addition & 1 deletion .travis/install_demo_project.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash
set -ev

PROJECT_FILES_SRC="utplsql-maven-plugin/src/test/resources/simple-project"
PROJECT_FILES_SRC="utplsql-maven-plugin-it/src/it/resources/simple-project"
PROJECT_FILES="resources"

cat > demo_project.sh.tmp <<EOF
Expand Down
5 changes: 3 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
<modelVersion>4.0.0</modelVersion>

<groupId>org.utplsql</groupId>
<artifactId>utplsql-maven-plugin-build</artifactId>
<artifactId>utplsql-maven-plugin-parent</artifactId>
<version>3.1.0-SNAPSHOT</version>
<packaging>pom</packaging>

<name>utplsql-maven-plugin Maven Plugin Build</name>
<name>utplsql-maven-plugin Parent</name>

<url>https://github.com/utPLSQL/utPLSQL-maven-plugin</url>

Expand All @@ -18,6 +18,7 @@

<modules>
<module>utplsql-maven-plugin</module>
<module>utplsql-maven-plugin-it</module>
</modules>

</project>
134 changes: 134 additions & 0 deletions utplsql-maven-plugin-it/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>org.utplsql</groupId>
<artifactId>utplsql-maven-plugin-parent</artifactId>
<version>3.1.0-SNAPSHOT</version>
</parent>
<name>utplsql-maven-plugin Integration tests</name>
<artifactId>utplsql-maven-plugin-it</artifactId>
<packaging>jar</packaging>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-model</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-verifier</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>add-it-resource</id>
<phase>process-resources</phase>
<goals>
<goal>add-test-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>src/it/resources</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>add-it-source</id>
<phase>process-resources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>src/it/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.0</version>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
<execution>
<id>verify</id>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>

</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
package org.utpsql.maven.plugin.test;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import org.apache.commons.io.FileUtils;
import org.apache.maven.it.VerificationException;
import org.apache.maven.it.Verifier;
import org.apache.maven.it.util.ResourceExtractor;
import org.apache.maven.model.Model;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;

public class UtPLSQLMojoIT
{

private static String pluginVersion = null;

@BeforeClass
public static void setUp() throws VerificationException, IOException, XmlPullParserException {
// Read plugin pom file
MavenXpp3Reader reader = new MavenXpp3Reader();
Model model = reader.read(new FileReader("../pom.xml"));

File pomFile = new File("../");
Verifier verifier = new Verifier(pomFile.getAbsolutePath());

// delete plugin
//verifier.deleteArtifact( model.getGroupId(), model.getArtifactId(), model.getVersion(), "pom" );

// install plugin
verifier.setAutoclean(false);
verifier.addCliOption("-Dmaven.skip.test=true");
verifier.addCliOption("-DskipITs");
verifier.executeGoal("install");

pluginVersion = model.getVersion();
}


@Test
public void testSimpleDefinition() throws Exception
{

try
{
final String PROJECT_NAME = "simple-project";
File testProject = ResourceExtractor.simpleExtractResources(getClass(), "/"+ PROJECT_NAME);

Verifier verifier;
verifier = new Verifier(testProject.getAbsolutePath());
verifier.addCliOption("-N");
verifier.addCliOption("-Dutplsql-maven-plugin-version="+pluginVersion);
verifier.addCliOption("-DdbUrl="+System.getProperty("dbUrl"));
verifier.addCliOption("-DdbUser="+System.getProperty("dbUser"));
verifier.addCliOption("-DdbPass="+System.getProperty("dbPass"));

verifier.executeGoal("test");

checkReportsGenerated(PROJECT_NAME,"utplsql/sonar-test-reporter.xml","utplsql/coverage-sonar-reporter.xml");
}
catch (Exception e)
{
e.printStackTrace();
Assert.fail("Unexpected Exception running the test of Definition "+e.getMessage());
}
}

@Test
public void testRegexDefinition() throws Exception
{
try
{
final String PROJECT_NAME = "regex-project";
File testProject = ResourceExtractor.simpleExtractResources(getClass(), "/"+ PROJECT_NAME);

Verifier verifier;
verifier = new Verifier(testProject.getAbsolutePath());
verifier.addCliOption("-N");
verifier.addCliOption("-Dutplsql-maven-plugin-version="+pluginVersion);
verifier.addCliOption("-DdbUrl="+System.getProperty("dbUrl"));
verifier.addCliOption("-DdbUser="+System.getProperty("dbUser"));
verifier.addCliOption("-DdbPass="+System.getProperty("dbPass"));

verifier.executeGoal("test");

checkReportsGenerated(PROJECT_NAME,"utplsql/sonar-test-reporter.xml","utplsql/coverage-sonar-reporter.xml");
}
catch (Exception e)
{
e.printStackTrace();
Assert.fail("Unexpected Exception running the test of Definition");
}
}

@Test
public void testTypeMappingDefinition() throws Exception
{
try
{
final String PROJECT_NAME = "type-mapping-project";
File testProject = ResourceExtractor.simpleExtractResources(getClass(), "/"+ PROJECT_NAME);

Verifier verifier;
verifier = new Verifier(testProject.getAbsolutePath());
verifier.addCliOption("-N");
verifier.addCliOption("-Dutplsql-maven-plugin-version="+pluginVersion);
verifier.addCliOption("-DdbUrl="+System.getProperty("dbUrl"));
verifier.addCliOption("-DdbUser="+System.getProperty("dbUser"));
verifier.addCliOption("-DdbPass="+System.getProperty("dbPass"));

verifier.executeGoal("test");

checkReportsGenerated(PROJECT_NAME,"utplsql/sonar-test-reporter.xml","utplsql/coverage-sonar-reporter.xml");
}
catch (Exception e)
{
e.printStackTrace();
Assert.fail("Unexpected Exception running the test of Definition");
}
}

/**
*
* @param files
*/
private void checkReportsGenerated(String projectName, String... files)
{
for (String filename : files)
{
File outputFile = new File("target/test-classes/"+projectName+"/target",filename);
File expectedOutputFile = new File("target/test-classes/"+projectName+"/expected-output", filename);

Assert.assertTrue("The reporter for " + filename + " was not generated", outputFile.exists());
try {
// Duration is set to 1 before comparing contents as it is always different.
// Path separator is set to "/" to ensure windows / linux / mac compatibility
Stream<String> stream = Files.lines(Paths.get("target","test-classes",projectName,"target",filename));
String outputContent = stream.map(line -> line.replaceAll("(duration=\"[0-9\\.]*\")", "duration=\"1\""))
.map(line -> line.replaceAll("\\\\", "/"))
.map(line -> line.replaceAll("\r", "").replaceAll("\n", ""))
.collect(Collectors.joining("\n"));

stream.close();
Assert.assertEquals("The files differ!",
outputContent,
FileUtils.readFileToString(expectedOutputFile, "utf-8").replace("\r",""));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Assert.fail("Unexpected Exception running the test of Definition");
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<coverage version="1">
<file path="src/test/resources/simple-project/scripts/sources/APP.PKG_TEST_ME.bdy">
<file path="scripts/sources/app/packages/PKG_TEST_ME.bdy">
<lineToCover lineNumber="8" covered="true"/>
<lineToCover lineNumber="9" covered="true"/>
<lineToCover lineNumber="10" covered="true"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<testExecutions version="1">
<file path="src/test/resources/simple-project/scripts/tests/APP.TEST_PKG_TEST_ME.bdy">
<file path="scripts/test/app/packages/TEST_PKG_TEST_ME.bdy">
<testCase name="test_fc_input_1" duration="1" >
</testCase>
<testCase name="test_fc_input_0" duration="1" >
Expand Down
Loading