Created
January 16, 2015 21:42
-
-
Save nikhilv/0fc31dcad1aa6e55f2f0 to your computer and use it in GitHub Desktop.
really rough junit system test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// build.gradle -*- Groovy -*- | |
// | |
// Gradle build script for EC-OpenStack plugin. | |
// | |
// Copyright (c) 2014 Electric Cloud, Inc. | |
// All rights reserved | |
group = "com.electriccloud" | |
description = "Plugins : EC-OpenStack" | |
// Set the build number if it exists | |
def buildNumber = System.env.BUILD_NUMBER ? System.env.BUILD_NUMBER : "0" | |
version = "1.1.2" | |
//version = "1.2.0." + buildNumber | |
//project.version = "1.2.0." + buildNumber | |
project.ext { | |
pluginName = "$name-$version".toString() | |
commanderHome = System.env.COMMANDER_HOME | |
commanderServer = System.env.COMMANDER_SERVER ? System.env.COMMANDER_SERVER : "localhost" | |
} | |
apply plugin: "java" | |
apply plugin: "eclipse" | |
apply plugin: 'gwt-compiler' | |
sourceCompatibility = 1.5 | |
defaultTasks "assemblePluginJar" | |
if(commanderHome) { | |
println "Using commander home: $commanderHome" | |
} | |
println "Using commander server: $commanderServer" | |
buildscript { | |
repositories { | |
maven { url "https://github.com/steffenschaefer/gwt-gradle-plugin/raw/maven-repo/" } | |
mavenCentral() | |
} | |
dependencies { classpath "de.richsource.gradle.plugins:gwt-gradle-plugin:0.4" } | |
} | |
repositories { | |
mavenCentral() | |
flatDir { | |
dirs 'libs' | |
} | |
} | |
dependencies { | |
compile group: group, name: "commander-sdk", version: "5.0.0-SNAPSHOT" | |
compile group: group, name: "commander-client", version: "5.0.0-SNAPSHOT" | |
compile group: group, name: "ec_internal", version: "5.0.0-SNAPSHOT" | |
compile group: group, name: "ec-test", version: "5.0.0-SNAPSHOT" | |
compile group: "com.google.gwt", name: "gwt-dev", version: "2.5.0" | |
compile group: "com.google.gwt", name: "gwt-servlet", version: "2.5.0" | |
compile group: "com.google.gwt", name: "gwt-user", version: "2.5.0" | |
compile "com.intellij:annotations:132.839-PATCH1" | |
compile "com.google.guava:guava-gwt:16.+" | |
compile "com.google.gwt.inject:gin:1.5.0" | |
compile "com.gwtplatform:gwtp-all:0.8-PATCH5" | |
testCompile 'junit:junit:[4,)' | |
testCompile 'org.pacesys:openstack4j:2.0.0' | |
} | |
processResources { | |
// Clear readonly flag, set by perforce | |
setFileMode(0644) | |
filter(org.apache.tools.ant.filters.ReplaceTokens, | |
tokens: [PLUGIN_NAME: project.pluginName, PLUGIN_KEY: project.name, PLUGIN_VERSION: project.version]) | |
} | |
task wrapper(type: Wrapper) { | |
gradleVersion = '2.2' | |
} | |
task processProjectXml(type:Exec, dependsOn: processResources) { | |
def resourcesPath = "$buildDir/resources/main" | |
def ecperl = project.commanderHome ? "$commanderHome/bin/ec-perl" : "ec-perl" | |
commandLine ecperl, "../build/buildProject-mvn.pl", "$resourcesPath/project", "$resourcesPath/META-INF" | |
} | |
task copy_pages(type: Copy) { | |
// disable caching | |
outputs.upToDateWhen { false } | |
from "pages" | |
into "${buildDir}/resources/main/pages" | |
filter(org.apache.tools.ant.filters.ReplaceTokens, | |
tokens: [PLUGIN_NAME: project.pluginName, PLUGIN_KEY: project.name, PLUGIN_VERSION: project.version]) | |
} | |
task copy_cgi_bin(type: Copy) { | |
// disable caching | |
outputs.upToDateWhen { false } | |
from "cgi-bin" | |
into "${buildDir}/resources/main/cgi-bin" | |
filter(org.apache.tools.ant.filters.ReplaceTokens, | |
tokens: [PLUGIN_NAME: project.pluginName, PLUGIN_KEY: project.name, PLUGIN_VERSION: project.version]) | |
} | |
task copy_htdocs(type: Copy) { | |
// disable caching | |
outputs.upToDateWhen { false } | |
from "htdocs" | |
into "${buildDir}/resources/main/htdocs" | |
} | |
task copy_gwt_out(type: Copy) { | |
// disable caching | |
outputs.upToDateWhen { false } | |
from "${buildDir}/gwt/out" | |
into "${buildDir}/resources/main/htdocs/war" | |
} | |
task delete_ecplugin_dir (type: Delete) { | |
outputs.upToDateWhen { false } | |
delete '${buildDir}/ecplugins' | |
} | |
task delete_project_dir (type: Delete) { | |
outputs.upToDateWhen { false } | |
delete '${buildDir}/project' | |
} | |
task delete_webinf_dir (type: Delete) { | |
outputs.upToDateWhen { false } | |
delete '${buildDir}/gwt/out/WEB-INF' | |
} | |
task rearrange (dependsOn: [copy_pages,copy_cgi_bin,copy_htdocs,copy_gwt_out, delete_webinf_dir, delete_project_dir, delete_ecplugin_dir]) { | |
// disable caching | |
outputs.upToDateWhen { false } | |
} | |
task assemblePluginJar(type: Jar, dependsOn: [processProjectXml,compileGwt,rearrange]) { | |
outputs.upToDateWhen { false } | |
appendix = "plugin" | |
destinationDir = buildDir | |
includeEmptyDirs = false | |
excludes = [ | |
"project/project.xml", | |
"**/*.pl", | |
"**/*.pm", | |
"project/forms" | |
] | |
from sourceSets.main.output | |
} | |
task deployPluginJar(dependsOn: assemblePluginJar) << { | |
def ectool = project.commanderHome ? "$commanderHome/ectool" : "ectool" | |
def serverOpt = "--server $commanderServer" | |
exec { | |
commandLine ectool, serverOpt, "login", "admin", "changeme" | |
} | |
exec { | |
commandLine ectool, serverOpt, "installPlugin", assemblePluginJar.archivePath | |
} | |
exec { | |
commandLine ectool, serverOpt, "promotePlugin", project.name | |
} | |
} | |
gwt { | |
gwtVersion '2.5.0' | |
modules 'ecplugins.openstack.ConfigurationManagement' | |
} | |
test { | |
testLogging { | |
// Show that tests are run in the command-line output | |
events 'started', 'passed' | |
exceptionFormat = 'full' | |
} | |
} | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package ecplugins.openstack; | |
import org.junit.BeforeClass; | |
import org.junit.Test; | |
import org.openstack4j.api.OSClient; | |
import org.openstack4j.model.compute.Keypair; | |
import org.openstack4j.model.compute.Server; | |
import org.openstack4j.openstack.OSFactory; | |
import java.io.BufferedReader; | |
import java.io.IOException; | |
import java.io.InputStreamReader; | |
import java.util.List; | |
import static org.junit.Assert.assertEquals; | |
import static org.junit.Assert.assertNotNull; | |
public class OpenStackProvisionTest { | |
private static OSClient m_osClient; | |
private final String COMMANDER_HOME = "C:\\Program Files\\Electric Cloud\\ElectricCommander\\bin";//System.getenv("COMMANDER_HOME"); | |
@BeforeClass | |
public static void setup(){ | |
// TODO: Switch these over | |
String endpoint = "https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0"; //System.getProperty("OPENSTACK_IDENTITY_URL"); | |
String user = "yyy";//System.getProperty("OPENSTACK_IDENTITY_URL"); | |
String password = "xxx";//System.getProperty("OPENSTACK_IDENTITY_URL"); | |
String tenantId = "aaa";//System.getProperty("OPENSTACK_IDENTITY_URL"); | |
m_osClient = OSFactory.builder() | |
.endpoint(endpoint) | |
.credentials(user,password) | |
.tenantId(tenantId) | |
.authenticate(); | |
} | |
@Test public void testProvision() { | |
// Assumption #1 - Plugin under test is already installed | |
try { | |
//Process p = Runtime.getRuntime().exec(COMMANDER_HOME + "/ectool --server 192.168.158.20 login admin changeme"); | |
// Function under test | |
Process p = Runtime.getRuntime().exec(COMMANDER_HOME + "/ectool --server 192.168.158.20 runProcedure EC-OpenStack-1.1.2 --procedureName CreateKeyPair --actualParameter connection_config=hp tenant_id=10200973354647 keyname=automatedTest-commandLine3 tag=1"); | |
String line; | |
BufferedReader in = new BufferedReader( | |
new InputStreamReader(p.getInputStream()) ); | |
while ((line = in.readLine()) != null) { | |
System.out.println(line); | |
} | |
in.close(); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
try { | |
Thread.sleep(8000); | |
} catch (InterruptedException e) { | |
e.printStackTrace(); | |
} | |
// Get the keypair from OpenStack | |
Keypair keypair = m_osClient.compute().keypairs().get("automatedTest-commandLine3"); | |
// Assert keypair is not null | |
assertNotNull(keypair); | |
// Grab the keypair name and check its name | |
assertEquals("Keypair name is","automatedTest-commandLine3",keypair.getName() ); | |
//List<? extends Server> servers = m_osClient.compute().servers().list(); | |
//assertEquals("Expected 5 but got " + servers.size(), 5,servers.size()); | |
//assertEquals("Gradle is gr8", "Gradle is gr8"); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment