Package org.apache.uima.as.dd

Source Code of org.apache.uima.as.dd.Dd2SpringTest

/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied.  See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.uima.as.dd;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.PrintStream;
import java.util.regex.Pattern;

import junit.framework.TestCase;

import org.apache.uima.adapter.jms.service.Dd2spring;
import org.apache.uima.test.junit_extension.FileCompare;
import org.apache.uima.test.junit_extension.TeePrintStream;

public class Dd2SpringTest extends TestCase{

  private static String dd2SpringXsltFilePath = "src/main/scripts/dd2spring.xsl";
  private static String saxonClasspath = "file:src/main/saxon/saxon8.jar";
  private static String pathToDds = "src/test/resources/deploy/";
  private static String pathToExpected = "src/test/resources/deploy/expected/";

  // get rid of parts of generated file that are specific to the regen, which are
  // the header which includes the path to the file, and the date of generation       
  private static String sourceFileCommentPattern =
      // match start-of-line, spaces, "<!--  -->"     
      "^\\s*<!-- (" +       // match start-of-line, spaces, "<!--
      "(file\\:)|" +             // match file:  or
                                 // dd September, 2007, 7:03:00 etc
      "(\\d{1,2} \\w*, \\d{4}, \\d{1,2}\\:\\d{1,2}\\:\\d{1,2} ))" +
      "[^\\n]*?-->[ \\t]*$"// followed by some other non-newline chars, and then --> at end of line

  // get rid of uniqifiers that are generated
  private static String uniquifiersPattern =
      // sample:   9.67.165.27-44fb4c2a:1165912164d:-8000
      // another:  9.2.34.65754d945a:11bfaf7fad7:-7fff
      "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.?[\\-0-9a-fA-F]{6,12}\\:[0-9a-fA-F]{8,12}\\:\\-[0-9a-fA-F]{4,4}"
      ;
 
  // get rid of part of file name that is system specific
    // get rid of variable length comment header lines
 
  private static String sourceFileCommentBorder =
    // match start-of-line, spaces, "<!--===========-->"     
    "^\\s*<!--=*-->[ \\t]*$";    
 
  /* pattern to remove installation-specific paths
   * file:/C:/a/Eclipse/3.3/apache/uima-as-distr/src/test/resources/descriptors/tutorial/ex2/RoomNumberAnnotator.xml
   */
 
  private static String specificPaths = "\\\"file:[\\w/:\\-\\.]*?src/test/resources/";

  private static Pattern compareFilter = Pattern.compile(
      // turn on multiline mode (?m) so ^ and $ match for each line
      "(?m)(" +
      sourceFileCommentPattern +
      ")|(" +
      uniquifiersPattern +
      ")|(" +
      sourceFileCommentBorder +
      ")|(" +
      specificPaths +
      ")");
  private static Pattern nevermatch = Pattern.compile("     ");
 
  private static Dd2spring dd2SpringInstance = new Dd2spring();
 
  protected void setUp() {

  }
 
  protected void tearDown() {
   
  }
 
  public void testDd2Spring_dfltPrimMultiInstanceSame() throws Exception {
    checkDd2Spring("defaultingPrimAEMultInstanceSameCasPool.xml")
  }

  public void testDd2Spring_dfltPrimMultiInstanceDiff() throws Exception {
//    checkDd2Spring("defaultingPrimAEMultInstanceDiffCasPool.xml"); 
    checkDd2SpringErrMsg(
        "defaultingPrimAEMultInstanceDiffCasPool.xml",
        "running test defaultingPrimAEMultInstanceDiffCasPool.xml: \n" +
"      *** WARN: line-number: 26 Top level Async Primitive specifies a scaleout of numberOfInstances=\"40\", but also specifies a Cas Pool size of numberOfCASes=\"30\".  The Cas Pool size is being forced to be the same as the scaleout.");

  }

  public void testAggregateWithInnerAggregateCM() throws Exception {
    checkDd2Spring("aggregateWithInnerAggregateCM.xml")
  }

  public void testDd2Spring_BrokerURL_params() throws Exception {
    checkDd2Spring("defaultingAEwithBrokerParms.xml")
  }
 
  public void testDd2Spring_Bad_Window() throws Exception {
    checkDd2Spring("TestThresholdWindow.xml");
  }
 
  public void testDd2Spring_Deploy_AggregateUsingRemoteTempQueueNoBroker() throws Exception {
    checkDd2Spring("Deploy_AggregateUsingRemoteTempQueueNoBroker.xml");
  }

  public void testDd2Spring_defaultingAENoBroker() throws Exception {
    checkDd2Spring("defaultingAENoBroker.xml");
  }

