コード例 #1
0
        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);
        }
コード例 #2
0
        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"));
        }
コード例 #3
0
        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>());
        }
コード例 #4
0
        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);
        }
コード例 #5
0
ファイル: EntityTests.cs プロジェクト: Tobraef/SQLExerciser
        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);
            }
        }