Beispiel #1
0
        static void Main(string[] args)
        {
            var parsedArgs = ArgumentParser.Parse(args);
            var runner = new FizzBuzzRunner();

            runner.Run(parsedArgs);

            Console.WriteLine("Finished! Press any key...");
            Console.Read();
        }
Beispiel #2
0
        public void GivenInput_WhenRunningFizzBuzzRunner_ThenOutputTheNumberAndCorrectText(int number, string expectedOutput)
        {
            var fakeOutput = new FakeOutput();

            FizzBuzzRunner.Run(number, fakeOutput);

            var actualItems  = fakeOutput.OutputResult.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
            var actualOutput = actualItems.SingleOrDefault(s => s.StartsWith($"{number}: "));

            Assert.AreEqual(expectedOutput, actualOutput);
        }
Beispiel #3
0
        public void GivenEndIsSetToOneThousand_WhenRunningFizzBuzzRunner_ThenOneThousandAndOneItemsAreOutput()
        {
            var end = 1000;
            var expectedNumberOfItems = 1001;
            var fakeOutput            = new FakeOutput();

            FizzBuzzRunner.Run(end, fakeOutput);

            var actualNumberOfItems = fakeOutput.OutputResult.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

            Assert.AreEqual(expectedNumberOfItems, actualNumberOfItems.Length);
        }
Beispiel #4
0
        public void ReturnsCustomWordForFizzBuzz_WhenDivisible_By_ThreeAndFive()
        {
            // given the way the solution is, let us only execute up until the point of where we expect the end result to be
            // grab the last result and compare with the actual execution for each of the points for FizzBuzz.

            FizzBuzzRequest fifteenUpperBound = new FizzBuzzRequest {
                UpperBound = 15, BuzzRule = new Rule {
                    DivisibleByWord = "World", DivisibleBy = 5
                }, NoMatch = new Rule {
                    DivisibleByWord = "Nothing"
                }, FizzRule = new Rule {
                    DivisibleBy = 3, DivisibleByWord = "My"
                }
            };
            FizzBuzzRequest thirtyUpperBound = new FizzBuzzRequest {
                UpperBound = 30, BuzzRule = new Rule {
                    DivisibleByWord = "World", DivisibleBy = 5
                }, NoMatch = new Rule {
                    DivisibleByWord = "Nothing"
                }, FizzRule = new Rule {
                    DivisibleBy = 3, DivisibleByWord = "My"
                }
            };
            FizzBuzzRequest fortyFiveUpperBound = new FizzBuzzRequest {
                UpperBound = 45, BuzzRule = new Rule {
                    DivisibleByWord = "World", DivisibleBy = 5
                }, NoMatch = new Rule {
                    DivisibleByWord = "Nothing"
                }, FizzRule = new Rule {
                    DivisibleBy = 3, DivisibleByWord = "My"
                }
            };

            var runner = new FizzBuzzRunner();
            var expectedFizzBuzzReplacement = "MyWorld";

            var actualRunnerFifteenResult   = runner.FizzBuzzRun(fifteenUpperBound).ToList();
            var actualFizzBuzzFifteenResult = actualRunnerFifteenResult.Last();

            StringAssert.AreEqualIgnoringCase(expectedFizzBuzzReplacement, actualFizzBuzzFifteenResult.Result);


            var actualRunnerThirtyResult   = runner.FizzBuzzRun(thirtyUpperBound).ToList();
            var actualFizzBuzzThirtyResult = actualRunnerThirtyResult.Last();

            StringAssert.AreEqualIgnoringCase(expectedFizzBuzzReplacement, actualFizzBuzzThirtyResult.Result);

            var actualRunnerFortyFiveResult = runner.FizzBuzzRun(fortyFiveUpperBound).ToList();
            var actualFizzFortyFiveResult   = actualRunnerFortyFiveResult.Last();

            StringAssert.AreEqualIgnoringCase(expectedFizzBuzzReplacement, actualFizzFortyFiveResult.Result);
        }
        public static void Main(string[] args)
        {
            var       fizzBuzz   = new FizzBuzzRunner();
            const int UpperBound = 100; // Int32.MaxValue;

            var response = fizzBuzz.FizzBuzzRun(new FizzBuzzRequest
            {
                UpperBound      = UpperBound,
                UseDefaultRules = true,
            });

            if (response != null)
            {
                foreach (var currentResult in response)
                {
                    Console.WriteLine(currentResult.Result);
                }
            }
            Console.ReadLine();
        }
