public void ExerciseController_CreateModelStateValidAndValidationValid_RedirectWithNewId() { //Arrange _exerciseService.Setup(d => d.Create(It.IsAny <Exercise>())).Returns(new Exercise { Id = 1 }); _exerciseService.Setup(d => d.Get(It.IsAny <Exercise>())).Returns(new Exercise { Id = 1 }); _serviceFactoryMock.Setup(d => d.Muscle).Returns(_muscleService.Object); //Act var result = _controller.Create(new ExerciseViewModel { Id = 0 }); //0 because not assigned yet //Assert var view = (RedirectToRouteResult)result; var createId = view.RouteValues.First(d => d.Key == "Id").Value; var actionName = view.RouteValues.First(d => d.Key == "action").Value; Assert.AreEqual(1, createId); Assert.AreEqual("Details", actionName); }
public async Task AddExercise() { testerMock.Setup(t => t.TestSelect( It.Is <string>(s => s == db.EmployeesDiagram.CreationQuery), It.Is <IEnumerable <string> >(seeds => seeds.Any(s => s == "SOL")), It.Is <string>(s => s == "ANS"))).ReturnsAsync("OK"); sut = new ExerciseController(db, exerciserMock.Object, testerMock.Object); var view = await sut.Create(db.EmployeesDiagram.DbDiagramId); var vm = view.Model as CreateExercise; Assert.Equal(vm.Diagram, db.EmployeesDiagram.DbDiagramId); var response = await sut.Create(new CreateExercise { VerificationQuery = "ANS", SolutionQuery = "SOL", Title = "TIT", Description = "DESC", Difficulty = 33, Diagram = db.EmployeesDiagram.DbDiagramId }); Assert.Single(db.Exercises, e => e.Difficulty == 33 && e.Title.Equals("TIT")); Assert.Contains(db.Judges, j => j.AnswerQuery == "SOL" && j.VerifyQuery == "ANS"); Assert.Equal(db.Exercises.Single(e => e.Difficulty == 33).Judge, db.Judges.Single(j => j.AnswerQuery == "SOL")); }
public void Create_Returns_View_With_UnitList() { _messages.Setup(x => x.Dispatch(It.IsAny <GetUnitListQuery>())) .Returns(new List <Unit>()); // Act var result = (ViewResult)_sut.Create(); // Assert Assert.That(result.Model, Is.TypeOf <AddExerciseVm>()); }
public void Create() { //Arrange var newExercise = new Exercise { Name = "Push-ups" }; _mock.Setup(s => s.Create(It.IsAny <ExerciseDTO>())).Returns <ExerciseDTO>(newValue => { newValue.Id = _exercises.Count + 1; newValue.CreatedDate = DateTime.Now; newValue.ModifiedDate = DateTime.Now; _exercises.Add(newValue); return(new OperationResult { Succeed = true, ResultItemId = newValue.Id }); }); //Act var result = _exerciseController.Create(newExercise); var operationResult = result as OkNegotiatedContentResult <IOperationResult>; //Assert Assert.IsInstanceOfType(result, typeof(OkNegotiatedContentResult <IOperationResult>)); Assert.IsTrue(operationResult.Content.Succeed); Assert.IsTrue(operationResult.Content.ResultItemId > 0); Assert.AreEqual(_exercises.Find(ex => ex.Id == operationResult.Content.ResultItemId).Name, newExercise.Name); }
public async Task CreateDiagramSeedsAndExercise() { db.Mock.Setup(d => d.SaveAsync()).ReturnsAsync(1); { DiagramController diagramController = new DiagramController(db, tester); var diagrams = (await diagramController.Index()).Model as List <DbDiagram>; Assert.Empty(diagrams); const string q1 = "CREATE TABLE tab_1(id int PRIMARY KEY, name VARCHAR(30));"; await diagramController.Create(new DbDiagram { Name = "Diagram1", CreationQuery = q1, Diagram = new byte[] { 1, 2, 3 } }, null); diagrams = (await diagramController.Index()).Model as List <DbDiagram>; Assert.Single(diagrams, d => d.Name == "Diagram1" && d.CreationQuery == q1); } { SeedController seedController = new SeedController(db, tester); var diagram = db.Diagrams.Single(); var seeds = (await seedController.Index()).Model as IEnumerable <IGrouping <int, Seed> >; Assert.Empty(seeds); var model1 = seedController.Create(diagram.DbDiagramId).Result.Model as SeedCreateViewModel; Assert.Equal(model1.DiagramId, diagram.DbDiagramId); const string seedQuery = "INSERT INTO tab_1 (id, name) VALUES (1, 'aaa'), (2, 'bbb'), (3, 'ccc');"; await seedController.Create(new SeedCreateViewModel { DiagramId = diagram.DbDiagramId, SeedQuery = seedQuery }); Assert.Single(db.Seeds, s => s.Diagram == diagram && s.SeedQuery == seedQuery); } { ExerciseController exerciseController = new ExerciseController(db, exerciser, tester); var diagram = db.Diagrams.Single(); var seed = db.Seeds.Single(); const string query = "SELECT id FROM tab_1 WHERE name LIKE 'aaa';"; var testQ = await exerciseController.TestQuery(query, diagram.DbDiagramId); await exerciseController.Create(new CreateExercise { Diagram = diagram.DbDiagramId, Description = "Exercising", Title = "Exercise_1", SolutionQuery = query, Difficulty = 30 }); var exercise = db.Exercises.Single(); var result = await exerciseController.Solve(exercise.ExerciseId, "SELECT id FROM tab_1 WHERE name NOT LIKE 'bbb' AND name NOT LIKE 'ccc'"); Assert.Single(db.Statuses, s => s.Accepted); result = await exerciseController.Solve(exercise.ExerciseId, "SELECT name FROM tab_1 WHERE name LIKE 'aaa'"); Assert.All(db.Statuses, s => Assert.False(s.Resolution != null && s.Resolution.Contains("Error"))); Assert.Single(db.Statuses, s => !s.Accepted); result = await exerciseController.Solve(exercise.ExerciseId, "SELECT sad"); Assert.Single(db.Statuses, s => s.Resolution != null && s.Resolution.Contains("Error") && !s.Accepted); } }