Package org.pentaho.test.platform.plugin.services.metadata

Source Code of org.pentaho.test.platform.plugin.services.metadata.AgileBITests

/*!
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
* Foundation.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
* or from the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* Copyright (c) 2002-2013 Pentaho Corporation..  All rights reserved.
*/

package org.pentaho.test.platform.plugin.services.metadata;

import org.junit.Before;
import org.pentaho.platform.engine.core.system.boot.PlatformInitializationException;
import org.pentaho.test.platform.engine.core.MicroPlatform;

import java.io.File;

/**
* Purpose: Tests the import of localization files that exist in the solution folders' /resources/metadata folder for
* each XMI file that is located there.
* <p/>
* If the xmi file is named mymodel.xmi, then the locale files named mymodel_"local_code".properties will be loaded into
* the domain created by the load of mymodel.xmi.
* <p/>
* For each test a file named "mymodel.xmi" is created in this folder. The individual tests may call the methods
* <p/>
* PentahoMetadataDomainRepositoryTest.getLocaleFromPropertyfilename()
* PentahoMetadataDomainRepositoryTest.getLocalePropertyFilenames()
* <p/>
* The determines which method is to be tested and the criteria of the test. Each test method's javadoc contains the
* goal of the test.
*
* @author sflatley
*/
public class AgileBITests {

  // Solution path and file name
  private String SOLUTION_FOLDER_NAME = "mysolution";
  private String RESOURCE_FOLDER_NAME = "resources";
  private String METADATA_FOLDER_NAME = "metadata";
  private String SOLUTION_PATH;
  private String METADATA_PATH;

  // LocalTestUtil
  LocaleTestUtil localeTestUtil = null;

  /**
   * Creates the files system that mimicks a BI Server solution. Also creates a LocaleTestUtility that is used to create
   * the files needed for the tests.
   * <p/>
   * A MicroPlatform is also created as it is needed for filtering the property files that may exist in the metadata
   * folder.
   *
   * @throws Exception
   */
  @Before
  public void init() throws Exception {

    // create the solution folder
    SOLUTION_PATH = System.getProperty( "java.io.tmpdir" ) + "/" + SOLUTION_FOLDER_NAME;
    METADATA_PATH = RESOURCE_FOLDER_NAME + "/" + METADATA_FOLDER_NAME;

    File solutionFolder = new File( SOLUTION_PATH );
    if ( !solutionFolder.exists() ) {
      if ( !solutionFolder.mkdir() ) {
        throw new Exception( "Unable to create " + SOLUTION_PATH );
      }
    }

    // Create the resource folder
    String resourcePath = SOLUTION_PATH + "/" + RESOURCE_FOLDER_NAME;
    File resourceFolder = new File( resourcePath );
    if ( !resourceFolder.exists() ) {
      if ( !resourceFolder.mkdir() ) {
        throw new Exception( "Unable to create " + resourcePath );
      }
    }

    // Create the resource metadata folder
    String metadataPath = SOLUTION_PATH + "/" + RESOURCE_FOLDER_NAME + "/" + METADATA_FOLDER_NAME;
    File metadataFolder = new File( metadataPath );
    if ( !metadataFolder.exists() ) {
      if ( !metadataFolder.mkdir() ) {
        throw new Exception( "Unable to create " + metadataPath );
      }
    }

    localeTestUtil = new LocaleTestUtil();

    MicroPlatform mp = new MicroPlatform( SOLUTION_PATH );
    try {
      mp.start();
    } catch ( PlatformInitializationException pie ) {
      pie.printStackTrace();
    }
  }

  /**
   * Test MetadataDomainRepository.getLocaleFromPropertyfilename() to ensure that the locale portion is being parsed out
   * of the filename correctly.
   *
   * @throws Exception
   */
  // @Test
  // public void testLocalePropertyFilenameParsing() throws Exception {
  //
  // // create xmi resource
  // String xmiFilename = "mymodel.xmi";
  // String xmifileNamePrefix = "mymodel";
  //
  // // create the properties file to go with the xmi resource
  // File propertiesFile = localeTestUtil.createPropertiesFile("EN_US", SOLUTION_PATH + "/" + METADATA_PATH,
  // xmifileNamePrefix);
  // if (propertiesFile != null && propertiesFile.exists()) {
  // MetadataDomainRepositoryTestWrapper metadataDomainRepository = new MetadataDomainRepositoryTestWrapper();
  // String locale = metadataDomainRepository.getLocaleFromPropertyFilename(propertiesFile.getName(),
  // xmifileNamePrefix);
  // assertEquals("EN_US", locale);
  // propertiesFile.delete();
  // }
  // else {
  // throw new Exception("Could not create the properties file.");
  // }
  // }

  /**
   * Tests MetadataDomainRepository.getLocalePropertyFilenames() where one xmi resource and no property file exists in
   * the metadata folder.
   */
  // @Test
  // public void testNoLocaleFileDiscovery() {
  //
  // // define xmi resource and instantiate MetadataDomainRepository
  // String xmiFilename = "mymodel.xmi";
  // File xmiResource = null;
  // MetadataDomainRepositoryTestWrapper metadataDomainRepository = new MetadataDomainRepositoryTestWrapper();
  //
  // try {
  //
  // // create xmiResource. DO NOT create any locale property file4s with it
  // xmiResource = localeTestUtil.createFile(SOLUTION_PATH + "/" + METADATA_PATH, xmiFilename);
  //
  // // get a list of localization files in the same folder as xmiResource
  // ISolutionFile[] localizationFiles = metadataDomainRepository.getLocalePropertyFiles(METADATA_PATH + "/" +
  // xmiFilename);
  //
  // // we should not have a list
  // assertEquals(0, localizationFiles.length);
  // }
  // catch (IOException ioe) {
  // ioe.printStackTrace();
  // fail(ioe.getMessage());
  // }
  // catch (DomainStorageException dse) {
  // dse.printStackTrace();
  // fail(dse.getMessage());
  // }
  // finally {
  // if (xmiResource != null) {
  // xmiResource.delete();
  // }
  // }
  // }

