Package org.prevayler.implementation

Source Code of org.prevayler.implementation.TransactionWithQueryTest

package org.prevayler.implementation;

import org.prevayler.Prevayler;
import org.prevayler.PrevaylerFactory;
import org.prevayler.foundation.FileIOTest;
import org.prevayler.foundation.serialization.JavaSerializer;
import org.prevayler.foundation.serialization.Serializer;
import org.prevayler.foundation.serialization.XStreamSerializer;

public class TransactionWithQueryTest extends FileIOTest {

  public void testJavaJournal() throws Exception {
    Serializer strategy = new JavaSerializer();

    startAndCrash(strategy);
    recover(strategy);
  }

  public void testXStreamJournal() throws Exception {
    Serializer strategy = new XStreamSerializer();

    startAndCrash(strategy);
    recover(strategy);
  }

  private void startAndCrash(Serializer journalSerializer) throws Exception {
    Prevayler<StringBuffer> prevayler = createPrevayler(journalSerializer);

    assertEquals("the system first", prevayler.execute(new AppendTransactionWithQuery(" first")));
    assertEquals("the system first second", prevayler.execute(new AppendTransactionWithQuery(" second")));
    assertEquals("the system first second third", prevayler.execute(new AppendTransactionWithQuery(" third")));
    assertEquals("the system first second third", prevayler.prevalentSystem().toString());
    prevayler.close();
  }

  private void recover(Serializer journalSerializer) throws Exception {
    Prevayler<StringBuffer> prevayler = createPrevayler(journalSerializer);
    assertEquals("the system first second third", prevayler.prevalentSystem().toString());
  }

  private Prevayler<StringBuffer> createPrevayler(Serializer journalSerializer) throws Exception {
    PrevaylerFactory<StringBuffer> factory = new PrevaylerFactory<StringBuffer>();
    factory.configurePrevalentSystem(new StringBuffer("the system"));
    factory.configurePrevalenceDirectory(_testDirectory);
    factory.configureJournalSerializer("journal", journalSerializer);
    return factory.create();
  }

}
TOP

Related Classes of org.prevayler.implementation.TransactionWithQueryTest

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.