Package org.pentaho.reporting.engine.classic.core.modules.misc.connections

Source Code of org.pentaho.reporting.engine.classic.core.modules.misc.connections.EditableDataSourceMgmtServiceTest

package org.pentaho.reporting.engine.classic.core.modules.misc.connections;

import java.util.List;

import junit.framework.TestCase;
import org.pentaho.database.model.IDatabaseConnection;
import org.pentaho.reporting.engine.classic.core.ClassicEngineBoot;

public class EditableDataSourceMgmtServiceTest extends TestCase
{
  public EditableDataSourceMgmtServiceTest()
  {
  }

  protected void setUp() throws Exception
  {
    ClassicEngineBoot.getInstance().start();
  }

  public void testCreateDataSource()
  {
    InMemoryDataSourceMgmtService backend = new InMemoryDataSourceMgmtService();
    EditDataSourceMgmtService editor = new EditDataSourceMgmtService(backend);

    IDatabaseConnection c = ConnectionDefinitionIOTest.generateDatabaseConnection();
    editor.createDatasource(c);
    editor.commit();
    List<String> datasourceIds = backend.getDatasourceIds();
    assertEquals(1, datasourceIds.size());
    final String dsId = datasourceIds.get(0);
    assertEquals(c.getDatabaseName(), backend.getDatasourceById(dsId).getDatabaseName());
    assertEquals(c.getName(), backend.getDatasourceById(dsId).getName());

    assertEquals(c.getDatabaseName(), backend.getDatasourceByName(c.getName()).getDatabaseName());
    assertEquals(c.getName(), backend.getDatasourceByName(c.getName()).getName());
  }

  public void testUpdateDataSource()
  {
    InMemoryDataSourceMgmtService backend = new InMemoryDataSourceMgmtService();
    IDatabaseConnection c = ConnectionDefinitionIOTest.generateDatabaseConnection();
    String realId = backend.createDatasource(c);

    EditDataSourceMgmtService editor = new EditDataSourceMgmtService(backend);

    IDatabaseConnection c2 = ConnectionDefinitionIOTest.generateDatabaseConnection();
    c2.setId(realId);
    c2.setName("Name");
    editor.updateDatasourceById(realId, c2);
    editor.commit();

    List<String> datasourceIds = backend.getDatasourceIds();
    assertEquals(1, datasourceIds.size());
    assertEquals(realId, datasourceIds.get(0));

    assertEquals(c2.getDatabaseName(), backend.getDatasourceById(realId).getDatabaseName());
    assertEquals(c2.getName(), backend.getDatasourceById(realId).getName());

    assertEquals(c2.getDatabaseName(), backend.getDatasourceByName(c2.getName()).getDatabaseName());
    assertEquals(c2.getName(), backend.getDatasourceByName(c2.getName()).getName());
  }

  public void testRemoveDataSource()
  {
    InMemoryDataSourceMgmtService backend = new InMemoryDataSourceMgmtService();
    IDatabaseConnection c = ConnectionDefinitionIOTest.generateDatabaseConnection();
    String realId = backend.createDatasource(c);

    EditDataSourceMgmtService editor = new EditDataSourceMgmtService(backend);
    editor.deleteDatasourceById(realId);
    editor.commit();
    List<String> datasourceIds = backend.getDatasourceIds();
    assertEquals(0, datasourceIds.size());
  }

  public void testRemoveThenAddDataSource()
  {
    InMemoryDataSourceMgmtService backend = new InMemoryDataSourceMgmtService();
    IDatabaseConnection r = ConnectionDefinitionIOTest.generateDatabaseConnection();
    String realId = backend.createDatasource(r);

    EditDataSourceMgmtService editor = new EditDataSourceMgmtService(backend);
    editor.deleteDatasourceById(realId);

    IDatabaseConnection c2 = ConnectionDefinitionIOTest.generateDatabaseConnection();
    c2.setName(r.getName());
    editor.createDatasource(c2);
    editor.commit();

    List<String> datasourceIds = backend.getDatasourceIds();
    assertEquals(1, datasourceIds.size());

    final String dsId = datasourceIds.get(0);
    assertEquals(c2.getDatabaseName(), backend.getDatasourceById(dsId).getDatabaseName());
    assertEquals(c2.getName(), backend.getDatasourceById(dsId).getName());

    assertEquals(c2.getDatabaseName(), backend.getDatasourceByName(c2.getName()).getDatabaseName());
    assertEquals(c2.getName(), backend.getDatasourceByName(c2.getName()).getName());
  }


  public void testRemoveThenAddThenRemoveDataSource()
  {
    InMemoryDataSourceMgmtService backend = new InMemoryDataSourceMgmtService();
    IDatabaseConnection r = ConnectionDefinitionIOTest.generateDatabaseConnection();
    String realId = backend.createDatasource(r);

    EditDataSourceMgmtService editor = new EditDataSourceMgmtService(backend);
    editor.deleteDatasourceById(realId);

    IDatabaseConnection c2 = ConnectionDefinitionIOTest.generateDatabaseConnection();
    c2.setName(r.getName());
    String id = editor.createDatasource(c2);
    editor.deleteDatasourceById(id);
    editor.commit();

    List<String> datasourceIds = backend.getDatasourceIds();
    assertEquals(0, datasourceIds.size());
  }

}
TOP

Related Classes of org.pentaho.reporting.engine.classic.core.modules.misc.connections.EditableDataSourceMgmtServiceTest

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.