public static void ClassInit(TestContext context)
 {
     _payPalMocked = new Mock<IPayPalService>();
     _loggerMocked = new Mock<ILog>();
     _emailerMocked = new Mock<IEmailService>();
     _db = new FakeGroveMartDb();
     _controller = new PaymentController(_loggerMocked.Object, _payPalMocked.Object, _emailerMocked.Object, _db) { ControllerContext = new FakeControllerContext() };
     _loggerMocked.Setup(p => p.ErrorFormat(It.IsAny<string>()));
 }
        /// <summary>
        /// Unity.Mvc4 has been used for dependency injection
        /// </summary>
        /// <param name="logger">Log4net instance for logging</param>
        /// <param name="payPalService">for PayPal/Credit card payments</param>
        /// <param name="emailService">for sending emails</param>
        /// <param name="db">database where the transaction details are stoed</param>
        public PaymentController(ILog logger, IPayPalService payPalService, IEmailService emailService, IFakeGroveMartDb db)
        {
            _logger = logger;
            _payPalService = payPalService;
            _emailService = emailService;
            _groveMartdb = db as FakeGroveMartDb;

            // add some dummy order data to database
            if (_groveMartdb != null && _groveMartdb.Sets.Count == 0) _groveMartdb.AddSet(TestData.Orders);
        }