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]); }
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)); }
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)); }
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)); }
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]); }
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); }