public void Invalid_DelegateToGenericMock()
        {
            IEMailFormatter <string> formatterMock = MockRepository.Mock <IEMailFormatter <string> >();

            formatterMock.SetUnexpectedBehavior(UnexpectedCallBehaviors.BaseOrDefault);
            SmtpEMailSenderBase <string> senderMock = MockRepository.Mock <SmtpEMailSenderBase <string> >();

            senderMock.SetUnexpectedBehavior(UnexpectedCallBehaviors.BaseOrDefault);

            Assert.Throws <InvalidOperationException>(
                () => senderMock.Expect(x => x.SetFormatter(formatterMock))
                .DoInstead((Action <IEMailFormatter <int> >) delegate(IEMailFormatter <int> formatter)
            {
                Assert.NotNull(formatter);
            }));
        }
        public void DelegateToGenericMock()
        {
            IEMailFormatter <string> formatterMock = MockRepository.Mock <IEMailFormatter <string> >();

            formatterMock.SetUnexpectedBehavior(UnexpectedCallBehaviors.BaseOrDefault);
            SmtpEMailSenderBase <string> senderMock = MockRepository.Mock <SmtpEMailSenderBase <string> >();

            senderMock.SetUnexpectedBehavior(UnexpectedCallBehaviors.BaseOrDefault);

            senderMock.Expect(x => x.SetFormatter(formatterMock))
            .DoInstead((Action <IEMailFormatter <string> >) delegate(IEMailFormatter <string> formatter)
            {
                Assert.NotNull(formatter);
            });

            senderMock.SetFormatter(formatterMock);
            senderMock.VerifyExpectations(true);
        }