/*
* Copyright (c) 2013 QNX Software Systems 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:
* Andrew Eidsness - Initial implementation
*/
package org.eclipse.cdt.internal.pdom.tests;
import java.io.File;
import junit.framework.Test;
import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
import org.eclipse.cdt.internal.core.pdom.db.ChunkCache;
import org.eclipse.cdt.internal.core.pdom.db.Database;
import org.eclipse.cdt.internal.core.pdom.db.PDOMStringSet;
// copy/pasted from BTreeTests
public class PDOMStringSetTests extends BaseTestCase {
protected File dbFile;
protected Database db;
protected PDOMStringSet stringSet;
protected int rootRecord;
public static Test suite() {
return suite(PDOMStringSetTests.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
dbFile = File.createTempFile("pdomstringsettest", "db");
db = new Database(dbFile, new ChunkCache(), 0, false);
db.setExclusiveLock();
rootRecord = Database.DATA_AREA;
stringSet = new PDOMStringSet(db, rootRecord);
}
@Override
protected void tearDown() throws Exception {
db.close();
dbFile.deleteOnExit();
super.tearDown();
}
// Quick tests to exercise the basic functionality.
public void testInterface() throws Exception {
long val1_rec_a = stringSet.add("val1");
long val2_rec_a = stringSet.add("val2");
long val1_rec_b = stringSet.add("val1");
assertTrue(val1_rec_a != 0);
assertTrue(val2_rec_a != 0);
assertEquals(val1_rec_a, val1_rec_b);
long val1_find = stringSet.find("val1");
long val2_find = stringSet.find("val2");
assertEquals(val1_rec_a, val1_find);
assertEquals(val2_rec_a, val2_find);
long val1_rm = stringSet.remove("val1");
assertEquals(val1_rec_a, val1_rm);
assertEquals(0, stringSet.find("val1"));
assertEquals(val2_rec_a, stringSet.find("val2"));
stringSet.clearCaches();
assertEquals(val2_rec_a, stringSet.find("val2"));
assertEquals(0, stringSet.find("val1"));
}
}