blob: 8029d5d6c03626e9355d56ff5659a95f57b8bee5 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010-2014 SAP AG and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* SAP AG - initial API and implementation
*******************************************************************************/
package org.eclipse.skalli.core.storage;
import java.io.File;
import org.apache.commons.io.FileUtils;
import org.eclipse.skalli.core.storage.Historian.HistoryEntry;
import org.eclipse.skalli.core.storage.Historian.HistoryIterator;
import org.eclipse.skalli.testutil.TestUtils;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@SuppressWarnings("nls")
public class HistorianTest {
private File tmpDir;
private File fileOrig;
private File fileOther;
private File fileHistory;
@Before
public void setup() throws Exception {
tmpDir = TestUtils.createTempDir("HistorianTest");
fileOrig = new File(tmpDir, "bla.xml");
FileUtils.writeStringToFile(fileOrig, "TEST CONTENT");
fileOther = new File(tmpDir, "blubb.xml");
FileUtils.writeStringToFile(fileOther, "TEST CONTENT");
fileHistory = new File(tmpDir, ".history");
}
@After
public void tearDown() throws Exception {
if (tmpDir != null) {
FileUtils.forceDelete(tmpDir);
}
}
@Test
public void testHistorizeSingleFile() throws Exception {
Historian h = new Historian(tmpDir);
Assert.assertFalse(fileHistory.exists());
h.historize(fileOrig);
h = new Historian(tmpDir);
h.historize(fileOrig);
h = new Historian(tmpDir);
h.historize(fileOther);
h = new Historian(tmpDir);
h.historize(fileOrig);
h = new Historian(tmpDir);
h.historize(fileOrig);
Assert.assertTrue(fileHistory.exists());
assertHistoryEntries(h, 5);
assertHistoryEntries(h, "bla", 4);
assertHistoryEntries(h, "blubb", 1);
}
private void assertHistoryEntries(Historian h, int size) throws Exception {
int i = 0;
HistoryIterator it = null;
try {
it = h.getHistory(null);
while (it.hasNext()) {
it.next();
++i;
}
} finally {
it.close();
}
Assert.assertEquals(size, i);
}
private void assertHistoryEntries(Historian h, String id, int size) throws Exception {
int i = 0;
HistoryIterator it = null;
try {
it = h.getHistory(id);
while (it.hasNext()) {
HistoryEntry next = it.next();
Assert.assertEquals(id, next.getId());
Assert.assertEquals("TEST CONTENT", next.getContent());
Assert.assertTrue(next.getTimestamp() > 0);
++i;
}
} finally {
it.close();
}
Assert.assertEquals(size, i);
}
}