public void MakeChange_CostGreaterThanPaid_ThrowsArguementException() { // Arrange var cost = _fixture.Create <decimal>(); var isRandom = _fixture.Create <bool>(); var changeOutput = new ChangeOutput(new UnitedStatesCurrency()); // Act changeOutput.MakeChange(cost + 1, cost, isRandom); }
public void MakeChange_CostAndPaidDiffNotRandom_ReturnsList() { // Arrange var changeOutput = new ChangeOutput(new UnitedStatesCurrency()); // Act var result = changeOutput.MakeChange(.5m, 1.02m, false); // Assert Assert.AreEqual("2 quarters,2 pennies", result); }
public void MakeChange_MultipleDenominationsNotRandom_ReturnsList() { // Arrange var changeOutput = new ChangeOutput(new UnitedStatesCurrency()); // Act var result = changeOutput.MakeChange(0, .52m, false); // Assert Assert.AreEqual("2 quarters,2 pennies", result); }
public void MakeChange_SingleDenominationsNotRandom_ReturnsList() { // Arrange var changeOutput = new ChangeOutput(new UnitedStatesCurrency()); // Act var result = changeOutput.MakeChange(0, 1.41m, false); // Assert Assert.AreEqual("1 dollar,1 quarter,1 dime,1 nickel,1 penny", result); }
public void MakeChange_NoChange_ReturnsNoChangePhrase() { // Arrange var testCurrency = _fixture.Create <TestCurrency>(); var cost = _fixture.Create <decimal>(); var isRandom = _fixture.Create <bool>(); var changeOutput = new ChangeOutput(testCurrency); // Act var result = changeOutput.MakeChange(cost, cost, isRandom); // Assert Assert.AreEqual(testCurrency.NoChangePhrase, result); }
public void RandomChange_ValueIsSmallest_ReturnMaxCount() { // Arrange var testCurrency = _fixture.Create <TestCurrency>(); var smallest = testCurrency.Denominations.Min(x => x.Value); var expected = _fixture.Create <int>(); var changeOutput = new ChangeOutput(testCurrency); // Act var result = changeOutput.RandomCount(expected, smallest); // Assert Assert.AreEqual(expected, result); }
public void MakeChange_RandomDenominations_ReturnsList() { // Arrange var changeOutput = new ChangeOutput(new UnitedStatesCurrency()); var result = string.Empty; var expected = "4 dollars,1 quarter,1 nickel,1 penny"; expected += (expected + expected); // Act result += changeOutput.MakeChange(0, 4.31m, true); result += changeOutput.MakeChange(0, 4.31m, true); result += changeOutput.MakeChange(0, 4.31m, true); // Assert Assert.AreNotEqual(expected, result); }
public void RandomChange_ValueIsNotSmallest_ReturnRandomCount() { // Arrange var testCurrency = _fixture.Create <TestCurrency>(); var largest = testCurrency.Denominations.Max(x => x.Value); var maxCount = _fixture.Create <int>(); var result = 0; var changeOutput = new ChangeOutput(testCurrency); // Act result += changeOutput.RandomCount(maxCount, largest); result += changeOutput.RandomCount(maxCount, largest); result += changeOutput.RandomCount(maxCount, largest); // Assert Assert.AreNotEqual(maxCount * 3, result); }