public void DoWork(ISessionFactory sessions) { var provider = new SessionFactoryProviderStub(sessions); var cf = new DefaultConversationFactory(provider, new FakeSessionWrapper()); var cca = new NhConversationsContainerAccessor(provider); var tc1 = cca.Container; tc1.Bind(cf.CreateConversation("1")); var dao = new SillyDao(sessions); tc1.SetAsCurrent("1"); tc1.CurrentConversation.Start(); var o = new Other3 { Name = "some other silly" }; var e = new Silly3 { Name = "somebody", Other = o }; dao.MakePersistent(e); tc1.CurrentConversation.End(); }
public void Ctor() { Assert.Throws <ArgumentNullException>(() => new NhConversationsContainerAccessor(null)); Assert.Throws <ConversationException>(() => new NhConversationsContainerAccessor(new ISessionFactory[0])); var invalidSFmock = proxyGenerator.CreateProxy <ISessionFactory>(new InvalidSessionFactory()); Assert.Throws <ConversationException>(() => new NhConversationsContainerAccessor(new[] { invalidSFmock })); var notvalidSFmock = proxyGenerator.CreateProxy <ISessionFactoryImplementor>(new SessionFactoryMock(), new[] { typeof(ISessionFactory) }); Assert.Throws <ConversationException>(() => new NhConversationsContainerAccessor(new[] { notvalidSFmock })); var container = new ThreadLocalConversationalSessionContext(null); var validSFmock = proxyGenerator.CreateProxy <ISessionFactoryImplementor>(new SessionFactoryMock { SessionContext = container }, new[] { typeof(ISessionFactory) }); var ca = new NhConversationsContainerAccessor(new[] { validSFmock }); Assert.That(ca.Container, Is.SameAs(container)); var sessionFactoryMock = new SessionFactoryMock(); var contexMock = proxyGenerator.CreateProxy <ISessionFactoryImplementor>(sessionFactoryMock, new[] { typeof(ISessionFactory) }); sessionFactoryMock.SessionContext = new ThreadLocalSessionContext(contexMock); try { new NhConversationsContainerAccessor(new[] { contexMock }); } catch (ConversationException e) { Assert.That(e.Message, Text.Contains("Current session context does not implement IConversationContainer")); } }