public void ParseValidArgsWillReturnCorrectResult()
        {
            // Fixture setup
            var fixture = new CurrencyFixture();

            var rate = fixture.CreateAnonymous <decimal>();

            var srcCurrencyArg  = "EUR";
            var destCurrencyArg = "USD";
            var rateArg         = rate.ToString();

            var currencyStub = fixture.CreateMoq <Currency>();

            currencyStub.Setup(c => c.Code).Returns(srcCurrencyArg);

            fixture.FreezeMoq <CurrencyProvider>().Setup(cp => cp.GetCurrency(srcCurrencyArg)).Returns(currencyStub.Object);

            var expectedResult = new Likeness <CurrencyUpdateCommand, CurrencyUpdateCommand>(new CurrencyUpdateCommand(currencyStub.Object, destCurrencyArg, rate));

            var sut = fixture.CreateAnonymous <CurrencyParser>();
            // Exercise system
            var result = sut.Parse(new[] { destCurrencyArg, srcCurrencyArg, rateArg });

            // Verify outcome
            Assert.AreEqual(expectedResult, result, "Parse");
            // Teardown
        }
Esempio n. 2
0
        public void ExecuteWillUpdateCurrency()
        {
            // Fixture setup
            var fixture = new CurrencyFixture();

            var currencyMock = fixture.FreezeMoq <Currency>();

            var sut = fixture.CreateAnonymous <CurrencyUpdateCommand>();

            // Exercise system
            sut.Execute();
            // Verify outcome
            currencyMock.Verify(c => c.UpdateExchangeRate(sut.DestinationCode, sut.Rate));
            // Teardown
        }
Esempio n. 3
0
        public void ExecuteWillWriteCorrectOutput()
        {
            // Fixture setup
            var fixture = new CurrencyFixture();

            fixture.FreezeMoq <Currency>().SetupGet(c => c.Code).Returns(fixture.CreateAnonymous("Code"));

            var sut            = fixture.CreateAnonymous <CurrencyUpdateCommand>();
            var expectedOutput = string.Format("Updated: 1 {0} in {1} = {2}.{3}", sut.DestinationCode, sut.Currency.Code, sut.Rate, Environment.NewLine);

            using (var sw = new StringWriter())
            {
                Console.SetOut(sw);
                // Exercise system
                sut.Execute();
                // Verify outcome
                Assert.AreEqual(expectedOutput, sw.ToString(), "Execute");
                // Teardown
            }
        }