@Test public void testDelegates() { assertEquals(foo.mockSession, this.dsf.getSession("foo")); assertEquals(bar.mockSession, this.dsf.getSession("bar")); assertEquals(bar.mockSession, this.dsf.getSession("junk")); assertEquals(bar.mockSession, this.dsf.getSession()); this.dsf.setThreadKey("foo"); assertEquals(foo.mockSession, this.dsf.getSession("foo")); this.dsf.clearThreadKey(); TestSessionFactory factory = new TestSessionFactory(); this.sessionFactoryLocator.addSessionFactory("baz", factory); this.dsf.setThreadKey("baz"); assertEquals(factory.mockSession, this.dsf.getSession("baz")); this.dsf.clearThreadKey(); assertSame(factory, sessionFactoryLocator.removeSessionFactory("baz")); }