Beispiel #6
0
        public void ReturnsCustomWordForBuzz_WhenDivisible_By_FiveOnly()
        {
            // given the way the solution is, let us only execute up until the point of where we expect the end result to be
            // grab the last result and compare with the actual execution for each of the points for FizzBuzz.

            FizzBuzzRequest fiveUpperBound = new FizzBuzzRequest {
                UpperBound = 5, BuzzRule = new Rule {
                    DivisibleByWord = "World", DivisibleBy = 5
                }, NoMatch = new NoMatchRuleDefault(), FizzRule = new FizzRuleDefault()
            };
            FizzBuzzRequest tenUpperBound = new FizzBuzzRequest {
                UpperBound = 10, BuzzRule = new Rule {
                    DivisibleByWord = "World", DivisibleBy = 5
                }, NoMatch = new NoMatchRuleDefault(), FizzRule = new FizzRuleDefault()
            };
            FizzBuzzRequest twentyFiveUpperBound = new FizzBuzzRequest {
                UpperBound = 20, BuzzRule = new Rule {
                    DivisibleByWord = "World", DivisibleBy = 5
                }, NoMatch = new NoMatchRuleDefault(), FizzRule = new FizzRuleDefault()
            };

            var runner       = new FizzBuzzRunner();
            var expectedFizz = "World";

            var actualRunnerFiveResult = runner.FizzBuzzRun(fiveUpperBound).ToList();
            var actualFizzBuzzResult   = actualRunnerFiveResult.Last();

            StringAssert.AreEqualIgnoringCase(expectedFizz, actualFizzBuzzResult.Result);


            var actualRunnerTenResult   = runner.FizzBuzzRun(tenUpperBound).ToList();
            var actualFizzBuzzTenResult = actualRunnerTenResult.Last();

            StringAssert.AreEqualIgnoringCase(expectedFizz, actualFizzBuzzTenResult.Result);

            var actualRunnerTwentyResult   = runner.FizzBuzzRun(twentyFiveUpperBound).ToList();
            var actualFizzNineTwentyResult = actualRunnerTwentyResult.Last();

            StringAssert.AreEqualIgnoringCase(expectedFizz, actualFizzNineTwentyResult.Result);
        }
Beispiel #7
0
        public void ReturnsCustomWordForFizz_WhenDivisible_By_ThreeOnly()
        {
            // given the way the solution is, let us only execute up until the point of where we expect the end result to be
            // grab the last result and compare with the actual execution for each of the points for FizzBuzz.

            FizzBuzzRequest threeUpperBound = new FizzBuzzRequest {
                UpperBound = 3, FizzRule = new Rule {
                    DivisibleBy = 3, DivisibleByWord = "Hello"
                }, BuzzRule = new BuzzRuleDefault(), NoMatch = new  NoMatchRuleDefault()
            };
            FizzBuzzRequest sixUpperBound = new FizzBuzzRequest {
                UpperBound = 6, FizzRule = new Rule {
                    DivisibleBy = 3, DivisibleByWord = "Hello"
                }, BuzzRule = new BuzzRuleDefault(), NoMatch = new NoMatchRuleDefault()
            };
            FizzBuzzRequest nineFiveUpperBound = new FizzBuzzRequest {
                UpperBound = 9, FizzRule = new Rule {
                    DivisibleBy = 3, DivisibleByWord = "Hello"
                }, BuzzRule = new BuzzRuleDefault(), NoMatch = new NoMatchRuleDefault()
            };

            var runner = new FizzBuzzRunner();
            var expectedFizzReplacementWord = "Hello";

            var actualRunnerThreeResult = runner.FizzBuzzRun(threeUpperBound).ToList();
            var actualFizzBuzzResult    = actualRunnerThreeResult.Last();

            StringAssert.AreEqualIgnoringCase(expectedFizzReplacementWord, actualFizzBuzzResult.Result);


            var actualRunnerSixResult   = runner.FizzBuzzRun(sixUpperBound).ToList();
            var actualFizzBuzzSixResult = actualRunnerSixResult.Last();

            StringAssert.AreEqualIgnoringCase(expectedFizzReplacementWord, actualFizzBuzzSixResult.Result);

            var actualRunnerNineResult   = runner.FizzBuzzRun(nineFiveUpperBound).ToList();
            var actualFizzNineFiveResult = actualRunnerNineResult.Last();

            StringAssert.AreEqualIgnoringCase(expectedFizzReplacementWord, actualFizzNineFiveResult.Result);
        }
Beispiel #8
0
        public void ReturnsCustomWordForNoMatch_WhenNotDivisible_By_Three_Or_Five_Or_ThreeAndFive()
        {
            // given the way the solution is, let us only execute up until the point of where we expect the end result to be
            // grab the last result and compare with the actual execution for each of the points for FizzBuzz.

            FizzBuzzRequest eightUpperBound = new FizzBuzzRequest {
                UpperBound = 8, BuzzRule = new Rule {
                    DivisibleByWord = "Buzz", DivisibleBy = 5
                }, NoMatch = new Rule {
                    DivisibleByWord = "Nothing"
                }, FizzRule = new Rule {
                    DivisibleBy = 3, DivisibleByWord = "Fizz"
                }
            };

            var runner = new FizzBuzzRunner();
            var expectedNoMatchReplacement = "Nothing";

            var actualRunnerResult = runner.FizzBuzzRun(eightUpperBound).ToList();
            var actualResult       = actualRunnerResult.Last();

            StringAssert.AreEqualIgnoringCase(expectedNoMatchReplacement, actualResult.Result);
        }
Beispiel #9
0
        public static void Main()
        {
            var outputConsole = new OutputConsole();

            FizzBuzzRunner.Run(1000, outputConsole);
        }
        public MainWindow()
        {
            InitializeComponent();

            _FizzBuzzRunner = new FizzBuzzRunner(new FizzBuzzEvaluator());
        }
Beispiel #11
0
        public static void Main()
        {
            var outputLogFile = new OutputLogFile(Environment.ExpandEnvironmentVariables("%AppData%\\FizzBuzz.log"));

            FizzBuzzRunner.Run(1000, outputLogFile);
        }