Package siena.base.test

Source Code of siena.base.test.SDBTestOption

package siena.base.test;

import java.util.ArrayList;
import java.util.List;

import junit.framework.TestCase;
import siena.PersistenceManager;
import siena.PersistenceManagerFactory;
import siena.sdb.SdbPersistenceManager;
import siena.core.options.PmOption;
import siena.core.options.PmOptionStickiness;
import siena.sdb.PmOptionSdbReadConsistency;

public abstract class SDBTestOption extends TestCase {
 
  protected SdbPersistenceManager sdb;

  List<Class<?>> classes = new ArrayList<Class<?>>();

  public abstract void init();
  public abstract void createClasses(List<Class<?>> classes);
  public abstract PersistenceManager createPersistenceManager(List<Class<?>> classes) throws Exception;
  public abstract void postInit();

  public abstract boolean supportsAutoincrement();
  public abstract boolean supportsMultipleKeys();
  public abstract boolean supportsDeleteException();
  public abstract boolean supportsSearchStart();
  public abstract boolean supportsSearchEnd();
  public abstract boolean supportsTransaction();
  public abstract boolean supportsListStore();

  @Override
  protected void setUp() throws Exception {
    super.setUp();
   
    sdb = new SdbPersistenceManager();
    sdb.init(SimpleDBConfig.getSienaAWSProperties());
  }
 
  public void testNonSticky()
  {
    PmOption opt;
    opt = sdb.option(PmOptionSdbReadConsistency.ID);
    assertTrue(opt == null);
   
    sdb.option(SdbPersistenceManager.CONSISTENT_READ);
    opt = sdb.option(PmOptionSdbReadConsistency.ID);
    assertTrue(opt != null);
    assertTrue(opt instanceof PmOptionSdbReadConsistency);
   
    assertEquals(SdbPersistenceManager.CONSISTENT_READ, opt);
 
  }
 
  public void testLocalPriority()
  {
    PmOption opt;
   
    sdb.option(SdbPersistenceManager.NOT_CONSISTENT_READ, PmOptionStickiness.NOT_STICKY);
    sdb.option(SdbPersistenceManager.CONSISTENT_READ, PmOptionStickiness.STICKY);
    opt = sdb.option(PmOptionSdbReadConsistency.ID);
    assertTrue(opt != null);
    assertTrue(opt instanceof PmOptionSdbReadConsistency);
   
    assertEquals(SdbPersistenceManager.NOT_CONSISTENT_READ, opt);
 
  }
 
  public void testThread() throws java.lang.InterruptedException
  {
    sdb.option(SdbPersistenceManager.CONSISTENT_READ, PmOptionStickiness.STICKY);

      MyOptionRunner r = new MyOptionRunner(sdb, true);
    Thread t = new Thread(r);
    t.start();
    t.wait(1000);
  }
 
  private class MyOptionRunner implements Runnable
  {
    public MyOptionRunner(SdbPersistenceManager sdb, boolean isReadConsistent)
    {
      m_sdb = sdb;
      this.isReadConsistent = isReadConsistent;
    }
   
    public void run() {
     
      assertEquals(isReadConsistent,  m_sdb.isReadConsistent());
    }
   
    private SdbPersistenceManager m_sdb;
    private boolean isReadConsistent;
  }

}
TOP

Related Classes of siena.base.test.SDBTestOption

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.