Beispiel #1
0
        public async Task <IActionResult> PostExerciseTestRun([FromBody] CreateExerciseTestRunModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var exercise = await _assignmentService.GetOrCreateExerciseAsync(model.Exercise);

            var savedModel = await SaveTestRunForAssignment(model, exercise);

            return(CreatedAtAction(nameof(GetTestRun), new { id = savedModel?.Id }, savedModel));
        }
Beispiel #2
0
        public void From_ShouldIgnoreNonExisingTests()
        {
            //Assert
            var exercise = new ExerciseBuilder().Build();

            _createExerciseTestRunModel = new CreateExerciseTestRunModelBuilder().WithRandomTestResultModels(1).Build();

            //Act
            var result = _converter.From(_createExerciseTestRunModel.Results, null, _userId, exercise);

            //Assert
            Assert.That(result, Is.Not.Null);
            Assert.That(result.TestResults, Has.Count.Zero);
        }
Beispiel #3
0
        public void From_ShouldConvertRunWithEmptyListOfTestResultsIfModelDoesNotContainTestResults()
        {
            //Arrange
            var exercise = new ExerciseBuilder().Build();

            _createExerciseTestRunModel = new CreateExerciseTestRunModelBuilder().WithTestResultModels(null).Build();

            //Act
            var testRun = _converter.From(_createExerciseTestRunModel.Results, null, _userId, exercise);

            //Assert
            Assert.That(testRun, Is.Not.Null);
            Assert.That(testRun.TestResults, Is.Not.Null);
            Assert.That(testRun.TestResults.Count, Is.Zero);
        }
Beispiel #4
0
        public void From_ShouldCorrectlyConvertValidTestRunModel()
        {
            //Arrange
            var numberOfTests = 2;

            var exercise = new ExerciseBuilder().WithRandomTests(numberOfTests).Build();

            _createExerciseTestRunModel = new CreateExerciseTestRunModelBuilder()
                                          .WithSourceCode()
                                          .WithRandomTestResultModelsFor(exercise.Tests)
                                          .Build();

            //Act
            var testRun = _converter.From(_createExerciseTestRunModel.Results, _createExerciseTestRunModel.SourceCode, _userId, exercise);

            //Assert
            Assert.That(testRun, Is.Not.Null);
            Assert.That(testRun.UserId, Is.EqualTo(_userId));
            Assert.That(testRun.AssignmentId, Is.EqualTo(exercise.Id));
            Assert.That(testRun.SourceCode, Is.EqualTo(_createExerciseTestRunModel.SourceCode));
            Assert.That(testRun.CreateDateTime, Is.EqualTo(DateTime.UtcNow).Within(5).Seconds);
            Assert.That(testRun.TestResults.Count, Is.EqualTo(numberOfTests));

            for (int i = 0; i < _createExerciseTestRunModel.Results.Count(); i++)
            {
                var testResult      = testRun.TestResults.ElementAt(i);
                var testResultModel = _createExerciseTestRunModel.Results.ElementAt(i);
                var test            = exercise.Tests.ElementAt(i);

                Assert.That(testResult.TestId, Is.EqualTo(test.Id));
                Assert.That(testResult.Passed, Is.EqualTo(testResultModel.Passed));
                Assert.That(testResult.Message, Is.EqualTo(testResultModel.Message));
                Assert.That(testResult.UserId, Is.EqualTo(_userId));
                Assert.That(testResult.CreateDateTime, Is.EqualTo(DateTime.UtcNow).Within(5).Seconds);
            }
        }
Beispiel #5
0
 public void Setup()
 {
     _converter = new TestRunConverter();
     _userId    = _random.NextPositive();
     _createExerciseTestRunModel = new CreateExerciseTestRunModelBuilder().Build();
 }