public void ManualMockingScenarioTest()
        {
            ManualMockSession sess = new ManualMockSession();

            Sample.ICurrencyService cv = (Sample.ICurrencyService)sess.Mock(typeof(Sample.ICurrencyService), "cs")
                                         .ExpectAndReturn("ConvertAmount", 50m)
                                         .ExpectAndReturn("ConvertAmount", 80m).WithArguments(50m, ExpectedValue.OfType(typeof(Sample.CurrencyUnit)), ExpectedValue.OfType(typeof(Sample.CurrencyUnit)))
                                         .ExpectAndReturn("ConvertAmount", 30m).WithArguments(ExpectedValue.Any, ExpectedValue.OfType(typeof(Sample.CurrencyUnit)), Sample.CurrencyUnit.EUR).RepeatTimes(3)
                                         .Mock;
            Sample.CurrencyServiceFactory.NextInstance = cv;
            Sample.Account acc = new Sample.Account(Sample.CurrencyUnit.EUR);
            acc.Deposit(100m);
            Assert.AreEqual(100m, acc.Balance);
            acc.SwitchCurrency(Sample.CurrencyUnit.GBP);
            Assert.AreEqual(50m, acc.Balance);
            acc.SwitchCurrency(Sample.CurrencyUnit.USD);
            Assert.AreEqual(80m, acc.Balance);
            acc.SwitchCurrency(Sample.CurrencyUnit.EUR);
            Assert.AreEqual(30m, acc.Balance);
            acc.SwitchCurrency(Sample.CurrencyUnit.EUR);
            Assert.AreEqual(30m, acc.Balance);
            try
            {
                acc.SwitchCurrency(Sample.CurrencyUnit.NULL);
                Assert.Fail("Exception expected.");
            }
            catch (ReplayMockException) { }
            sess.ValidateSession();
        }
 public void NoMockingTest()
 {
     using (RecorderManager.NewPlayBackSession("test", false))
     {
         Sample.ICurrencyService srv = Sample.CurrencyServiceFactory.NextInstance;
         Assert.IsFalse(MockService.IsMock(srv));
     }
 }
        public void ManualMockingValidate02Test()
        {
            ManualMockSession sess = new ManualMockSession();

            Sample.ICurrencyService cv = (Sample.ICurrencyService)sess.Mock(typeof(Sample.ICurrencyService), "cs")
                                         .Mock;
            cv.ConvertAmount(100m, Sample.CurrencyUnit.EUR, Sample.CurrencyUnit.USD);
        }
 public void MockingTest()
 {
     using (RecorderManager.NewPlayBackSession("test", false))
     {
         MockService.AddTypeToMock(typeof(Sample.CustomizableCurrencyService));
         Sample.ICurrencyService srv = Sample.CurrencyServiceFactory.NextInstance;
         Assert.IsTrue(MockService.IsMock(srv));
     }
 }
        public void ManualMockingValidate01Test()
        {
            ManualMockSession sess = new ManualMockSession();

            Sample.ICurrencyService cv = (Sample.ICurrencyService)sess.Mock(typeof(Sample.ICurrencyService), "cs")
                                         .ExpectAndReturn("ConvertAmount", 50m)
                                         .Mock;
            sess.ValidateSession();
        }
 public void CustomMockingScenarioTest()
 {
     using (RecorderManager.NewPlayBackSession("test", false))
     {
         MockService.AddTypeToMock(typeof(Sample.CustomizableCurrencyService));
         Sample.ICurrencyService srv = Sample.CurrencyServiceFactory.NextInstance;
         decimal result = srv.ConvertAmount(100, Sample.CurrencyUnit.NULL, Sample.CurrencyUnit.GBP);
         Assert.AreEqual(100m, result);
     }
 }
        public void ManualMockingValidate03Test()
        {
            ManualMockSession sess = new ManualMockSession();

            Sample.ICurrencyService cv = (Sample.ICurrencyService)sess.Mock(typeof(Sample.ICurrencyService), "cs")
                                         .ExpectAndReturn("GetRate", 1.2m)
                                         .Mock;
            Assert.AreEqual(1.2m, cv.GetRate(Sample.CurrencyUnit.GBP));
            sess.ValidateSession();
        }
        public void ManualMockingValidate05Test()
        {
            ManualMockSession sess = new ManualMockSession();

            Sample.ICurrencyService cv = (Sample.ICurrencyService)sess.Mock(typeof(Sample.ICurrencyService), "cs")
                                         .ExpectAndReturn("ConvertAmount", 50m).WithArguments(ExpectedValue.Any, Sample.CurrencyUnit.EUR, Sample.CurrencyUnit.GBP)
                                         .Mock;
            try
            {
                cv.ConvertAmount(100m, Sample.CurrencyUnit.EUR, Sample.CurrencyUnit.USD);
                Assert.Fail("Should have thrown exception.");
            }
            catch (ReplayMockException ex)
            {
                Assert.IsTrue(ex.Message.IndexOf("\"to\"") >= 0, "Argument 'to' should be marked to have an invalid value.");
            }
        }
Example #9
0
        private void PlainObjectMockingTest_Scenario(bool mocking, bool plainInstanceCreation)
        {
            // Create instance of a plain object (not a MarshalByRef) for mocking:
            Sample.PlainCurrencyService.WatchInstanceCreation();
            Sample.ICurrencyService serv = (Sample.ICurrencyService)MockingTools.Construct("cs", typeof(Sample.PlainCurrencyService), typeof(Sample.ICurrencyService));

            decimal d1, d2, r1, r2;

            d1 = serv.ConvertAmount(100m, Sample.CurrencyUnit.GBP, Sample.CurrencyUnit.USD);
            d2 = serv.ConvertAmount(d1, Sample.CurrencyUnit.USD, Sample.CurrencyUnit.GBP);

            r1 = serv.GetRate(Sample.CurrencyUnit.USD);
            r2 = serv.GetRate(Sample.CurrencyUnit.GBP);

            // Check mocking:
            Assert.AreEqual(mocking, MockService.IsMock(serv), "Mock should have been created.");
            Assert.AreEqual(plainInstanceCreation, Sample.PlainCurrencyService.IsInstanceCreated);

            // Check call results:
            Assert.AreNotEqual(100m, d1);
            Assert.AreEqual(100m, d2);
            Assert.AreEqual(1.2m, r1);
            Assert.AreEqual(0.7m, r2);
        }
        public void ManualMockingCompatibilityTest()
        {
            ManualMockSession sess = new ManualMockSession();

            Sample.ICurrencyService cv = (Sample.ICurrencyService)sess.Mock(typeof(Sample.ICurrencyService), "cs").Mock;
        }