  /**
   * Tests MetadataDomainRepository.getLocalePropertyFilenames() when one xmi resource is in the meta data folder with
   * one property file.
   */
  // @Test
  // public void testOneLocaleFileDiscovery() {
  //
  // // define xmi resource instantiate MetadataDomainRepository
  // String xmiFilename = "mymodel.xmi";
  // File xmiResource = null;
  // File propertiesFile = null;
  // MetadataDomainRepositoryTestWrapper metadataDomainRepository = new MetadataDomainRepositoryTestWrapper();
  //
  // // discover the localization files
  // try {
  //
  // // create the xmi resource and the property file
  // xmiResource = localeTestUtil.createFile(SOLUTION_PATH + "/" + METADATA_PATH, xmiFilename);
  // propertiesFile = localeTestUtil.createPropertiesFile("EN_US", SOLUTION_PATH + "/" + METADATA_PATH,
  // xmiFilename.substring(0, xmiFilename.indexOf('.')));
  //
  // // get the list of locale property files
  // ISolutionFile[] localizationFileNames = metadataDomainRepository.getLocalePropertyFiles(METADATA_PATH + "/" +
  // xmiFilename);
  //
  // // we expect a list of one file - the one we just created
  // assertNotNull(localizationFileNames);
  // assertEquals(1, localizationFileNames.length);
  // assertEquals(localizationFileNames[0].getFileName(), propertiesFile.getName());
  // }
  // catch (IOException ioe) {
  // ioe.printStackTrace();
  // fail(ioe.getMessage());
  // }
  // catch (DomainStorageException dse) {
  // dse.printStackTrace();
  // fail(dse.getMessage());
  // }
  // finally {
  // if (propertiesFile != null) { propertiesFile.delete(); }
  // if (xmiResource !=null) { xmiResource.delete(); }
  // }
  // }

  /**
   * Tests MetadataDomainRepository.getLocalePropertyFilenames() when one xmi file and several property file exists in
   * the metadata folder.
   */
  // @Test
  // public void testLegacyDomainMultiLocaleFileDiscovery() {
  //
  // // define xmi resource, property files and instantiate MetadataDomainRepository
  // String xmiFilename = "mymodel.xmi";
  // File xmiResource = null;
  // File en_us_properties=null, en_gb_properties=null, no_bok_properties=null;
  // MetadataDomainRepositoryTestWrapper metadataDomainRepository = new MetadataDomainRepositoryTestWrapper();
  //
  // try {
  //
  // xmiResource = localeTestUtil.createFile(SOLUTION_PATH + "/" + METADATA_PATH, xmiFilename);
  // en_us_properties = localeTestUtil.createPropertiesFile("EN_US", SOLUTION_PATH + "/" + METADATA_PATH,
  // xmiFilename.substring(0, xmiFilename.indexOf('.')));
  // en_gb_properties = localeTestUtil.createPropertiesFile("EN_GB", SOLUTION_PATH + "/" + METADATA_PATH,
  // xmiFilename.substring(0, xmiFilename.indexOf('.')));
  // no_bok_properties = localeTestUtil.createPropertiesFile("NO_BOK", SOLUTION_PATH + "/" + METADATA_PATH,
  // xmiFilename.substring(0, xmiFilename.indexOf('.')));
  //
  // ISolutionFile[] localizationFiles = metadataDomainRepository.getLocalePropertyFiles(METADATA_PATH + "/" +
  // xmiFilename);
  // if (localizationFiles == null) {
  // fail("List of localization files is null.  We expected a list of three.");
  // }
  //
  // // test the localization filenames for correctness
  // ArrayList<String> solutionFileNames = new ArrayList<String>();
  // for(ISolutionFile solutionFile: localizationFiles) {
  // solutionFileNames.add(solutionFile.getFileName());
  // }
  // assertNotNull(localizationFiles);
  // assertEquals(3, localizationFiles.length);
  // assertTrue(solutionFileNames.contains(en_us_properties.getName()));
  // assertTrue(solutionFileNames.contains(en_gb_properties.getName()));
  // assertTrue(solutionFileNames.contains(no_bok_properties.getName()));
  // }
  // catch (IOException ioe) {
  // ioe.printStackTrace();
  // fail(ioe.getMessage());
  // }
  // catch (DomainStorageException dse) {
  // dse.printStackTrace();
  // fail(dse.getMessage());
  // }
  // finally {
  // if(en_us_properties != null) { en_us_properties.delete(); }
  // if(en_gb_properties != null) { en_gb_properties.delete(); }
  // if(no_bok_properties != null) { no_bok_properties.delete(); }
  // xmiResource.delete();
  // }
  // }
}
TOP

Related Classes of org.pentaho.test.platform.plugin.services.metadata.AgileBITests

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.