public ReportCodeResult() { _userTask = new Assignment { UserId = _upload.UserId, TaskId = _task.Id, }; _task.Tests = new List <Data.Models.TaskModels.Test> { new Data.Models.TaskModels.Test { Id = Guid.NewGuid() }, new Data.Models.TaskModels.Test { Id = Guid.NewGuid() } }; _result = new TestingResponse { UploadId = _upload.Id.ToString(), Status = "ResultStatus", Message = "ResultMessage", SuccessfulTestsCount = 1, FailedTestsCount = 1, TestingFailed = false }; }
public Process() { _testingResponse = new TestingResponse { UploadId = _upload.Id.ToString() }; _processorMock = new Mock <Lightest.TestingService.DefaultServices.UploadProcessor>(_upload, _uploadData, _server, _context); _processorMock.Setup(p => p.CacheChecker()).ThrowsAsync(new Exception()); _processorMock.Setup(p => p.SendData()).ReturnsAsync(_testingResponse); _processorMock.Setup(p => p.ReportCodeResult(It.IsAny <TestingResponse>())) .ThrowsAsync(new Exception()); _processorMock.Setup(p => p.ReportCodeResult(_testingResponse)).Returns(Task.CompletedTask); }
public async Task UploadSent() { var response = new TestingResponse { UploadId = _upload.Id.ToString() }; _transferService.Setup(ts => ts.SendUpload(It.Is <TestingRequest>( tr => tr.UploadId == _upload.Id.ToString() && tr.TimeLimit == _taskLanguage.TimeLimit && tr.MemoryLimit == _taskLanguage.MemoryLimit && tr.CheckerId == _task.CheckerId.ToString() && tr.CodeFile.FileName.EndsWith(_language.Extension) && tr.CodeFile.Code == _uploadData.Code && tr.Tests.Count == 2))) .ReturnsAsync(response); await SetUpData(); var result = await _uploadProcessor.SendData(); var upload = _context.Uploads.First(u => u.Id == _upload.Id); Assert.Equal(UploadStatus.Testing, upload.Status); Assert.Equal(response, result); }
public virtual async Task ReportCodeResult(TestingResponse result) { var uploadId = Guid.Parse(result.UploadId); var userTask = await _context.UserTasks .SingleOrDefaultAsync(u => u.UserId == _upload.UserId && u.TaskId == _upload.TaskId); var totalTests = _upload.Task.Tests.Count; var maxPoints = _upload.Task.Points; var successfulPercent = (double)result.SuccessfulTestsCount / totalTests; _upload.Points = successfulPercent * maxPoints; _upload.Status = result.Status; _upload.Message = result.Message; if (userTask?.HighScore < _upload.Points) { userTask.HighScore = _upload.Points; if (result.SuccessfulTestsCount == totalTests) { userTask.Completed = true; } } await _context.SaveChangesAsync(); }