Package org.hivedb.persistence

Source Code of org.hivedb.persistence.TestSyncHive

package org.hivedb.persistence;

import org.hivedb.Hive;
import org.hivedb.HiveException;
import org.hivedb.HiveSyncDaemon;
import org.hivedb.meta.Node;
import org.hivedb.meta.persistence.CachingDataSourceProvider;
import org.hivedb.util.database.test.HiveTest;
import org.hivedb.util.database.test.HiveTest.Config;
import org.junit.Assert;
import org.junit.Test;

import java.util.ArrayList;
import java.util.Observer;

@Config("hive_default")
public class TestSyncHive extends HiveTest {

  /**
   * Load two Hive instances, use one to update the hive, and have the other listen for updates
   * from the HiveSyncDaeon.
   */
  @Test
  public void testDaemonSync() throws Exception {
    Hive hive = loadHive();
    Hive passiveSync = loadHive();
    ArrayList<Observer> observers = new ArrayList<Observer>();
    observers.add(passiveSync);
    HiveSyncDaemon daemon = new HiveSyncDaemon(getConnectString(getHiveDatabaseName()), observers);
    daemon.detectChanges();

    hive.addNode(createNode(getHiveDatabaseName()));

    daemon.detectChanges();

//    nodeReport(passiveSync, hive);

    Assert.assertNotNull(passiveSync.getNode(createNode(getHiveDatabaseName()).getName()));
  }

  @SuppressWarnings("unused")
  private void nodeReport(Hive passiveSync, Hive hive) {
    System.out.println("Passively synced Hive:" + passiveSync.getRevision());
    for (Node node : passiveSync.getNodes())
      System.out.println(node.getName());
    System.out.println("In-memory Hive " + hive.getRevision());
    for (Node node : hive.getNodes())
      System.out.println(node.getName());
  }

  private Hive loadHive() throws HiveException {
    return Hive.load(getConnectString(getHiveDatabaseName()), CachingDataSourceProvider.getInstance());
  }
}
TOP

Related Classes of org.hivedb.persistence.TestSyncHive

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.