/*
* JCarder -- cards Java programs to keep threads disentangled
*
* Copyright (C) 2006-2007 Enea AB
* Copyright (C) 2007 Ulrik Svensson
* Copyright (C) 2007 Joel Rosdahl
*
* This program is made available under the GNU GPL version 2, with a special
* exception for linking with JUnit. See the accompanying file LICENSE.txt for
* details.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*/
package com.enea.jcarder.common.contexts;
import java.io.File;
import java.io.IOException;
import org.junit.Assert;
import org.junit.Test;
import com.enea.jcarder.common.Lock;
import com.enea.jcarder.common.LockingContext;
import com.enea.jcarder.common.contexts.ContextFileReader;
import com.enea.jcarder.common.contexts.ContextFileWriter;
import com.enea.jcarder.util.logging.Logger;
public final class TestContextFile {
@Test
public void writeReadTest() throws IOException {
File file = File.createTempFile(TestContextFile.class.getName(),
null);
ContextFileWriter writer =
new ContextFileWriter(new Logger(null), file);
Lock lock = new Lock("myClassName", 5);
LockingContext context = new LockingContext("myThreadName",
"myLockReference",
"myMethod");
int lockId = writer.writeLock(lock);
int contextId = writer.writeContext(context);
writer.close();
ContextFileReader reader = new ContextFileReader(new Logger(null), file);
Assert.assertEquals(lock, reader.readLock(lockId));
Assert.assertEquals(context, reader.readContext(contextId));
file.delete();
}
}