summaryrefslogtreecommitdiffstats
path: root/sandbox/old/contrib/persistence/store.journal/src/test/java/org/apache/tuscany/persistence/store/journal/JournalTestCase.java
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/old/contrib/persistence/store.journal/src/test/java/org/apache/tuscany/persistence/store/journal/JournalTestCase.java')
-rw-r--r--sandbox/old/contrib/persistence/store.journal/src/test/java/org/apache/tuscany/persistence/store/journal/JournalTestCase.java78
1 files changed, 78 insertions, 0 deletions
diff --git a/sandbox/old/contrib/persistence/store.journal/src/test/java/org/apache/tuscany/persistence/store/journal/JournalTestCase.java b/sandbox/old/contrib/persistence/store.journal/src/test/java/org/apache/tuscany/persistence/store/journal/JournalTestCase.java
new file mode 100644
index 0000000000..2df83a0e74
--- /dev/null
+++ b/sandbox/old/contrib/persistence/store.journal/src/test/java/org/apache/tuscany/persistence/store/journal/JournalTestCase.java
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.persistence.store.journal;
+
+import java.io.ByteArrayOutputStream;
+import java.util.UUID;
+
+import static org.apache.tuscany.spi.services.store.Store.NEVER;
+
+import junit.framework.TestCase;
+import static org.apache.tuscany.persistence.store.journal.SerializationHelper.serializeHeader;
+import static org.apache.tuscany.persistence.store.journal.SerializationHelper.serializeRecordId;
+import org.objectweb.howl.log.Configuration;
+import org.objectweb.howl.log.LogRecord;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class JournalTestCase extends TestCase {
+ private Journal journal;
+
+ public void testWriteHeader() throws Exception {
+ String id = UUID.randomUUID().toString();
+ long key = journal.writeHeader(serializeHeader(Header.INSERT, 10, "foo/bar", id, NEVER), false);
+ LogRecord record = journal.get(null, key);
+ Header header = new Header();
+ header.setFields(record.getFields());
+ SerializationHelper.deserializeHeader(header);
+ assertTrue(record.type == Journal.HEADER);
+ assertEquals(Header.INSERT, header.getOperation());
+ assertEquals(10, header.getNumBlocks());
+ assertEquals("foo/bar", header.getOwnerId());
+ assertEquals(id, header.getId());
+ assertEquals(NEVER, header.getExpiration());
+ }
+
+ public void testWriteRecord() throws Exception {
+ byte[] recordId = serializeRecordId("foo", UUID.randomUUID().toString());
+ long key = journal.writeBlock("this is a test".getBytes(), recordId, true);
+ LogRecord record = journal.get(null, key);
+ ByteArrayOutputStream stream = new ByteArrayOutputStream();
+ assertEquals(record.type, Journal.RECORD);
+ stream.write(record.getFields()[1]);
+ JournalRecord jrecord = new JournalRecord(stream.toByteArray());
+ assertEquals("this is a test", new String(jrecord.getData()));
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ TestUtils.cleanupLog();
+ Configuration config = new Configuration();
+ config.setLogFileDir("../stores");
+ journal = new Journal(config);
+ journal.open();
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ journal.close();
+ TestUtils.cleanupLog();
+ }
+}