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 }
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 }
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 } }