Skip to content
Snippets Groups Projects
Verified Commit a28ddb9d authored by Timm Fitschen's avatar Timm Fitschen
Browse files

TST: add unit testt for etag

parent 4958e1d6
Branches
Tags
4 merge requests!21Release v0.4.0,!7F fsm,!6Draft: F acm permissions2,!1F etag
......@@ -985,4 +985,16 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac
public Role getRole() {
return this.role;
}
/**
* Return the ETag.
*
* <p>The ETag tags the query cache and is renewed each time the cache is being cleared, i.e. each
* time the database is being updated.
*
* @return The ETag
*/
public static String getETag() {
return cacheETag;
}
}
package org.caosdb.server.query;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.fail;
import java.io.IOException;
import org.caosdb.server.CaosDBServer;
import org.caosdb.server.database.access.InitAccess;
import org.caosdb.server.transaction.WriteTransaction;
import org.junit.BeforeClass;
import org.junit.Test;
......@@ -61,4 +66,36 @@ public class QueryTest {
assertNull(q.getEntity());
assertEquals(Query.Role.ENTITY, q.getRole());
}
/** Assure that {@link WriteTransaction#commit()} calls {@link Query#clearCache()}. */
@Test
public void testEtagChangesAfterWrite() {
String old = Query.getETag();
assertNotNull(old);
WriteTransaction w =
new WriteTransaction(null) {
@Override
public boolean useCache() {
// this function is being overriden purely for the purpose of calling
// commit() (which is protected)
try {
// otherwise the test fails because getAccess() return null;
setAccess(new InitAccess(null));
commit();
} catch (Exception e) {
fail("this should not happen");
}
return false;
}
};
// trigger commit();
w.useCache();
String neu = Query.getETag();
assertNotEquals(old, neu, "old and new tag should not be equal");
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment