Beispiel #1
0
 public void Can_Add_Solution()
 {
     SetupSolution solution = new SetupSolution() { Name = "ok" };
     Service.SaveSetupSolution(solution, null);
     MockContext.Verify(x => x.SaveChanges(), Times.Once);
     Assert.AreEqual(MockContext.Object.SetupSolutions.Count(), 3);
 }
Beispiel #2
0
 public void Can_Add_Solution_WhitReferences()
 {
     SetupSolution solution = new SetupSolution() { Name = "ok" };
     Service.SaveSetupSolution(solution, new int[] { 1 } );
     Assert.AreEqual(MockContext.Object.SetupSolutions.Count(), 3);
     MockContext.Verify(x => x.SaveChanges(), Times.Once);
     Assert.AreEqual(solution.References.Count, 1);
     Assert.AreEqual(solution.References.First().Id, 1);
 }
 public void Cannot_Get_Valid_NotFound()
 {
     SetupSolution singleSolution = new SetupSolution() { Id = 1 };
     MockSetupRepository.Mock.Setup(x => x.GetSetupSolution(It.IsAny<int>())).Returns(singleSolution);
     HttpResponseMessage message = solutionController.Get(1);
     Assert.AreNotEqual(null, message);
     Assert.AreEqual(HttpStatusCode.OK, message.StatusCode);
     MockSetupRepository.Mock.Verify(m => m.GetSetupSolution(1), Times.Once);
     MockSetupRepository.Mock.Verify(m => m.SaveSetupSolution(It.IsAny<SetupSolution>(), It.IsAny<int[]>()), Times.Never);
 }
Beispiel #4
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());
            }
        }