public void EndWorkingSession_onSubclassException_dontWrapInvalidOperationException() { // arrange: System.Collections.Generic.List <object> mocks = new System.Collections.Generic.List <object>(); InvalidOperationException thrownException = new InvalidOperationException("thrownException"); Fakes.FakeEnterprise enterprise = MockRepository.GeneratePartialMock <Fakes.FakeEnterprise>(); mocks.Add(enterprise); IPrincipal owner = MockRepository.GenerateStrictMock <IPrincipal>(); mocks.Add(owner); WorkingSessionBase session = MockRepository.GeneratePartialMock <WorkingSessionBase>("MockWorkingSession", owner); mocks.Add(session); enterprise.Expect(e => e.CallBeforeWorkingSessionEnd(owner, session)).Throw(thrownException).Repeat.Once(); InvalidOperationException cought = null; // act: try { enterprise.EndWorkingSession(owner, session); } catch (InvalidOperationException e) { cought = e; } // assert: Assert.IsNotNull(cought); Assert.AreSame(thrownException, cought); foreach (object m in mocks) { m.VerifyAllExpectations(); } }
public void AcquireWorkingSession_withValidArguments_callTemplateMethod() { // arrange: System.Collections.Generic.List <object> mocks = new System.Collections.Generic.List <object>(); string identifier = "testWorkingSession"; Fakes.FakeEnterprise enterprise = MockRepository.GeneratePartialMock <Fakes.FakeEnterprise>(); mocks.Add(enterprise); IPrincipal owner = MockRepository.GenerateStrictMock <IPrincipal>(); mocks.Add(owner); WorkingSessionBase session = MockRepository.GeneratePartialMock <WorkingSessionBase>("MockWorkingSession", owner); mocks.Add(session); enterprise.Expect(e => e.CallAcquireWorkingSessionReal(owner, identifier)).Return(session).Repeat.Once(); // act: IWorkingSession returnedWorkingSession = enterprise.AcquireWorkingSession(owner, identifier); // assert: Assert.IsNotNull(returnedWorkingSession); Assert.AreSame(session, returnedWorkingSession); foreach (object m in mocks) { m.VerifyAllExpectations(); } }
public void StartWorkingSession_withOwner_callTemplateMethod() { // arrange: System.Collections.Generic.List <object> mocks = new System.Collections.Generic.List <object>(); Fakes.FakeEnterprise enterprise = MockRepository.GeneratePartialMock <Fakes.FakeEnterprise>(); mocks.Add(enterprise); IPrincipal owner = MockRepository.GenerateStrictMock <IPrincipal>(); mocks.Add(owner); WorkingSessionBase outWorkingSessionBase = null; WorkingSessionBase session = MockRepository.GeneratePartialMock <WorkingSessionBase>("MockWorkingSession", owner); mocks.Add(session); enterprise.Expect(e => e.CallStartWorkingSession(owner, out outWorkingSessionBase)).OutRef(session).Repeat.Once(); IWorkingSession outWorkingSession = null; // act: enterprise.StartWorkingSession(owner, out outWorkingSession); // assert: Assert.IsNotNull(outWorkingSession); Assert.AreSame(session, outWorkingSession); foreach (object m in mocks) { m.VerifyAllExpectations(); } }
public void EndWorkingSession_onWorkingSessionException_throwsInvalidOperationException() { // arrange: System.Collections.Generic.List <object> mocks = new System.Collections.Generic.List <object>(); Exception dummyException = new Exception("dummyException"); Fakes.FakeEnterprise enterprise = MockRepository.GeneratePartialMock <Fakes.FakeEnterprise>(); mocks.Add(enterprise); IPrincipal owner = MockRepository.GenerateStrictMock <IPrincipal>(); owner.Expect(p => p.Identity).Return(new GenericIdentity("testPrincipal")); mocks.Add(owner); FakeWorkingSession session = MockRepository.GeneratePartialMock <FakeWorkingSession>("MockWorkingSession", owner); session.Expect(s => s.CallBeforeDispose()).Throw(dummyException).Repeat.Once(); mocks.Add(session); enterprise.Expect(e => e.CallBeforeWorkingSessionEnd(owner, session)).Repeat.Once(); InvalidOperationException cought = null; // act: try { enterprise.EndWorkingSession(owner, session); } catch (InvalidOperationException e) { cought = e; } // assert: Assert.IsNotNull(cought); Assert.AreSame(dummyException, cought.InnerException); foreach (object m in mocks) { m.VerifyAllExpectations(); } }
public void EndWorkingSession_withValidArguments_callTemplateMethod() { // arrange: System.Collections.Generic.List <object> mocks = new System.Collections.Generic.List <object>(); Fakes.FakeEnterprise enterprise = MockRepository.GeneratePartialMock <Fakes.FakeEnterprise>(); mocks.Add(enterprise); IPrincipal owner = MockRepository.GenerateStrictMock <IPrincipal>(); mocks.Add(owner); FakeWorkingSession session = MockRepository.GeneratePartialMock <FakeWorkingSession>("MockWorkingSession", owner); session.Expect(s => s.CallBeforeDispose()).Repeat.Once(); mocks.Add(session); enterprise.Expect(e => e.CallBeforeWorkingSessionEnd(owner, session)).Repeat.Once(); // act: enterprise.EndWorkingSession(owner, session); // assert: foreach (object m in mocks) { m.VerifyAllExpectations(); } }