private static void InitialCodeIsNotSolutionForProjExercise(ExerciseSlide slide) { var exercise = slide.Exercise as ProjectExerciseBlock; var directoryName = Path.Combine(exercise.SlideFolderPath.FullName, exercise.ExerciseDir); var excluded = (exercise.PathsToExcludeForChecker ?? new string[0]).Concat(new[] { "bin/*", "obj/*" }).ToList(); var exerciseDir = new DirectoryInfo(directoryName); var bytes = exerciseDir.ToZip(excluded, new[] { new FileContent { Path = exercise.CsprojFileName, Data = ProjModifier.ModifyCsproj(exerciseDir.GetFile(exercise.CsprojFileName), proj => ProjModifier.PrepareForChecking(proj, exercise, excluded)) } }); var result = SandboxRunner.Run(new ProjRunnerSubmission { Id = slide.Id.ToString(), ZipFileData = bytes, ProjectFileName = exercise.CsprojFileName, Input = "", NeedRun = true }); Console.WriteLine("Result = " + result); Assert.AreEqual(Verdict.Ok, result.Verdict); Assert.AreNotEqual("", result.Output); }
private void InitialCodeIsNotSolutionForProjExercise(ExerciseSlide slide) { var exercise = (ProjectExerciseBlock)slide.Exercise; var directoryName = Path.Combine(exercise.SlideFolderPath.FullName, exercise.ExerciseDir); var excluded = (exercise.PathsToExcludeForChecker ?? new string[0]).Concat(new[] { "bin/*", "obj/*" }).ToList(); var exerciseDir = new DirectoryInfo(directoryName); var bytes = exerciseDir.ToZip(excluded, new[] { new FileContent { Path = exercise.CsprojFileName, Data = ProjModifier.ModifyCsproj(exerciseDir.GetFile(exercise.CsprojFileName), proj => ProjModifier.PrepareForChecking(proj, exercise, excluded)) } }); var result = SandboxRunner.Run(new ProjRunnerSubmission { Id = slide.Id.ToString(), ZipFileData = bytes, ProjectFileName = exercise.CsprojFileName, Input = "", NeedRun = true }); var isOk = result.Verdict.IsOneOf(Verdict.Ok, Verdict.MemoryLimit, Verdict.TimeLimit); if (!isOk) { ReportSlideError(slide, "Exercise initial code verdict is not OK. RunResult = " + result); } else if (result.Verdict == Verdict.Ok && result.Output == "") { ReportSlideError(slide, "Exercise initial code (available to students) is solution!"); } }