ko-archetype-test/src/test/java/org/apidesign/html/archetype/test/VerifyArchetypeTest.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Mon, 13 May 2013 14:53:16 +0200
changeset 1203 eaa7c421a09e
parent 1202 5f04bdbc6ee1
child 1208 ea9ac5eea2d4
permissions -rw-r--r--
Verifies the compilation and test execution works on both profiles: fxbrwsr as well as bck2brwsr
     1 /**
     2  * HTML via Java(tm) Language Bindings
     3  * Copyright (C) 2013 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
     4  *
     5  * This program is free software: you can redistribute it and/or modify
     6  * it under the terms of the GNU General Public License as published by
     7  * the Free Software Foundation, version 2 of the License.
     8  *
     9  * This program is distributed in the hope that it will be useful,
    10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  * GNU General Public License for more details. apidesign.org
    13  * designates this particular file as subject to the
    14  * "Classpath" exception as provided by apidesign.org
    15  * in the License file that accompanied this code.
    16  *
    17  * You should have received a copy of the GNU General Public License
    18  * along with this program. Look for COPYING file in the top folder.
    19  * If not, see http://wiki.apidesign.org/wiki/GPLwithClassPathException
    20  */
    21 package org.apidesign.html.archetype.test;
    22 
    23 import java.io.File;
    24 import java.util.Properties;
    25 import org.apache.maven.it.Verifier;
    26 import org.testng.annotations.Test;
    27 import static org.testng.Assert.*;
    28 
    29 /**
    30  *
    31  * @author Jaroslav Tulach <jtulach@netbeans.org>
    32  */
    33 public class VerifyArchetypeTest {
    34     @Test public void fxBrwsrCompiles() throws Exception {
    35         final File dir = new File("target/tests/fxcompile/").getAbsoluteFile();
    36         generateFromArchetype(dir);
    37         
    38         File created = new File(dir, "o-a-test");
    39         assertTrue(created.isDirectory(), "Project created");
    40         assertTrue(new File(created, "pom.xml").isFile(), "Pom file is in there");
    41         
    42         Verifier v = new Verifier(created.getAbsolutePath());
    43         v.executeGoal("verify");
    44         
    45         v.verifyErrorFreeLog();
    46         
    47         for (String l : v.loadFile(v.getBasedir(), v.getLogFileName(), false)) {
    48             if (l.contains("j2js")) {
    49                 fail("No pre-compilaton:\n" + l);
    50             }
    51         }
    52         
    53         v.verifyTextInLog("org.apidesign.bck2brwsr.launcher.FXBrwsrLauncher");
    54         v.verifyTextInLog("fxcompile/o-a-test/target/o-a-test-1.0-SNAPSHOT-fxbrwsr.zip");
    55     }
    56     
    57     @Test public void bck2BrwsrCompiles() throws Exception {
    58         final File dir = new File("target/tests/b2bcompile/").getAbsoluteFile();
    59         generateFromArchetype(dir);
    60         
    61         File created = new File(dir, "o-a-test");
    62         assertTrue(created.isDirectory(), "Project created");
    63         assertTrue(new File(created, "pom.xml").isFile(), "Pom file is in there");
    64         
    65         Verifier v = new Verifier(created.getAbsolutePath());
    66         v.addCliOption("-Pbck2brwsr");
    67         v.executeGoal("verify");
    68         
    69         v.verifyErrorFreeLog();
    70         
    71         // does pre-compilation to JavaScript
    72         v.verifyTextInLog("j2js");
    73         // uses Bck2BrwsrLauncher
    74         v.verifyTextInLog("org.apidesign.bck2brwsr.launcher.Bck2BrwsrLauncher stopServerAndBrwsr");
    75         // building zip:
    76         v.verifyTextInLog("b2bcompile/o-a-test/target/o-a-test-1.0-SNAPSHOT-bck2brwsr.zip");
    77         
    78         for (String l : v.loadFile(v.getBasedir(), v.getLogFileName(), false)) {
    79             if (l.contains("fxbrwsr")) {
    80                 fail("No fxbrwsr:\n" + l);
    81             }
    82         }
    83 
    84     }
    85 
    86     private Verifier generateFromArchetype(final File dir, String... params) throws Exception {
    87         Verifier v = new Verifier(dir.getAbsolutePath());
    88         v.setAutoclean(false);
    89         v.setLogFileName("generate.log");
    90         v.deleteDirectory("");
    91         dir.mkdirs();
    92         Properties sysProp = v.getSystemProperties();
    93         sysProp.put("groupId", "org.apidesign.test");
    94         sysProp.put("artifactId", "o-a-test");
    95         sysProp.put("package", "org.apidesign.test.oat");
    96         sysProp.put("archetypeGroupId", "org.apidesign.html");
    97         sysProp.put("archetypeArtifactId", "knockout4j-archetype");
    98         sysProp.put("archetypeVersion", ArchetypeVersionTest.findCurrentVersion());
    99         
   100         for (String p : params) {
   101             v.addCliOption(p);
   102         }
   103         v.executeGoal("archetype:generate");
   104         v.verifyErrorFreeLog();
   105         return v;
   106     }
   107 }