Example #1
0
 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());
 }
Example #2
0
 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);
 }
Example #7
0
        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());
            }
        }
Example #8
0
 public HttpResponseMessage Put(SolutionViewModel model)
 {
     return CreateOrUpdate(model);
 }
Example #9
0
 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);
     }
 }