コード例 #1
0
        static void FileOperation(string inputFile, string outputFile)
        {
            FileHandler            handler          = new FileHandler(inputFile, outputFile);
            MinChangeCalculator    minCalculator    = new MinChangeCalculator();
            RandomChangeCalculator randomCalculator = new RandomChangeCalculator();

            ChangeCalculator.ChangeCalculator calculator = new ChangeCalculator.ChangeCalculator(handler, minCalculator, randomCalculator);

            try
            {
                calculator.CalculateChange();
            }
            catch (FileNotFoundException)
            {
                Console.WriteLine($"Failed to find file {inputFile}");
            }
            catch (IOException)
            {
                Console.WriteLine($"Failed to save file {outputFile}");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Exception! {ex.Message}");
            }
        }
コード例 #2
0
        static void Main(string[] args)
        {
            var calculator = new ChangeCalculator();
            var output     = calculator.CalculateChange(20.00m, 5.50m);

            Console.WriteLine("Your change is:");
            ChangeCalculator.PrettyPrint(output);
        }
コード例 #3
0
      public void GivenAChangeCalculator_WithInvalidAmount_CalculateShouldThrowException(int amount)
      {
          // Arange:
          var someChangeCalculator = new ChangeCalculator();

          // Act:
          // someChangeCalculator.Calculate(amount);

          // Asset:
          Assert.Throws <ArgumentException>(() => someChangeCalculator.Calculate(amount));
      }
コード例 #4
0
      public void GivenAChangeCalculator_Calculate_CalculatesCorrectly(int amount, int expQuartersCount, int expDimesCount, int expNicklesCount, int expPenniesCount)
      {
          // Define test cases. Give array of test to opporate against with same logic
          // Arrange:
          var someChangeCalculator = new ChangeCalculator();

          // Act:
          someChangeCalculator.Calculate(amount);

          // Asset:
          Assert.AreEqual(someChangeCalculator.quartersCount, expQuartersCount, $"Quarter amounts did not match: {someChangeCalculator.quartersCount}.");
          Assert.AreEqual(someChangeCalculator.dimesCount, expDimesCount, $"Dimes amounts did not match: {someChangeCalculator.dimesCount}.");
          Assert.AreEqual(someChangeCalculator.nickelsCount, expNicklesCount, $"Nickels amounts did not match: {someChangeCalculator.nickelsCount}.");
          Assert.AreEqual(someChangeCalculator.penniesCount, expPenniesCount, $"Pennies amounts did not match: {someChangeCalculator.penniesCount}.");
      }
コード例 #5
0
        // Madison Mehalko
        // 11/08/17
        // Homework 7

        private void btnCalculate_Click(object sender, EventArgs e)
        {
            // Check if change amount is valid.
            try
            {
                if (string.IsNullOrEmpty(txtChange.Text))
                {
                    return;
                }

                // Is an int
                var amount = 0;
                if (int.TryParse(txtChange.Text, out amount))
                {
                    errorProvider1.Clear();
                    var cc = new ChangeCalculator();


                    cc.Calculate(amount);

                    txtQuarters.Text = cc.quartersCount.ToString();
                    txtDimes.Text    = cc.dimesCount.ToString();
                    txtNickels.Text  = cc.nickelsCount.ToString();
                    txtPennies.Text  = cc.penniesCount.ToString();
                }
                else
                {
                    errorProvider1.SetError(txtChange, "Need to enter a number.");
                }
            }

            catch (ArgumentException ex)
            {
                errorProvider1.SetError(txtChange, ex.Message);
            }
            finally
            {
                txtChange.Focus();
            }
        }
コード例 #6
0
      public void GivingAChangeCalculator_Reset_SetsAllValuesToZero()
      {
          // 3 Parts that make up unit test. Arrange, Act, Assert.
          // Arrange: Set object up to operate against it.
          // Act: Do operation. Capture results.
          // Assert: Evaluate expected result against actual results.

          // Arrange. Create new object and set property values.
          var someChangeCalculator = new ChangeCalculator();

          someChangeCalculator.quartersCount = 3;
          someChangeCalculator.penniesCount  = 2;
          someChangeCalculator.dimesCount    = 8;
          someChangeCalculator.nickelsCount  = 0;

          // Act
          someChangeCalculator.Reset();

          // Assert
          Assert.AreEqual(someChangeCalculator.quartersCount, 0);
          Assert.AreEqual(someChangeCalculator.dimesCount, 0);
          Assert.AreEqual(someChangeCalculator.nickelsCount, 0);
          Assert.AreEqual(someChangeCalculator.penniesCount, 0);
      }