コード例 #1
0
        public void CheckAnswer_WhenExistsCompilationErrors_SetsErrorList()
        {
            var stubCompilationService = new CompilationService();
            CompilerResults compilerResults = stubCompilationService.CompileSourceCode("NotCompilingSourceCode");
            var stubTestsRunnerService = MockRepository.GenerateStub<RunnerService>();

            var correctionProcess = new CorrectionProcess(stubCompilationService, stubTestsRunnerService);
            CorrectionResult correctionResult =
                correctionProcess.CheckAnswer(new Question {SourceCode = "NotCompilingSourceCode"});

            Assert.AreEqual(compilerResults.Errors.Count, correctionResult.Errors.Count);
            Assert.AreEqual(compilerResults.Errors[0].ErrorText, correctionResult.Errors[0]);
            Assert.AreEqual(compilerResults.Errors[compilerResults.Errors.Count - 1].ErrorText,
                            correctionResult.Errors[correctionResult.Errors.Count - 1]);
        }
コード例 #2
0
ファイル: CorrectionProcess.cs プロジェクト: jbteba/LiveDev
        public virtual CorrectionResult CheckAnswer(Question question)
        {
            CompilerResults compiledSourceCode = _compilationService.CompileSourceCode(question.SourceCode);

            if (compiledSourceCode.Errors.HasErrors)
            {
                var correctionResult = new CorrectionResult();
                foreach (CompilerError compilationError in compiledSourceCode.Errors)
                {
                    correctionResult.Errors.Add(compilationError.ErrorText);
                }
                return(correctionResult);
            }
            return(_runnerService.RunMethod(compiledSourceCode.CompiledAssembly, question));
        }
コード例 #3
0
        public void CompileSourceCode_CompileAssemblyFromSource()
        {
            var mockCodeProvider = MockRepository.GenerateMock<CSharpCodeProvider>();
            mockCodeProvider.Stub(
                s => s.CompileAssemblyFromSource(Arg<CompilerParameters>.Is.Anything, Arg<string>.Is.Anything)).Return(
                    new CompilerResults(new TempFileCollection()));

            var stubParameters = new CompilerParameters();
            const string stubSourceCode = "sourceCode";

            var compilationService = new CompilationService(mockCodeProvider, stubParameters);
            compilationService.CompileSourceCode(stubSourceCode);

            mockCodeProvider.AssertWasCalled(m => m.CompileAssemblyFromSource(stubParameters, stubSourceCode));
        }
コード例 #4
0
        public void CompileSourceCode_CompileAssemblyFromSource()
        {
            var mockCodeProvider = MockRepository.GenerateMock <CSharpCodeProvider>();

            mockCodeProvider.Stub(
                s => s.CompileAssemblyFromSource(Arg <CompilerParameters> .Is.Anything, Arg <string> .Is.Anything)).Return(
                new CompilerResults(new TempFileCollection()));

            var          stubParameters = new CompilerParameters();
            const string stubSourceCode = "sourceCode";

            var compilationService = new CompilationService(mockCodeProvider, stubParameters);

            compilationService.CompileSourceCode(stubSourceCode);

            mockCodeProvider.AssertWasCalled(m => m.CompileAssemblyFromSource(stubParameters, stubSourceCode));
        }
コード例 #5
0
        public void CheckAnswer_WhenExistsCompilationErrors_SetsErrorList()
        {
            var             stubCompilationService = new CompilationService();
            CompilerResults compilerResults        = stubCompilationService.CompileSourceCode("NotCompilingSourceCode");
            var             stubTestsRunnerService = MockRepository.GenerateStub <RunnerService>();

            var correctionProcess             = new CorrectionProcess(stubCompilationService, stubTestsRunnerService);
            CorrectionResult correctionResult =
                correctionProcess.CheckAnswer(new Question {
                SourceCode = "NotCompilingSourceCode"
            });

            Assert.AreEqual(compilerResults.Errors.Count, correctionResult.Errors.Count);
            Assert.AreEqual(compilerResults.Errors[0].ErrorText, correctionResult.Errors[0]);
            Assert.AreEqual(compilerResults.Errors[compilerResults.Errors.Count - 1].ErrorText,
                            correctionResult.Errors[correctionResult.Errors.Count - 1]);
        }
コード例 #6
0
ファイル: RunnerServiceTest.cs プロジェクト: jbteba/LiveDev
        public void RunMethod_RunSourceCodeAndReturnTheResult()
        {
            const string sourceCode   = "public class stubClass{ public int stubMethod(){ return 1; }}";
            var          stubQuestion = new Question(new Definition {
                ClassName = "stubClass", MethodName = "stubMethod"
            })
            {
                SourceCode = sourceCode
            };
            var             compilationService = new CompilationService();
            CompilerResults compilerResults    = compilationService.CompileSourceCode(stubQuestion.SourceCode);

            var runnerService = new RunnerService();
            var result        = runnerService.RunMethod(compilerResults.CompiledAssembly, stubQuestion);

            Assert.AreEqual("1", result.Result);
        }