Skip to content

Commit

Permalink
check of upgrade scripts correct zijn verwerkt
Browse files Browse the repository at this point in the history
  • Loading branch information
mprins committed Nov 16, 2018
1 parent d6f45b3 commit 7ce4389
Show file tree
Hide file tree
Showing 6 changed files with 93 additions and 27 deletions.
8 changes: 7 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ addons:
postgresql: 9.6
apt:
packages:
- postgresql-9.6-postgis-2.4
- postgresql-9.6-postgis-2.3
- graphviz
hostname: travis-brmo
hosts: travis-brmo
Expand Down Expand Up @@ -115,6 +115,12 @@ script:
- travis_wait 20 mvn --settings .travis/settings.xml -e test -B -Pstandard-with-extra-repos,$PROFILE -pl '!brmo-dist' -Dtest.onlyITs=false;
# fi
# run integratie tests voor veschillende modules, per module
- if [ "$PROFILE" == "postgresql -Dupgrade=true" ]; then
sh ".travis/execute-upgrades-pgsql.sh staging";
sh ".travis/execute-upgrades-pgsql.sh rsgb";
sh ".travis/execute-upgrades-pgsql.sh rsgbbgt";
mvn -e -B -P$PROFILE -pl 'datamodel' resources:testResources compiler:testCompile surefire:test;
fi
# run integratie tests voor brmo-loader module
- echo 'integratie tests voor brmo-loader module'
- travis_wait 40 mvn -e verify -B -P$PROFILE -Dtest.onlyITs=true -pl 'brmo-loader'
Expand Down
16 changes: 16 additions & 0 deletions .travis/execute-upgrades-pgsql.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/usr/bin/env bash
CURSNAPSHOT=$(grep "<version>.*<.version>" -m1 pom.xml | sed -e "s/^.*<version/<version/" | cut -f2 -d">"| cut -f1 -d"<")

NEXTRELEASE="${CURSNAPSHOT%-SNAPSHOT}"

MAJOR="${CURSNAPSHOT%.*}"

MINOR="${NEXTRELEASE##*.}"

PREVMINOR=$(($MINOR-1))

PREVRELEASE=$MAJOR.$PREVMINOR

echo "Huidige snapshot:" $CURSNAPSHOT", vorige release: "$PREVRELEASE", komende release: "$NEXTRELEASE

psql -U postgres -d $1 -f ./old/db//upgrade_scripts/$PREVRELEASE-$NEXTRELEASE/postgresql/$1.sql
3 changes: 2 additions & 1 deletion datamodel/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -375,9 +375,10 @@
<profile>
<id>postgresql</id>
<build>
<defaultGoal>testCompile</defaultGoal>
<plugins>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<database.properties.file>postgis.properties</database.properties.file>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,63 +8,68 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.Properties;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.dbunit.database.DatabaseDataSourceConnection;
import org.junit.After;

import static org.junit.Assume.assumeNotNull;

import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestName;
import org.apache.commons.dbcp.BasicDataSource;
import org.dbunit.database.DatabaseConfig;
import org.dbunit.database.DatabaseConnection;
import org.dbunit.database.IDatabaseConnection;
import org.dbunit.dataset.ITable;
import org.dbunit.ext.mssql.MsSqlDataTypeFactory;
import org.dbunit.ext.oracle.Oracle10DataTypeFactory;
import org.dbunit.ext.postgresql.PostgresqlDataTypeFactory;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;

import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;

