Inheritance: GrassrootsControllerBase
        private void SetUpController()
        {
            var mailer = mocks.DynamicMock<IDonateMailer>();
            MailerBase.IsTestModeEnabled = true;
            paymentProviderFactory = mocks.DynamicMock<IPaymentProviderFactory>();

            controller = new DonateController(campaignRepository, userProfileRepository, mailer, paymentProviderFactory, campaignDonorRepository)
                             {
                                 OrganizationRepository = organizationRepository
                             };

            TestHelpers.MockBasicRequest(controller);
        }
        private void SetUpController(MockRepository mocks, Payment payment = null, bool isPaymentApproved = true)
        {
            var mailer = mocks.DynamicMock<IDonateMailer>();
            MailerBase.IsTestModeEnabled = true;
            var paymentProviderFactory = mocks.DynamicMock<IPaymentProviderFactory>();
            var paymentProvider = mocks.StrictMock<IPaymentProvider>();

            if (payment != null)
            {
                PaymentResponse response = isPaymentApproved ?
                    new PaymentResponse(PaymentResponseCode.Approved, -1, string.Empty) :
                    new PaymentResponse(PaymentResponseCode.Error, -1, string.Empty);

                Expect.Call(paymentProviderFactory.GetPaymentProvider(PaymentGatewayType.PayPal)).IgnoreArguments()
                    .Return(paymentProvider);
                Expect.Call(paymentProvider.Process(payment)).IgnoreArguments().Return(response);
            }

            controller = new DonateController(campaignRepository, userProfileRepository, mailer, paymentProviderFactory, campaignDonorRepository)
                             {
                                 OrganizationRepository = organizationRepository
                             };

            var context = MockRepository.GenerateStub<HttpContextBase>();
            var request = MockRepository.GenerateStub<HttpRequestBase>();
            context.Stub(x => x.Request).Return(request);
            context.User = new GenericPrincipal(new GenericIdentity("goodEmail"), null);
            controller.ControllerContext = new ControllerContext(context, new RouteData(), controller);
        }
 public void TearDown()
 {
     FakeUserProfileRepository.Reset();
     FakeCampaignRepository.Reset();
     FakeOrganizationRepository.Reset();
     FakeUserRepository.Reset();
     FakeCampaignDonorRepository.Reset();
     controller = null;
     mocks = null;
 }