Package org.pentaho.platform.engine.services

Source Code of org.pentaho.platform.engine.services.AuditConnectionTest

/*
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License, version 2 as published by the Free Software
* Foundation.
*
* You should have received a copy of the GNU General Public License along with this
* program; if not, you can obtain a copy at http://www.gnu.org/licenses/gpl-2.0.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 General Public License for more details.
*
*
* Copyright 2006 - 2013 Pentaho Corporation.  All rights reserved.
*/

package org.pentaho.platform.engine.services;

import org.pentaho.platform.engine.core.system.PentahoSystem;
import org.pentaho.platform.engine.core.system.objfac.StandaloneSpringPentahoObjectFactory;
import org.pentaho.platform.engine.services.audit.AuditConnection;
import org.pentaho.test.platform.engine.core.BaseTest;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

@SuppressWarnings( "nls" )
public class AuditConnectionTest extends BaseTest {
  private static String SOLUTION_PATH = "test-res/solution";

  public String getSolutionPath() {
    return SOLUTION_PATH;
  }

  public void testAuditConnection() {
    startTest();
    AuditConnection auditConnection = new AuditConnection();
    auditConnection.setUseNewDatasourceService( true ); // make sure we get a datasource from the object factory
    auditConnection.initialize();
    MockDataSourceService.setThrowExceptionOnGetConnection(false);
    try {
      Connection connection = auditConnection.getAuditConnection();
      System.out.println( "Audit Connection Is  " + connection ); //$NON-NLS-1$ 

      DataSource datasource = auditConnection.getAuditDatasource();
      System.out.println( "Datasource Is  " + datasource ); //$NON-NLS-1$     
    } catch ( Exception e ) {
      e.printStackTrace();
      fail( e.getMessage() );
    } finally {
      finishTest();
    }
  }

  public void testAuditConnectionNoConfigFile() {
    startTest();
    SOLUTION_PATH = ""; // We want to test what happens when the config file can't be found
    AuditConnection auditConnection = new AuditConnection();
    auditConnection.setUseNewDatasourceService( true ); // make sure we get a datasource from the object factory
    auditConnection.initialize();
    MockDataSourceService.setThrowExceptionOnGetConnection(false);
    try {
      Connection connection = auditConnection.getAuditConnection();
      System.out.println( "Audit Connection Is  " + connection ); //$NON-NLS-1$ 

      DataSource datasource = auditConnection.getAuditDatasource();
      System.out.println( "Datasource Is  " + datasource ); //$NON-NLS-1$     
    } catch ( Exception e ) {
      e.printStackTrace();
      fail( e.getMessage() );
    } finally {
      finishTest();
    }
  }

  public void testAuditConnection_cannot_establish_connection() {
    startTest();

    try {
      // Load mock object factory with mock datasource service that produces null datasources
      StandaloneSpringPentahoObjectFactory factory = new StandaloneSpringPentahoObjectFactory();
      factory.init( "test-res/solution/system/pentahoObjects.datasourceservice.null.spring.xml", null );
      PentahoSystem.registerObjectFactory( factory );

      AuditConnection auditConnection = new AuditConnection();
      auditConnection.setUseNewDatasourceService( true ); // make sure we get a datasource from the object factory
      auditConnection.initialize();
      MockDataSourceService.setThrowExceptionOnGetConnection(true);
      auditConnection.getAuditConnection();
      fail( "Expected exception when no audit connection could be established" );
    } catch ( SQLException ex ) {
      ex.printStackTrace();
      assertTrue( "Expected AUDSQLENT.ERROR_0001", ex.getMessage().contains( "AUDSQLENT.ERROR_0001" ) );
    } finally {
      finishTest();
    }
  }
}
TOP

Related Classes of org.pentaho.platform.engine.services.AuditConnectionTest

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.