示例#1
0
        public void ProcessAnalysisResult_GivenNewTestWithoutRunningTestsAfterPreviousImplementation_ShouldDisplayMessage()
        {
            //---------------Set up test pack-------------------
            var configuration           = new Configuration();
            var kataImplementationTypes = configuration.GetKataImplementationTypes();
            var runner         = new Runner.Runner("", "", "");
            var notifier       = Substitute.For <IPlayerNotifier>();
            var previousResult = runner.GetResult(typeof(IStringCalculator),
                                                  typeof(KataData.StringCalculator.Tests.TestStringCalculator),
                                                  typeof(NewTestWrittenWithoutAPassingTestForPreviousImplementation.StringCalculator),
                                                  typeof(TestStringCalculator),
                                                  kataImplementationTypes.ToArray());
            var result = runner.GetResult(typeof(IStringCalculator),
                                          typeof(KataData.StringCalculator.Tests.TestStringCalculator),
                                          typeof(StringCalculator_002),
                                          typeof(TestStringCalculator_002),
                                          kataImplementationTypes.ToArray());
            var processor        = new AnalysisResultProcessor(Substitute.For <ISettingsManager>());
            var attemptGameState = new AttemptGameState(new List <Result>(), Substitute.For <IKataHelper>());

            attemptGameState.SetLatestResult(previousResult);
            //---------------Assert Precondition----------------
            Assert.AreEqual(1, previousResult.PlayerImplementationLevel);
            Assert.AreEqual(2, previousResult.PlayerTestLevel);
            //---------------Execute Test ----------------------
            processor.ProcessAnalysisResult(notifier, result, null, attemptGameState);
            //---------------Test Result -----------------------
            Assert.AreEqual(2, result.PlayerImplementationLevel);
            Assert.AreEqual(3, result.PlayerTestLevel);
            const string expectedMessage = "You have written a test without first running tests after writing your previous implementation. Please undo or comment out your current test and run your tests";

            notifier.Received().DisplayMessage("Test State", expectedMessage, NotifyIcon.Warning, NotifyIcon.Red);
        }
示例#2
0
        private static AttemptGameState CreateAttemptGameState(List <Result> results)
        {
            var attemptGameState = new AttemptGameState(results, new KataHelper())
            {
                KataName = KataName.StringCalculator.ToString()
            };

            return(attemptGameState);
        }