package deadlock_test;

import static org.junit.Assert.*;

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class DeadlockTest {
	private static Logger s_logger = LoggerFactory.getLogger(DeadlockTest.class);

	@Test
	public void testname() throws Exception {
		s_logger.info("Starting test.");

		final Worker worker = new Worker();
		final Thread workerThread = new Thread(new Runnable() {
			public void run() {
				worker.work();
			}
		});
		workerThread.setName("WorkerThread");

		final Thread accessorThread = new Thread(new Runnable() {
			public void run() {
				new Accessor().access(worker);
			}
		});
		accessorThread.setName("AccessorThread");

		workerThread.start();
		accessorThread.start();

		workerThread.join(100*1000);
		assertFalse("Worker thread seems locked.", workerThread.isAlive());
	}
}
