public void TryGetChange_WithNotEnoughMoney_ShouldNotChange(ExchangeBox sut)
        {
            // Arrange
            var amount = Money.Two;

            // Act
            var canChange = sut.TryGetChange(amount, out var changeDictionary);

            // Assert
            canChange.Should().BeFalse();
            changeDictionary.Count.Should().Be(0);
        }
        public void TryGetChange_WithMoreMoneyInsertedAndEnoughChange_ShouldReturnCorrectChange(ExchangeBox sut)
        {
            // Arrange
            var amount = Money.FiftyCents + Money.FiveCents;

            // Act
            var canChange = sut.TryGetChange(amount, out var changeDictionary);

            // Assert
            canChange.Should().BeTrue();
            changeDictionary.Count.Should().Be(2);
            changeDictionary.Values[0].Should().Be(1);
            changeDictionary.Keys[0].Value.Should().Be(0.50m);
            changeDictionary.Values[1].Should().Be(1);
            changeDictionary.Keys[1].Value.Should().Be(0.05m);
        }