public async Task ModalProcess_LockNotFound() { var tc = new SubmissionController(_logger, _scontext); var result = await tc.ModalProcess(2, "Accept", "Nah", "id", "04/01/2020", "04/15/2020", "pName", "cName", "PRIME", "timesheetIndex", 1, "providerId") as ViewResult; Assert.AreEqual("NoPermission", result.ViewName); }
public ActionResult Index(Assignment model, IEnumerable <HttpPostedFileBase> files) { Assignment = db.Assignments.Find(model.ID); bool newUpload = false; foreach (var file in files) { if (file != null && file.ContentLength > 0) { newUpload = true; break; } } if (files != null && newUpload) { //clear review teams first Assignment.ReviewTeams.Clear(); db.Entry(Assignment).State = System.Data.EntityState.Modified; db.SaveChanges(); //submit file to the system SubmissionController submission = new SubmissionController(); //removed: ActiveCourseUser.AbstractCourse.ID submission.Create(model.ID, files, null); } WasUpdateSuccessful = true; return(base.PostBack(model)); }
public void CanCreateAssignmentForAnchorDiscussion() { AbstractCourse c = new Course(); //Given posted files //-generate 2 files HttpPostedFileWrapper file1 = new HttpPostedFileWrapper(null); HttpPostedFileWrapper file2 = new HttpPostedFileWrapper(null); List <HttpPostedFileBase> files = new List <HttpPostedFileBase>(); files.Add(file1); files.Add(file2); //Given existing assignment //-get from db int assign = 10; //Given AuthorTeamId int authorteam = 75; AssignmentTeam at = new AssignmentTeam(); at.TeamID = authorteam; //When Create assignment for anchor discussion is requested SubmissionController sc = new SubmissionController(); sc.Create(assign, files, authorteam); //Then the files are generated on path string submission = OSBLE.FileSystem.GetDeliverable(c as Course, assign, at, null, null); }
public void Gets_syntax_error_hint() { using var scope = _factory.Services.CreateScope(); var controller = new SubmissionController(_factory.Services.GetRequiredService <IMapper>(), scope.ServiceProvider.GetRequiredService <ISubmissionService>()); var submission = new ChallengeSubmissionDTO { ChallengeId = 41, LearnerId = 1, SourceCode = new [] { @"public class Test { private string name; public Test() { name = test } }" } }; var actualEvaluation = ((OkObjectResult)controller.SubmitChallenge(submission).Result).Value as ChallengeEvaluationDTO; actualEvaluation.ApplicableHints.Count.ShouldBe(1); var errors = actualEvaluation.ApplicableHints[0].Content; errors.Split("\n").Length.ShouldBe(1); }
/// <summary> /// Views grades. /// </summary> /// <param name="dList">Data list for submission list.</param> /// <param name="sid">Student ID.</param> /// <param name="courseId">Course ID.</param> public void ViewAssignmentGradeByStudent(DataList dList, string sid, string courseId) { DataTable dt = new DataTable(); SubmissionList submissionList = SubmissionController.GetItem(sid, courseId); DataColumn dc = new DataColumn(); dc.DataType = Type.GetType("System.String"); dc.ColumnName = "ATitle"; dt.Columns.Add(dc); DataColumn dc1 = new DataColumn(); dc1.DataType = Type.GetType("System.String"); dc1.ColumnName = "Grade"; dt.Columns.Add(dc1); DataRow dr; if (submissionList != null) { foreach (Submission sb in submissionList) { dr = dt.NewRow(); dr["ATitle"] = sb.Assignment.ATitle; dr["Grade"] = sb.Grade; dt.Rows.Add(dr); } } dList.DataSource = dt; dList.DataBind(); }
public async Task ModalProcess_SubmissionNotFound() { var tc = new SubmissionController(_logger, _scontext); var result = await tc.ModalProcess(-1, "Accept", "Nah", "id", "04/01/2020", "04/15/2020", "pName", "cName", "PRIME", "timesheetIndex", 1, "providerId"); Assert.IsInstanceOf(typeof(NotFoundResult), result); }
protected void dlCommandItem(object sender, DataListCommandEventArgs e) { string filePath = ((Label)e.Item.FindControl("lblAFileLocation")).Text; if (e.CommandName == "View") { DownloadFile(filePath, true); } else { //Call to delete the assignment //Get the assignment ID Int32 assignmentID = Convert.ToInt32(((Label)e.Item.FindControl("lblAssignmentID")).Text); //Get file location of the Assignment. string filePathToDelete = ((Label)e.Item.FindControl("lblAFileLocation")).Text; if (SubmissionController.GetItem(assignmentID) == null) { AssignmentController.Delete(assignmentID); File.Delete(filePath); } else { ClientScript.RegisterStartupScript(this.GetType(), "errorDelete", "alert('This assignment cannot be deleted!!!');", true); } Helper.ViewAssignment(dlistAssignment, Session["CourseID"].ToString()); } }
public void Setup() { this._referenceServices = Substitute.For <IReferenceServices>(); this._submissionService = Substitute.For <ISubmissionService>(); this._salonYearService = Substitute.For <ISalonYearService>(); this.submissionController = new SubmissionController(this._referenceServices, this._submissionService, this._salonYearService); Mapping.CreateConfiguration(); }
public void Accepts_question_submission_and_produces_correct_evaluation(QuestionSubmissionDTO submission, bool expectedCorrectness) { using var scope = _factory.Services.CreateScope(); var controller = new SubmissionController(_factory.Services.GetRequiredService <IMapper>(), scope.ServiceProvider.GetRequiredService <ISubmissionService>()); var dbContext = scope.ServiceProvider.GetRequiredService <SmartTutorContext>(); controller.SubmitQuestionAnswers(submission); var actualSubmission = dbContext.QuestionSubmissions.OrderBy(s => s.TimeStamp).Last(q => q.QuestionId == submission.QuestionId); actualSubmission.IsCorrect.ShouldBe(expectedCorrectness); }
public void Rejects_bad_challenge_submission() { using var scope = _factory.Services.CreateScope(); var controller = new SubmissionController(_factory.Services.GetRequiredService <IMapper>(), scope.ServiceProvider.GetRequiredService <ISubmissionService>()); var submission = new ChallengeSubmissionDTO { ChallengeId = 41, LearnerId = 1 }; controller.SubmitChallenge(submission).Result.ShouldBeOfType <BadRequestObjectResult>(); }
public void Should_Be_Higher_Score_When_Get_By_Challenge_Id(int challengeId) { var fakes = new Fakes(); var fakeService = fakes.FakeSubmissionService().Object; var expected = fakeService.FindHigherScoreByChallengeId(challengeId); var controller = new SubmissionController(fakeService, fakes.Mapper); var result = controller.GetHigherScore(challengeId); Assert.IsType <OkObjectResult>(result.Result); var actual = (result.Result as OkObjectResult).Value; Assert.IsType <decimal>(actual); Assert.Equal(expected, (decimal)actual); }
public async Task List_Returns_paging_result( [Frozen] Mock <ISubmissionService> submissionServiceMock, SubmissionController sut, PagingInformation pagingInformation, PagingResult <Submission> submissions) { submissionServiceMock .Setup(x => x.ListAsync(pagingInformation, CancellationToken.None)) .Returns(Task.FromResult(submissions)); var response = await sut.List(pagingInformation, CancellationToken.None); Assert.IsInstanceOf <ViewResult>(response); submissionServiceMock.VerifyAll(); }
protected void btnSave_Click(object sender, EventArgs e) { SubmissionList slist = new SubmissionList(); foreach (DataListItem item in dlGradeAssignmentByInstructor.Items) { Submission s = new Submission(); s.Student.SId = ((Label)item.FindControl("lblStudentID")).Text; s.Grade = Convert.ToDecimal(((TextBox)item.FindControl("txtBoxGrade")).Text); s.Assignment.AssignmentId = assignmentId; slist.Add(s); } SubmissionController.Save(slist); slist.Clear(); Response.Redirect("~/Presentation/formAssignment.aspx"); }
public void Should_Be_Ok_When_Find_By_Challenge_And_Acceleration(int challengeId, int accelerationId) { var fakes = new Fakes(); var fakeService = fakes.FakeSubmissionService().Object; var expected = fakeService.FindByChallengeIdAndAccelerationId(challengeId, accelerationId). Select(x => fakes.Mapper.Map <SubmissionDTO>(x)). ToList(); var controller = new SubmissionController(fakeService, fakes.Mapper); var result = controller.GetAll(challengeId: challengeId, accelerationId: accelerationId); Assert.IsType <OkObjectResult>(result.Result); var actual = (result.Result as OkObjectResult).Value as List <SubmissionDTO>; Assert.NotNull(actual); Assert.Equal(expected, actual, new SubmissionDTOIdComparer()); }
public void Accepts_challenge_submission_and_produces_correct_evaluation(ChallengeSubmissionDTO submission, ChallengeEvaluationDTO expectedEvaluation) { using var scope = _factory.Services.CreateScope(); var controller = new SubmissionController(_factory.Services.GetRequiredService <IMapper>(), scope.ServiceProvider.GetRequiredService <ISubmissionService>()); var dbContext = scope.ServiceProvider.GetRequiredService <SmartTutorContext>(); var actualEvaluation = ((OkObjectResult)controller.SubmitChallenge(submission).Result).Value as ChallengeEvaluationDTO; actualEvaluation.SolutionLO.Id.ShouldBe(expectedEvaluation.SolutionLO.Id); actualEvaluation.ChallengeId.ShouldBe(expectedEvaluation.ChallengeId); actualEvaluation.ApplicableHints.Count.ShouldBe(expectedEvaluation.ApplicableHints.Count); actualEvaluation.ApplicableHints.Select(h => h.LearningObject.Id) .All(expectedEvaluation.ApplicableHints.Select(i => i.LearningObject.Id).Contains).ShouldBeTrue(); var actualSubmission = dbContext.ChallengeSubmissions.OrderBy(s => s.TimeStamp).Last(c => c.ChallengeId == submission.ChallengeId); actualSubmission.IsCorrect.ShouldBe(expectedEvaluation.ChallengeCompleted); }
public async Task Post_BadResponse_ModelError() { var mockSubmissionService = new Mock <ISubmissionService>(); var mockLoggingService = new Mock <ILogger <SubmissionController> >(); var mockErrorModel = new Mock <ErrorModel>(); mockSubmissionService.Setup(serv => serv.AddSubmissionAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>())) .ReturnsAsync(true) .Verifiable(); var controller = new SubmissionController(mockLoggingService.Object, mockSubmissionService.Object, mockErrorModel.Object); controller.ModelState.AddModelError("Error", "Error"); var result = await controller.Post(GetTestSubmissions().First()); var badRequest = Assert.IsType <BadRequestObjectResult>(result); // Check if HTTP Bad Request sent back var correctDto = Assert.IsType <ResponseDTO>(badRequest.Value); // Check if ResponseDTO sent }
public async Task Post_OKResponse_GoodModel() { var mockSubmissionService = new Mock <ISubmissionService>(); var mockLoggingService = new Mock <ILogger <SubmissionController> >(); var mockErrorModel = new Mock <ErrorModel>(); mockSubmissionService.Setup(serv => serv.AddSubmissionAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>())) .ReturnsAsync(true) .Verifiable(); var controller = new SubmissionController(mockLoggingService.Object, mockSubmissionService.Object, mockErrorModel.Object); var result = await controller.Post(GetTestSubmissions().First()); var okRequest = Assert.IsType <OkObjectResult>(result); // Check if HTTP OK sent back var correctDto = Assert.IsType <ResponseDTO>(okRequest.Value); // Check if ResponseDTO sent Assert.Empty(correctDto.Errors); // Check if DTO has no errors listed. }
public void Question_and_learner_are_in_different_courses_returns_forbidden_status() { using var scope = _factory.Services.CreateScope(); var controller = new SubmissionController(_factory.Services.GetRequiredService <IMapper>(), scope.ServiceProvider.GetRequiredService <ISubmissionService>()); var submission = new QuestionSubmissionDTO { QuestionId = 17, Answers = new List <QuestionAnswerDTO> { new QuestionAnswerDTO { Id = 2 }, new QuestionAnswerDTO { Id = 5 } }, LearnerId = 4 }; controller.SubmitQuestionAnswers(submission).Result.ShouldBeOfType(typeof(ForbidResult)); }
public void EntryLimitReachedTest() { var _db = GetDatabaseContext(); var subRepo = new SubmissionRepo(_db); var controller = new SubmissionController(_db, subRepo); Submission submission = new Submission("Egon", "*****@*****.**", 44, 63307008); Submission submission2 = new Submission("Egon", "*****@*****.**", 44, 63307008); controller.Create(submission); controller.Create(submission2); int subCount = subRepo.GetSubmissions().Count(); controller.Create(submission); string v = subRepo.ValidateSubmission(submission); Assert.AreEqual(2, subCount); Assert.AreEqual("Too many entries", v); }
public void SubmitAssignment(int assignmentId, byte[][] data, string authToken) { if (authService.IsValidKey(authToken)) { UserProfile currentUser = authService.GetActiveUser(authToken); //turn byte data into HttpPostedFileBase for file submission List <HttpPostedFileBase> files = new List <HttpPostedFileBase>(); foreach (byte[] file in data) { /* * HttpPostedFile assignmentFile = new HttpPostedFile(); * StreamWriter writer = new StreamWriter(assignmentFile.InputStream); * writer.Write(file); * assignmentFile.InputStream.Position = 0; * */ } SubmissionController submission = new SubmissionController(); submission.Create(assignmentId, files); } }
public void Should_Be_Ok_When_Post() { var fakes = new Fakes(); var fakeService = fakes.FakeSubmissionService().Object; var expected = new SubmissionDTO() { UserId = 2, ChallengeId = 6, Score = 90 }; var controller = new SubmissionController(fakeService, fakes.Mapper); var result = controller.Post(expected); Assert.IsType <OkObjectResult>(result.Result); var actual = (result.Result as OkObjectResult).Value as SubmissionDTO; Assert.NotNull(actual); Assert.Equal(expected.UserId, actual.UserId); Assert.Equal(expected.ChallengeId, actual.ChallengeId); Assert.Equal(expected.Score, actual.Score); }
/// <summary> /// Views grades. /// </summary> /// <param name="dList">Data list for submission list.</param> /// <param name="sid">Student ID.</param> /// <param name="courseId">Course ID.</param> public void ViewAssignmentGradeByStudent(DataList dList, string courseId) { DataTable dt = new DataTable(); SubmissionList submissionList = SubmissionController.GetItemByCourse(courseId); DataColumn dc = new DataColumn(); dc.DataType = Type.GetType("System.String"); dc.ColumnName = "StudentName"; dt.Columns.Add(dc); DataColumn dc1 = new DataColumn(); dc1.DataType = Type.GetType("System.String"); dc1.ColumnName = "AggregateGrade"; dt.Columns.Add(dc1); DataColumn dc2 = new DataColumn(); dc2.DataType = Type.GetType("System.String"); dc2.ColumnName = "StudentID"; dt.Columns.Add(dc2); DataRow dr; if (submissionList != null) { foreach (Submission sb in submissionList) { dr = dt.NewRow(); dr["StudentID"] = sb.Student.SId; dr["AggregateGrade"] = sb.Grade.ToString(".00"); dr["StudentName"] = sb.Student.FullName; dt.Rows.Add(dr); } } dList.DataSource = dt; dList.DataBind(); }
public async Task Post_BadResponse_ErrorCountGreaterThanZero() { var mockSubmissionService = new Mock <ISubmissionService>(); var mockLoggingService = new Mock <ILogger <SubmissionController> >(); var mockErrorModel = new Mock <ErrorModel>(); mockErrorModel.Object.Errors.Add(new Error() { ErrorMessage = "Random accumulated error from controller or service" }); mockSubmissionService.Setup(serv => serv.AddSubmissionAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>())) .ReturnsAsync(false) .Verifiable(); var controller = new SubmissionController(mockLoggingService.Object, mockSubmissionService.Object, mockErrorModel.Object); var result = await controller.Post(GetTestSubmissions().First()); var badRequest = Assert.IsType <BadRequestObjectResult>(result); // Check if HTTP Bad Request sent back var correctDto = Assert.IsType <ResponseDTO>(badRequest.Value); // Check if ResponseDTO sent Assert.NotEmpty(correctDto.Errors); // Check if DTO has errors listed. }
public void Rejects_bad_arrange_task_submission() { using var scope = _factory.Services.CreateScope(); var controller = new SubmissionController(_factory.Services.GetRequiredService <IMapper>(), scope.ServiceProvider.GetRequiredService <ISubmissionService>()); var submission = new ArrangeTaskSubmissionDTO { ArrangeTaskId = 32, LearnerId = 1, Containers = new List <ArrangeTaskContainerDTO> { new ArrangeTaskContainerDTO { Id = 1, Elements = new List <ArrangeTaskElementDTO> { new ArrangeTaskElementDTO { Id = 1 } } } } }; Should.Throw <InvalidOperationException>(() => controller.SubmitArrangeTask(submission)); }
public async Task ModalProcess_LockDoesntMatchUser() { var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.NameIdentifier, "bob"), new Claim(ClaimTypes.Name, "bob") })); var tc = new SubmissionController(_logger, _scontext) { ControllerContext = new Microsoft.AspNetCore.Mvc.ControllerContext() { HttpContext = new DefaultHttpContext() { User = user } } }; var result = await tc.ModalProcess(1, "Accept", "Nah", "id", "04/01/2020", "04/15/2020", "pName", "cName", "PRIME", "timesheetIndex", 1, "providerId") as ViewResult; Assert.AreEqual("NoPermission", result.ViewName); }
/// <summary> /// Views information about the assignment submission. /// </summary> /// <param name="dlistLectureNote">Data list for submission list.</param> /// <param name="assignmentId">ID of the assignment.</param> public void ViewSubmission(DataList dlistLectureNote, int assignmentId) { SubmissionList submissionList; DataTable dt = new DataTable(); submissionList = SubmissionController.GetItem(assignmentId); DataColumn dc = new DataColumn(); dc.DataType = Type.GetType("System.String"); dc.ColumnName = "StudentName"; dt.Columns.Add(dc); DataColumn dc1 = new DataColumn(); dc1.DataType = Type.GetType("System.String"); dc1.ColumnName = "ATitle"; dt.Columns.Add(dc1); DataColumn dc2 = new DataColumn(); dc2.DataType = Type.GetType("System.String"); dc2.ColumnName = "SubmissionDate"; dt.Columns.Add(dc2); DataColumn dc3 = new DataColumn(); dc3.DataType = Type.GetType("System.String"); dc3.ColumnName = "Grade"; dt.Columns.Add(dc3); DataColumn dc4 = new DataColumn(); dc4.DataType = Type.GetType("System.String"); dc4.ColumnName = "StudentID"; dt.Columns.Add(dc4); DataColumn dc5 = new DataColumn(); dc5.DataType = Type.GetType("System.String"); dc5.ColumnName = "FileLocation"; dt.Columns.Add(dc5); DataRow dr; if (submissionList != null) { foreach (Submission sb in submissionList) { dr = dt.NewRow(); dr["StudentName"] = sb.Student.FullName; dr["ATitle"] = sb.Assignment.ATitle; dr["SubmissionDate"] = sb.SubmissionDate.ToShortDateString(); dr["Grade"] = sb.Grade; dr["StudentID"] = sb.Student.SId; dr["FileLocation"] = sb.FileLocation; dt.Rows.Add(dr); } } else { btnSave.Visible = false; lblNoAssignmentText.Text = "No files submitted by students."; lblNoAssignmentText.Visible = true; } dlistLectureNote.DataSource = dt; dlistLectureNote.DataBind(); }
public void Init() { Controller = new SubmissionController(new MockEngine()); }