public HttpResponseMessage Compile(SolutionViewModel solution) { if (solution == null) return Request.CreateResponse<string>(HttpStatusCode.BadRequest, "Solution can't be null"); IList<Error> errors = compilerService.Compile(Mapper.Map<SetupSolution>(solution), solution.References); List<object> ret = new List<object>(); foreach (Error e in errors) { ret.Add(new { Message = e.ToString(), Alert = e.IsWarning ? "warning" : "danger" }); } return Request.CreateResponse(HttpStatusCode.OK, ret.ToArray()); }
public HttpResponseMessage Compile(SolutionViewModel solution) { if (solution == null) return Request.CreateResponse<string>(HttpStatusCode.BadRequest, "Solution can't be null"); UnitTestSolution u = Mapper.Map<UnitTestSolution>(solution); if (u.SetupSolutionId > 0) { u.SetupSolution = dbRepository.GetSetupSolution(u.SetupSolutionId); } IList<Error> errors = compilerService.Compile(u, solution.References); if (errors.Count == 0) { return Request.CreateResponse(HttpStatusCode.OK); } else { List<object> ret = new List<object>(); foreach (Error e in errors) { ret.Add(new { Message = e.ToString(), Alert = e.IsWarning ? "warning" : "danger" }); } return Request.CreateResponse(HttpStatusCode.BadRequest, ret.ToArray()); } }
public void Can_EditSolution_RedirectToAction() { MockSetupRepository.Mock.Setup(x => x.SaveSetupSolution(It.IsAny<SetupSolution>(), It.IsAny<int[]>())); CompilerMock.Setup(x => x.Compile(It.IsAny<Solution>(), It.IsAny<int[]>())).Returns(new List<Error>()); MockSetupRepository.Mock.Setup(x => x.GetSetupSolution(1)).Returns(new SetupSolution()); SolutionViewModel solution = new SolutionViewModel() { Id = 1, Name = "ok" }; var actionResult = solutionController.Post(solution) as HttpResponseMessage; MockSetupRepository.Mock.Verify(m => m.GetSetupSolution(1), Times.Once); MockSetupRepository.Mock.Verify(x => x.SaveSetupSolution(It.IsAny<SetupSolution>(), It.IsAny<int[]>()), Times.Once); Assert.AreEqual(HttpStatusCode.OK, actionResult.StatusCode); }
public void Cannot_EditSolution_Exception() { MockSetupRepository.Mock.Setup(x => x.SaveSetupSolution(It.IsAny<SetupSolution>(), It.IsAny<int[]>())).Throws(new Exception()); CompilerMock.Setup(x => x.Compile(It.IsAny<Solution>(), It.IsAny<int[]>())).Returns(new List<Error>()); MockSetupRepository.Mock.Setup(x => x.GetSetupSolution(1)).Returns(new SetupSolution()); SolutionViewModel solution = new SolutionViewModel() { Id = 1, Name = "ok" }; var actionResult = solutionController.Post(solution) as HttpResponseMessage; MockSetupRepository.Mock.Verify(m => m.GetSetupSolution(1), Times.Once); MockSetupRepository.Mock.Verify(x => x.SaveSetupSolution(It.IsAny<SetupSolution>(), It.IsAny<int[]>()), Times.Once); }
public void Cannot_EditPostNonExistsSolution_NotFound() { SolutionViewModel solution = new SolutionViewModel() { Id = 11 }; var result = solutionController.Post(solution) as HttpResponseMessage; Assert.AreEqual(HttpStatusCode.BadRequest, result.StatusCode); MockSetupRepository.Mock.Verify(m => m.GetSetupSolution(11), Times.Once); MockSetupRepository.Mock.Verify(m => m.SaveSetupSolution(It.IsAny<SetupSolution>(), It.IsAny<int[]>()), Times.Never); }
public void Cannot_EditPostInvalidSolution_Redirect() { solutionController.ModelState.AddModelError("Error", "Error"); SolutionViewModel solution = new SolutionViewModel() { Name = "ok" }; var actionResult = solutionController.Post(solution) as HttpResponseMessage; Assert.AreEqual(HttpStatusCode.BadRequest, actionResult.StatusCode); MockSetupRepository.Mock.Verify(m => m.GetSetupSolution(11), Times.Never); MockSetupRepository.Mock.Verify(m => m.SaveSetupSolution(It.IsAny<SetupSolution>(), It.IsAny<int[]>()), Times.Never); }
private HttpResponseMessage CreateOrUpdate(SolutionViewModel model) { if (model == null) return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Solution can't be null"); SetupSolution solution = new SetupSolution(); if (ModelState.IsValid) { if (model?.Id > 0) { solution = setupRepository.GetSetupSolution(model.Id); if (solution == null) return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Solution doesn't exist"); } Mapper.Map(model, solution); List<object> ret = new List<object>(); IList<Error> errors = compilerService.Compile(solution, model.References); if (errors.Count > 0) { if (solution.Classes?.Count() > 0) solution.Classes.Clear(); foreach (Error e in errors) { ret.Add(new { Message = e.ToString(), Alert = e.IsWarning ? "warning" : "danger" }); } } setupRepository.SaveSetupSolution(solution, model.References); return Request.CreateResponse(HttpStatusCode.OK, new { compileErrors = ret.ToArray(), solution = Mapper.Map<SolutionViewModel>(solution) }); } else { List<object> ret = new List<object>(); foreach (var m in ModelState.Values) { foreach (var e in m.Errors) { ret.Add(new { Message = e.ErrorMessage, Alert = "danger" }); } } return Request.CreateResponse(HttpStatusCode.BadRequest, ret.ToArray()); } }
public HttpResponseMessage Put(SolutionViewModel model) { return CreateOrUpdate(model); }
public HttpResponseMessage RunTest(SolutionViewModel solution) { if (solution == null) return Request.CreateResponse<string>(HttpStatusCode.BadRequest, "Solution can't be null"); UnitTestSolution u = Mapper.Map<UnitTestSolution>(solution); if (u.SetupSolutionId > 0) { u.SetupSolution = dbRepository.GetSetupSolution(u.SetupSolutionId); } Result r = compilerService.RunTests(u, solution.References); if (r != null) { if (r.Errors?.Count() > 0) { List<object> ret = new List<object>(); foreach (Error e in r.Errors) { ret.Add(new { Message = e.ToString(), Alert = e.IsWarning ? "warning" : "danger" }); } return Request.CreateResponse(HttpStatusCode.BadRequest, ret.ToArray()); } else { IList<Engine.Model.Test> tests = Mapper.Map<IList<Engine.Model.Test>>(r); List<object> ret = new List<object>(); if (tests.Count() > 0) { foreach (Engine.Model.Test e in tests) { ret.Add(new { Message = e.ToString(), Alert = e.RunFail == e.Fail ? "success" : "danger" }); } } else { ret.Add(new { Message = "Any tests have been run", Alert = "info" }); } return Request.CreateResponse(HttpStatusCode.OK, ret.ToArray()); } } else { return Request.CreateResponse(HttpStatusCode.BadRequest); } }