/**
*
* Een testcase om te kijken of het upgrade script correct is verwerkt
* @author Mark Prins
*/
@RunWith(Parameterized.class)
public class DatabaseUpgradeIntegrationTest {
public class DatabaseUpgradeTest {

@Parameterized.Parameters(name = "{index}: testen database: {0}")
public static Collection params() {
return Arrays.asList(new Object[][]{
{"staging"}, {"rsgb"}, {"rsgbbgt"}
{"staging"}, {"rsgb"}, {"rsgbbgt"}
});
}

private String dbName;

public DatabaseUpgradeIntegrationTest(String dbName) {
public DatabaseUpgradeTest(String dbName) {
this.dbName = dbName;
}

private IDatabaseConnection db;

private static String currentVersion;
private static String previousVersion;
private static final Log LOG = LogFactory.getLog(DatabaseUpgradeIntegrationTest.class);
private static String nextRelease;
private static String previousRelease;
private static final Log LOG = LogFactory.getLog(DatabaseUpgradeTest.class);

@BeforeClass
public static void getEnvironment() {
currentVersion = System.getProperty("project.version").replace("-SNAPSHOT", "");
nextRelease = System.getProperty("project.version").replace("-SNAPSHOT", "");
LOG.debug("komende release is: " + nextRelease);
// Semantic Versioning scheme (MAJOR.MINOR.PATCH)
previousVersion = currentVersion;
int patch = Integer.parseInt(currentVersion.substring(currentVersion.lastIndexOf("."), currentVersion.length() - 1));
previousVersion = currentVersion.substring(0, currentVersion.lastIndexOf(".")) + "." + (patch - 1);
previousRelease = nextRelease;
int patch = Integer.parseInt(nextRelease.substring(nextRelease.lastIndexOf(".") + 1));
LOG.debug("release patch is: " + patch);
previousRelease = nextRelease.substring(0, nextRelease.lastIndexOf(".")) + "." + (patch - 1);
LOG.debug("vorige release is: " + previousRelease);
}

/**
Expand Down Expand Up @@ -134,18 +139,21 @@ public void testCurrentVersion() throws Exception {
for (int i = 0; i < metadata.getRowCount(); i++) {
waarde = metadata.getValue(i, "waarde").toString();
naam = metadata.getValue(i, "naam").toString();
if (currentVersion.equalsIgnoreCase(waarde)

LOG.debug(String.format("database %s, metadata tabel record: %d: naam: %s, waarde: %s",this.dbName,i,naam, waarde));

if (nextRelease.equalsIgnoreCase(waarde)
&& "brmoversie".equalsIgnoreCase(naam)) {
foundVersion = true;

}
if ("vorige versie was 1.6.0".equalsIgnoreCase(waarde)
&& "upgrade_1.6.0_naar_1.6.1".equalsIgnoreCase(naam)) {
if (("vorige versie was " + previousRelease).equalsIgnoreCase(waarde)
&& ("upgrade_" + previousRelease + "_naar_" + nextRelease).equalsIgnoreCase(naam)) {
foundUpdate = true;
}
}
assertTrue("Update versienummer niet correct", foundVersion);
assertTrue("Update text niet gevonden", foundUpdate);
assertTrue("Update versienummer niet correct voor "+this.dbName, foundVersion);
assertTrue("Update text niet gevonden voor "+this.dbName, foundUpdate);
}

@After
Expand All @@ -161,11 +169,11 @@ public void cleanup() throws SQLException {
*/
public void loadProps() throws IOException {
// de `database.properties.file` is in de pom.xml of via commandline ingesteld
params.load(DatabaseUpgradeIntegrationTest.class.getClassLoader()
params.load(DatabaseUpgradeTest.class.getClassLoader()
.getResourceAsStream(System.getProperty("database.properties.file")));
try {
// probeer een local (override) versie te laden als die bestaat
params.load(DatabaseUpgradeIntegrationTest.class.getClassLoader()
params.load(DatabaseUpgradeTest.class.getClassLoader()
.getResourceAsStream("local." + System.getProperty("database.properties.file")));
} catch (IOException | NullPointerException e) {
// negeren; het override bestand is normaal niet aanwezig
Expand Down
35 changes: 35 additions & 0 deletions datamodel/src/test/resources/log4j.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
<param name="Threshold" value="all" />
<layout class="org.apache.log4j.EnhancedPatternLayout">
<param name="ConversionPattern" value="BRMO-DATAMODEL: %5p %d{HH:mm:ss} (%C{1.}#%M:%L) - %m%n" />
</layout>
</appender>
<logger name="org.dbunit.database">
<level value="info" />
</logger>
<logger name="org.dbunit.operation">
<level value="info" />
</logger>
<logger name="org.dbunit.util">
<level value="info" />
</logger>
<logger name="org.dbunit.dataset">
<level value="info" />
</logger>
<logger name="org.dbunit.ext">
<level value="info" />
</logger>
<logger name="nl.b3p.brmo">
<level value="info" />
</logger>
<logger name="nl.b3p.brmo.datamodel">
<level value="debug" />
</logger>
<root>
<level value="info" />
<appender-ref ref="consoleAppender" />
</root>
</log4j:configuration>
8 changes: 4 additions & 4 deletions datamodel/src/test/resources/postgis.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ rsgb.username=rsgb
rsgb.password=rsgb

staging.url=jdbc:postgresql://localhost:5432/staging
staging.user=staging
staging.passwd=staging
staging.username=staging
staging.password=staging

rsgbbgt.url=jdbc:postgresql://localhost:5432/rsgbbgt
rsgbbgt.user=rsgbbgt
rsgbbgt.passwd=rsgbbgt
rsgbbgt.username=rsgbbgt
rsgbbgt.password=rsgbbgt

0 comments on commit 7ce4389

Please sign in to comment.