public void CannotSetCommitModeAfterSessionStarted() { var t = MockRepository.GenerateStub<ITransaction>(); var s = MockRepository.GenerateStub<ISession>(); var sf = MockRepository.GenerateStub<ISessionFactory>(); var cc = MockRepository.GenerateStub<INhConversationContext>(); sf.Stub(x => x.OpenSession()).Return(s); s.Stub(x => x.BeginTransaction()).IgnoreArguments().Return(t); var cm = ConversationCommitMode.Explicit; var c = new NhConversation(sf, cc); c.Execute(x => { }); // Call doesn't matter, it's a stub var e = Assert.Throws<NotSupportedException>(() => c.CommitMode = cm); Assert.That(e.Message, Contains.Substring("CommitMode")); Assert.That(e.Message, Contains.Substring("started")); }
public void ExceptionsCancelTheConversation() { var t = MockRepository.GenerateStub<ITransaction>(); var s = MockRepository.GenerateStub<ISession>(); var sf = MockRepository.GenerateStub<ISessionFactory>(); var cc = MockRepository.GenerateStub<INhConversationContext>(); sf.Stub(x => x.OpenSession()).Return(s); s.Stub(x => x.BeginTransaction()).IgnoreArguments().Return(t); var c = new NhConversation(sf, cc); ConversationCanceledEventArgs eventRaised = null; object eventRaiser = null; c.Canceled += (o, a) => { eventRaiser = o; eventRaised = a; }; var e = Assert.Throws<Exception>(() => c.Execute(x => { throw new Exception("foo"); })); Assert.That(e.Message, Is.EqualTo("foo")); Assert.That(eventRaised, Is.Not.Null); Assert.That(eventRaised.CanceledByUser, Is.False); Assert.That(eventRaised.Exception, Is.SameAs(e)); Assert.That(eventRaiser, Is.SameAs(c)); }
public void ExceptionsInExecuteCancelTheConversation() { var sf = MockRepository.GenerateStub<ISessionFactory>(); var cc = MockRepository.GenerateStub<INhConversationContext>(); var c = new NhConversation(sf, cc); ConversationCanceledEventArgs eventRaised = null; object eventRaiser = null; c.Canceled += (o, a) => { eventRaiser = o; eventRaised = a; }; var e = Assert.Throws<Exception>(() => c.Execute(() => { throw new Exception("foo"); })); Assert.That(e.Message, Is.EqualTo("foo")); Assert.That(eventRaised, Is.Not.Null); Assert.That(eventRaised.CanceledByUser, Is.False); Assert.That(eventRaised.Exception, Is.SameAs(e)); Assert.That(eventRaiser, Is.SameAs(c)); }
public void CannotCallExecuteWhenConversationIsCanceled() { var sf = MockRepository.GenerateStub<ISessionFactory>(); var cc = MockRepository.GenerateStub<INhConversationContext>(); var c = new NhConversation(sf, cc); c.Cancel(); var e = Assert.Throws<InvalidOperationException>(() => c.Execute(() => { ; })); // Call doesn't matter, it's a stub Assert.That(e.Message, Contains.Substring("canceled")); }
public void CanUseExecuteToSwitchConversation() { NhConversationContext context = new NhConversationContext(); var sf = MockRepository.GenerateStub<ISessionFactory>(); var conv1 = new NhConversation(sf, context); var conv2 = new NhConversation(sf, context); Assert.That(context.CurrentConversation, Is.Null); conv1.Execute(() => Assert.That(context.CurrentConversation, Is.SameAs(conv1))); conv2.Execute(() => Assert.That(context.CurrentConversation, Is.SameAs(conv2))); Assert.That(context.CurrentConversation, Is.Null); }
public void RestartingTheConversationResetsCancelState() { var t = MockRepository.GenerateStub<ITransaction>(); var s = MockRepository.GenerateStub<ISession>(); var sf = MockRepository.GenerateStub<ISessionFactory>(); var cc = MockRepository.GenerateStub<INhConversationContext>(); sf.Stub(x => x.OpenSession()).Return(s); s.Stub(x => x.BeginTransaction()).IgnoreArguments().Return(t); var c = new NhConversation(sf, cc); c.Cancel(); c.Restart(); bool called = false; c.Execute(x => called = true); // Call doesn't matter, it's a stub Assert.That(called); }