  public void testDd2Spring_var1() throws Exception {
    checkDd2Spring("var1.xml");
  }
 
  public void testDd2Spring_CMAggregateWithCollocatedCM() throws Exception {
    checkDd2Spring("Deploy_CMAggregateWithCollocatedCM.xml");
  }
 
  public void testDd2Spring_complex_inner_CM_colocated() throws Exception {
    checkDd2Spring("Deploy_ComplexAggregateWithInnerAggregateCM.xml");
  }

  public void testDd2Spring_remoteSerializer() throws Exception {
    checkDd2Spring("remoteSerializer.xml");
 
 
  public void testDd2Spring_deployAggrUsingRmtTempQ() throws Exception {
    checkDd2Spring("Deploy_AggregateUsingRemoteTempQueue.xml");
  }
 
  public void testDd2Spring_concurRemoteConsumers() throws Exception {
    checkDd2Spring("aggrRmtConcurrentReply.xml");
  }

  public void testVmBkrBad() throws Exception {
    checkDd2Spring("vmBkrBad.xml");
  }

  public void testDd2Spring_inputQueueScaleout3() throws Exception {
    checkDd2Spring("iq3.xml");
  }
 
  public void testDd2Spring_inputQueueScaleout2g2() throws Exception {
    checkDd2Spring("iq2AEg2.xml");
  }
 
  public void testDd2Spring_inputQueueScaleout2g() throws Exception {
    checkDd2Spring("iq2AEg.xml");
  }

  public void testDd2Spring_inputQueueScaleout2() throws Exception {
    checkDd2Spring("iq2AE.xml");
  }

  public void testDd2Spring_inputQueueScaleout1() throws Exception {
    checkDd2Spring("iq1AE.xml");
  }


  public void testDd2Spring_multiLevelAsyncDefaulting() throws Exception {
    checkDd2Spring("Deploy_MeetingFinder.xml");
  }
 
  public void testDd2Spring_dfltPrimMultiInstance() throws Exception {
    checkDd2Spring("defaultingPrimAEMultInstance.xml")
  }
 
  public void testDd2Spring_tempQ() throws Exception {
    checkDd2Spring("tempQ1.xml");
  }

  public void testDd2Spring_NotCPP() throws Exception {  
    checkDd2SpringErrMsg(
        "envVar/envVarNotCPP.xml",
        "running test envVar/envVarNotCPP.xml: \n *** ERROR: line-number: 28 Service element contains an environmentVariables element, \n" +
          " but the referenced top-level descriptor isn't a C++ component");
  }
  public void testDd2Spring_defaults_aggr_async() throws Exception {
    checkDd2Spring("defaultingAEaggrAsync.xml");
  }
   
  public void testDd2Spring_defaults_aggr() throws Exception {
    checkDd2Spring("defaultingAEaggr.xml");
  }
 
  public void testDd2Spring_defaults() throws Exception {
    checkDd2Spring("defaultingAE.xml");
  }
 
  public void testDd2Spring_envVarCPP() throws Exception {
    checkDd2Spring("envVar/envVarCPP.xml");
  }
 
  public void testDd2Spring_envVarCPP1() throws Exception {
    checkDd2Spring("envVar/envVarCPP1.xml");
  }

  public void testDd2Spring_CPPwrongProtocol() throws Exception {  
    checkDd2SpringErrMsg(
        "envVar/envVarCPPwrongProtocol.xml",
        "running test envVar/envVarCPPwrongProtocol.xml: \n *** ERROR: line-number: 31 broker protocol of vm://localhost not supported");
  }


  private void checkDd2SpringErrMsg(String dd, String errmsg) throws Exception {
    PrintStream err = System.err;
    try {
      ByteArrayOutputStream errOut = new ByteArrayOutputStream();
      System.setErr(new TeePrintStream(new PrintStream(errOut), err));
     
      checkDd2Spring(dd);
      assertTrue(FileCompare.compareStringsWithFilter(
          errmsg, errOut.toString(), nevermatch));
     
    } finally {
      System.setErr(err);
    }
  }
  private void checkDd2Spring(String dd) throws Exception {
    System.err.print("running test " + dd + ": ");
    File springContextFile =
      dd2SpringInstance.convertDd2Spring(pathToDds + dd, dd2SpringXsltFilePath, saxonClasspath, "");

    assertTrue (FileCompare.compareWithFilter(springContextFile.getAbsolutePath(), pathToExpected + dd,
        compareFilter));
   
  }
 
  public static void main(String[] args) {
    junit.textui.TestRunner.run(Dd2SpringTest.class);
    System.out.println ("done"); // dummy line to have breakpoint
  }

}
TOP

Related Classes of org.apache.uima.as.dd.Dd2SpringTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.