Exemplo n.º 1
0
        public void PostExerciseTestRun_ShouldNotCreateNewTestsIfUserIsAStudent()
        {
            //Arrange
            var exercise = new Exercise
            {
                Id   = _random.NextPositive(),
                Code = Guid.NewGuid().ToString()
            };

            _assignmentServiceMock.Setup(service => service.GetOrCreateExerciseAsync(It.IsAny <ExerciseDto>()))
            .ReturnsAsync(exercise);

            var exerciseDto = new ExerciseDtoBuilder().WithExerciseCode(exercise.Code).Build();
            var postedModel = new CreateExerciseTestRunModelBuilder()
                              .WithExercise(exerciseDto)
                              .WithSourceCode()
                              .Build();

            _controller = CreateControllerWithUserInContext(Role.Constants.Student);

            //Act
            _controller.PostExerciseTestRun(postedModel).Wait();

            //Assert
            _assignmentServiceMock.Verify(service => service.LoadTestsForAssignmentAsync(exercise), Times.Once);
            _assignmentServiceMock.Verify(
                service => service.LoadOrCreateTestsForAssignmentAsync(It.IsAny <Assignment>(),
                                                                       It.IsAny <IEnumerable <string> >()), Times.Never);
        }
Exemplo n.º 2
0
        public void PostExerciseTestRun_ShouldReturnBadRequestIfPostedModelIsInvalid()
        {
            //Arrange
            var errorKey     = Guid.NewGuid().ToString();
            var errorMessage = Guid.NewGuid().ToString();

            _controller.ModelState.AddModelError(errorKey, errorMessage);

            var exerciseDto = new ExerciseDtoBuilder().Build();
            var postedModel = new CreateExerciseTestRunModelBuilder().WithExercise(exerciseDto).Build();

            //Act
            var badRequestResult = _controller.PostExerciseTestRun(postedModel).Result as BadRequestObjectResult;

            //Assert
            Assert.That(badRequestResult, Is.Not.Null);
            Assert.That(badRequestResult.Value, Has.One.Matches((KeyValuePair <string, object> kv) => kv.Key == errorKey));
            _testResultConverterMock.Verify(converter => converter.From(It.IsAny <IEnumerable <TestResultModel> >(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <Exercise>()), Times.Never);
            _testRunServiceMock.Verify(repo => repo.RegisterRunAsync(It.IsAny <TestRun>()), Times.Never);
        }
Exemplo n.º 3
0
        public void PostExerciseTestRun_ShouldSaveItInTheRepository()
        {
            //Arrange
            var exercise = new Exercise
            {
                Id   = _random.NextPositive(),
                Code = Guid.NewGuid().ToString()
            };

            _assignmentServiceMock.Setup(service => service.GetOrCreateExerciseAsync(It.IsAny <ExerciseDto>()))
            .ReturnsAsync(exercise);

            var exerciseDto = new ExerciseDtoBuilder().WithExerciseCode(exercise.Code).Build();
            var postedModel = new CreateExerciseTestRunModelBuilder()
                              .WithExercise(exerciseDto)
                              .WithSourceCode()
                              .Build();

            TestPostAssignmentTestRun(() => _controller.PostExerciseTestRun(postedModel), postedModel, exercise);

            _assignmentServiceMock.Verify(service => service.GetOrCreateExerciseAsync(postedModel.Exercise), Times.Once);
        }