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

            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> >();
            SmtpEMailSenderBase <string> senderMock    = MockRepository.Mock <SmtpEMailSenderBase <string> >();

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

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