public HttpResponseMessage CreateSubmission(SubmissionCreateRequest submission) { ItemResponse <int> response = new ItemResponse <int>(); response.Item = SubmissionService.CreateSubmission(submission); return(Request.CreateResponse(HttpStatusCode.OK, response)); }
public async Task <IActionResult> Download(string sectionName) { var section = Classroom.Sections .SingleOrDefault(s => s.Name == sectionName); if (section == null) { return(NotFound()); } var archiveContents = await SubmissionService.DownloadSubmissionsAsync ( ClassroomName, ProjectName, CheckpointName, sectionName ); var timestamp = TimeZoneProvider.ToUserLocalTime(DateTime.UtcNow) .ToString("yyyyMMdd-HHmmss"); var filename = $"{Classroom.Name}-{Project.Name}-{Checkpoint.Name}-{timestamp}.zip"; return(File(archiveContents, "application/zip", filename)); }
public void UpdateAsyncTest_Should_Not_Throw_Exception() { const string id = "123"; //arrange var mockedRepo = new Mock <IGenericRepository <SubmissionVM> >(); var mockedServiceBusService = new Mock <IServiceBusService>(); var mockedJobClient = new Mock <IBackgroundJobClient>(); var mockedConfigRepo = new Mock <IGenericRepository <ConfigVM> >(); var mockedConfig = new Mock <IAppConfiguration <ConfigVM> >(); var mockedAppSettings = new Mock <IConfiguration>(); //var mockedIdGenerator = new Mock<IUidGeneratorService>(); var sut = new SubmissionService(mockedRepo.Object, mockedServiceBusService.Object, mockedJobClient.Object); //, mockedConfigRepo.Object, mockedConfig.Object, mockedAppSettings.Object); var submissionVm = new SubmissionVM { Id = id }; var doc = new SubmissionVM(); mockedRepo.Setup(x => x.UpdateAsync(It.IsAny <string>(), It.IsAny <SubmissionVM>())).ReturnsAsync(doc); // Act Action action = () => sut.UpdateAsync(id, submissionVm); // Assert action.Should().NotThrow <Exception>(); }
public void SaveTeste_When_Update(int userId, int challengeId) { var fakeContext = new FakeContext("UpdateSubmission"); fakeContext.FillWith<Submission>(); fakeContext.FillWith<User>(); fakeContext.FillWith<Models.Challenge>(); using (var context = new CodenationContext(fakeContext.FakeOptions)) { var expected = fakeContext.GetFakeData<Submission>() .Find(x => x.UserId == userId && x.ChallengeId == challengeId); expected.UserId = 1; expected.ChallengeId = 2; expected.Score = 100; expected.CreatedAt = DateTime.Today; var service = new SubmissionService(context); var actual = service.Save(expected); Assert.Equal(expected, actual); Assert.Equal(expected.Score, actual.Score); Assert.Equal(expected.CreatedAt, actual.CreatedAt); } }
public override object GetContent(object model) { securityService.CreateAccessContext(); if (FormId > 0) { SubmissionService subSrv = new SubmissionService(new CatfishDbContext()); Form form = subSrv.CreateSubmissionForm( FormId, EnforceLists, ShuffleBlocks, ShuffleQuestions, QuestionStepOption, QuestionPartsStepOption); if (EnableReferenceCodes) { Random rand = new Random(); form.ReferenceCode = DateTime.Now.ToString("yyMMdd-HHmmss-") + rand.Next(1000, 10000); } FormViewModel = new FormViewModel() { Form = form, ItemId = 0, MaxImageSize = MaxPixelLength }; } return(base.GetContent(model)); }
public void FindByAccelerationIdTest_Return_Right(int challengeId, int accelerationId, params string[] idSubmissionsExpected) { var fakeContext = new FakeContext("FindByChallengeIdAndAccelerationId"); fakeContext.FillWith<Acceleration>(); fakeContext.FillWith<Candidate>(); fakeContext.FillWith<User>(); fakeContext.FillWith<Submission>(); fakeContext.FillWith <Models.Challenge>(); using (var context = new CodenationContext(fakeContext.FakeOptions)) { List<Submission> expected = new List<Submission>(); foreach (var idCandidate in idSubmissionsExpected) { var idSubmissionInt = idCandidate.Split(',').Select(x => int.Parse(x)).ToList(); expected.Add(fakeContext .GetFakeData<Submission>() .Find(x => x.UserId == idSubmissionInt[0] && x.ChallengeId == idSubmissionInt[1])); } var service = new SubmissionService(context); var actual = service.FindByChallengeIdAndAccelerationId(challengeId, accelerationId) .OrderBy(s => s.UserId) .ThenBy(s => s.ChallengeId); Assert.Equal(expected, actual, new SubmissionIdComparer()); } }
public void SendSubmission_Should_Not_Throw_Exception_When_BackgroundJob_Fails() { const string id = "123"; var submissionVm = new SubmissionVM { Id = id }; var doc = new SubmissionVM(); //arrange var mockedRepo = new Mock <IGenericRepository <SubmissionVM> >(); var mockedServiceBusService = new Mock <IServiceBusService>(); var mockedJobClient = new Mock <IBackgroundJobClient>(); var sut = new SubmissionService(mockedRepo.Object, mockedServiceBusService.Object, mockedJobClient.Object); mockedRepo.Setup(x => x.UpdateAsync(It.IsAny <string>(), It.IsAny <SubmissionVM>())).ReturnsAsync(doc); mockedServiceBusService.Setup(b => b.SendMessageAsync(It.IsAny <SubmissionVM>())).Throws(new Exception()); //Ensure exception created by hangfire mockedJobClient.Setup(j => j.Create(It.IsAny <Job>(), It.IsAny <EnqueuedState>())).Throws(new Exception("testing exception")); // Act Action action = () => sut.SendSubmission(id, submissionVm); // Assert action.Should().NotThrow <Exception>(); mockedJobClient.Verify(x => x.Create( It.Is <Job>(job => job.Method.Name == "SendMessageAsync" && job.Args[0] == submissionVm), It.IsAny <EnqueuedState>() )); }
public async Task GetSubmissionForSnapshotYear_Returns_null_when_year_does_not_exist() { // Mocks mockDataRepo.Setup(dr => dr.GetAll <Return>()) .Returns( new[] { new Return { ReturnId = 1, OrganisationId = 2, AccountingDate = new DateTime(1999, 1, 1) }, new Return { ReturnId = 2, OrganisationId = 1, AccountingDate = new DateTime(1999, 1, 2) }, new Return { ReturnId = 3, OrganisationId = 1, AccountingDate = new DateTime(2000, 1, 3) }, new Return { ReturnId = 4, OrganisationId = 1, AccountingDate = new DateTime(2000, 1, 4) }, new Return { ReturnId = 5, OrganisationId = 2, AccountingDate = new DateTime(2000, 1, 5) } }.AsQueryable() .BuildMock() .Object); var sharedBusinessLogic = UiTestHelper.DIContainer.Resolve <ISharedBusinessLogic>(); var testSubmissionService = new SubmissionService(sharedBusinessLogic, Mock.Of <ISubmissionBusinessLogic>(), Mock.Of <IScopeBusinessLogic>(), Mock.Of <IDraftFileBusinessLogic>()); var testPresenter = new SubmissionPresenter(testSubmissionService, ConfigHelpers.SubmissionOptions, null); // Assert Return actualReturn = await testPresenter.GetReturnFromDatabaseAsync(1, 1998); Expect(actualReturn == null); }
public async void FindByAsync_Should_Return_Correct_Data() { const string id = "123"; //arrange var mockedRepo = new Mock <IGenericRepository <SubmissionVM> >(); var mockedConfigRepo = new Mock <IGenericRepository <ConfigVM> >(); var mockedConfig = new Mock <IAppConfiguration <ConfigVM> >(); var mockedAppSettings = new Mock <IConfiguration>(); //var mockedIdGenerator = new Mock<IUidGeneratorService>(); var sut = new SubmissionService(mockedRepo.Object, mockedConfigRepo.Object, mockedConfig.Object, mockedAppSettings.Object); var submissionVm = new SubmissionVM { Id = id }; var query = new List <SubmissionVM> { submissionVm }.AsQueryable(); mockedRepo.Setup(x => x.FindByAsync(m => m.Id == id)).ReturnsAsync(query); //act var result = await sut.FindByAsync(m => m.Id == id); //assert var submissionVms = result as SubmissionVM[] ?? result.ToArray(); submissionVms.ToList()[0].Id.Should().Be(id); }
public async Task DraftFile_GetDraftFile_Returns_A_Valid_DraftAsync() { // Arrange User mockedUser = UserHelper.GetNotAdminUserWithVerifiedEmailAddress(); Organisation mockedOrganisation = OrganisationHelper.GetPublicOrganisation(); mockedOrganisation.OrganisationId = new Random().Next(1000, 9999); UserOrganisation mockedUserOrganisation = UserOrganisationHelper.LinkUserWithOrganisation(mockedUser, mockedOrganisation); Return mockedReturn = ReturnHelper.GetSubmittedReturnForOrganisationAndYear(mockedUserOrganisation, ConfigHelpers.SharedOptions.FirstReportingYear); OrganisationHelper.LinkOrganisationAndReturn(mockedOrganisation, mockedReturn); var testDraftFileBL = new DraftFileBusinessLogic(null, new SystemFileRepository(new StorageOptions())); var sharedBusinessLogic = UiTestHelper.DIContainer.Resolve <ISharedBusinessLogic>(); var testSubmissionService = new SubmissionService(sharedBusinessLogic, Mock.Of <ISubmissionBusinessLogic>(), Mock.Of <IScopeBusinessLogic>(), testDraftFileBL); var testPresenter = new SubmissionPresenter(testSubmissionService, ConfigHelpers.SubmissionOptions, null); // Act Draft actualDraft = await testPresenter.GetDraftFileAsync( mockedOrganisation.OrganisationId, mockedOrganisation.SectorType.GetAccountingStartDate().Year, mockedUser.UserId); // Assert Assert.NotNull(actualDraft); Assert.True(actualDraft.IsUserAllowedAccess); Assert.AreEqual(mockedUser.UserId, actualDraft.LastWrittenByUserId); // Clean up await testDraftFileBL.DiscardDraftAsync(actualDraft); }
public void GetSubmissionChangeSummary_Detects_when_the_website_url_has_changed() { var testOldReturn = new Return { CompanyLinkToGPGInfo = "", Organisation = new Organisation { SectorType = SectorTypes.Private } }; var sharedBusinessLogic = UiTestHelper.DIContainer.Resolve <ISharedBusinessLogic>(); // Mocks var testSubmissionService = new SubmissionService(sharedBusinessLogic, Mock.Of <ISubmissionBusinessLogic>(), Mock.Of <IScopeBusinessLogic>(), Mock.Of <IDraftFileBusinessLogic>()); var testPresenter = new SubmissionPresenter(testSubmissionService, ConfigHelpers.SubmissionOptions, null); // Copy the original var testNewReturn = (Return)testOldReturn.CopyProperties(new Return()); // Make the change testNewReturn.CompanyLinkToGPGInfo = "http://unittesting"; // Assert SubmissionChangeSummary testChangeSummary = testPresenter.GetSubmissionChangeSummary(testNewReturn, testOldReturn); string failMessage = $"Assert: Failed to detect {nameof(testNewReturn.CompanyLinkToGPGInfo)} had changed"; Expect(testChangeSummary.HasChanged, failMessage); Expect(testChangeSummary.FiguresChanged == false, failMessage); Expect(testChangeSummary.OrganisationSizeChanged == false, failMessage); Expect(testChangeSummary.PersonResonsibleChanged == false, failMessage); Expect(testChangeSummary.WebsiteUrlChanged, failMessage); }
public async Task <IActionResult> Submit(int userId, int commitId) { if (userId != User.Id && ClassroomRole < ClassroomRole.Admin) { return(Forbid()); } var submission = await SubmissionService.SubmitCheckpointAsync ( ClassroomName, ProjectName, CheckpointName, userId, commitId ); var viewModel = new SubmittedViewModel ( submission.Commit, submission.Commit.GetCommitUrl(Url), submission.Checkpoint, TimeZoneProvider ); return(View("Submitted", viewModel)); }
public async Task <IActionResult> SendFeedback(string sectionName) { var section = Classroom.Sections .SingleOrDefault(s => s.Name == sectionName); if (section == null) { return(NotFound()); } await SubmissionService.SendFeedbackAsync ( ClassroomName, ProjectName, CheckpointName, sectionName, submission => $"{_webAppHost.HostName}" + Url.Action ( "ViewFeedback", new { submissionId = submission.Id } ) ); return(RedirectToAction("Grade")); }
public DetailModel(ILogger <DetailModel> logger, TaskService taskService, IAuthorizationService authService, SubmissionService submissionService) { _logger = logger; _taskService = taskService; _authService = authService; _submisssionService = submissionService; }
public VoteController() { this._voteService = new VoteService(); this._userService = new UserService(); this._submissionService = new SubmissionService(); this._commentService = new CommentService(); }
public void Should_Be_Right_Submissions_When_Find_By_Challenge_And_Acceleration(int challengeId, int accelerationId) { var fakeContext = new FakeContext("SubmissionByChallengeAndAcceleration"); fakeContext.FillWithAll(); using (var context = new CodenationContext(fakeContext.FakeOptions)) { var expected = fakeContext.GetFakeData <Candidate>(). Where(candidate => candidate.AccelerationId == accelerationId). Join(fakeContext.GetFakeData <User>(), candidate => candidate.UserId, user => user.Id, (candidate, user) => user). Join(fakeContext.GetFakeData <Submission>(), user => user.Id, submission => submission.UserId, (user, submission) => submission). Where(submission => submission.ChallengeId == challengeId). Distinct(). ToList(); var service = new SubmissionService(context); var actual = service.FindByChallengeIdAndAccelerationId(accelerationId, challengeId); Assert.Equal(expected, actual, new SubmissionIdComparer()); } }
public void IsCurrentSnapshotYear_Returns_true_When_SnapshotYear_is_the_Current_Year() { var currentSnapshotYear = 2001; var testSnapshotYear = 2001; // Mocks var mockService = new Mock <SubmissionService>( mockDataRepo.Object, mockScopeBL.Object, _mockDraftFileBL.Object); mockService.CallBase = true; // Override GetReportingStartDate and return expectedYear mockService.Setup(ss => ss.GetSnapshotDate(It.IsAny <SectorTypes>(), It.IsAny <int>())) .Returns(new DateTime(currentSnapshotYear, 4, 5)); // Sanity checks Expect(currentSnapshotYear == testSnapshotYear, "SanityCheck: curReportingYear should equal the testReportingStartYear"); // Assert SubmissionService testService = mockService.Object; Expect(testService.IsCurrentSnapshotYear(SectorTypes.Private, testSnapshotYear)); }
public async void GetByIdAsync_Should_Return_Correct_Data() { const string id = "123"; //arrange var mockedRepo = new Mock <IGenericRepository <SubmissionVM> >(); var mockedServiceBusService = new Mock <IServiceBusService>(); var mockedJobClient = new Mock <IBackgroundJobClient>(); var mockedConfigRepo = new Mock <IGenericRepository <ConfigVM> >(); var mockedConfig = new Mock <IAppConfiguration <ConfigVM> >(); var mockedAppSettings = new Mock <IConfiguration>(); //var mockedIdGenerator = new Mock<IUidGeneratorService>(); var sut = new SubmissionService(mockedRepo.Object, mockedServiceBusService.Object, mockedJobClient.Object); //, mockedConfigRepo.Object, mockedConfig.Object, mockedAppSettings.Object); var submissionVm = new SubmissionVM { Id = id }; var doc = new DocumentResponse <SubmissionVM>(submissionVm); mockedRepo.Setup(x => x.GetByIdAsync(It.IsAny <string>())).ReturnsAsync(doc); //act var result = await sut.GetByIdAsync(id); //assert result.Id.Should().Be(id); }
public override void InitManager(object model) { securityService.CreateAccessContext(); // get db context new Services.SecurityService(db).CreateAccessContext(); CollectionService collectionSrv = new CollectionService(db); EntityTypeService entityTypeSrv = new EntityTypeService(db); SubmissionService formService = new SubmissionService(db); securityService.CreateAccessContext(); Form form = db.FormTemplates.Where(f => f.Id == FormId).FirstOrDefault(); List <SelectListItem> listFormFields = new List <SelectListItem>(); if (form != null) { GetFormField(form.Fields, "", ref listFormFields); mFormFields = new SelectList(listFormFields, "Value", "Text"); } if (EntityTypeId > 0) { mAttributeFields = new SelectList(entityTypeService.GetEntityTypeById(EntityTypeId).AttributeMappings, "Name", "Name"); } base.InitManager(model); }
public async void FindByAsync_Should_Not_Be_Null() { const string id = "123"; //arrange var mockedRepo = new Mock <IGenericRepository <SubmissionVM> >(); var mockedConfigRepo = new Mock <IGenericRepository <ConfigVM> >(); var mockedConfig = new Mock <IAppConfiguration <ConfigVM> >(); var sut = new SubmissionService(mockedRepo.Object, mockedConfigRepo.Object, mockedConfig.Object); var submissionVm = new SubmissionVM { Id = id }; var query = new List <SubmissionVM> { submissionVm }.AsQueryable(); mockedRepo.Setup(x => x.FindByAsync(m => m.Id == id)).ReturnsAsync(query); //act var result = await sut.FindByAsync(m => m.Id == id); //assert var submissionVms = result as SubmissionVM[] ?? result.ToArray(); submissionVms.ToList().Should().NotBeNull(); }
public void GetSubmissionForSnapshotYear_Returns_null_when_year_does_not_exist() { // Mocks mockDataRepo.Setup(dr => dr.GetAll <Return>()) .Returns( new[] { new Return { ReturnId = 1, OrganisationId = 2, AccountingDate = new DateTime(1999, 1, 1) }, new Return { ReturnId = 2, OrganisationId = 1, AccountingDate = new DateTime(1999, 1, 2) }, new Return { ReturnId = 3, OrganisationId = 1, AccountingDate = new DateTime(2000, 1, 3) }, new Return { ReturnId = 4, OrganisationId = 1, AccountingDate = new DateTime(2000, 1, 4) }, new Return { ReturnId = 5, OrganisationId = 2, AccountingDate = new DateTime(2000, 1, 5) } }.AsQueryable() .BuildMock() .Object); var testService = new SubmissionService( mockDataRepo.Object, mockScopeBL.Object, _mockDraftFileBL.Object); // Assert Return actualReturn = testService.GetReturnFromDatabase(1, 1998); Expect(actualReturn == null); }
public void GetSubmissionChangeSummary_Detects_when_the_website_url_has_changed() { var testOldReturn = new Return { CompanyLinkToGPGInfo = "", Organisation = new Organisation { SectorType = SectorTypes.Private } }; // Mocks var testService = new SubmissionService( mockDataRepo.Object, mockScopeBL.Object, _mockDraftFileBL.Object); // Copy the original var testNewReturn = (Return)testOldReturn.CopyProperties(new Return()); // Make the change testNewReturn.CompanyLinkToGPGInfo = "http://unittesting"; // Assert SubmissionChangeSummary testChangeSummary = testService.GetSubmissionChangeSummary(testNewReturn, testOldReturn); string failMessage = $"Assert: Failed to detect {nameof(testNewReturn.CompanyLinkToGPGInfo)} had changed"; Expect(testChangeSummary.HasChanged, failMessage); Expect(testChangeSummary.FiguresChanged == false, failMessage); Expect(testChangeSummary.OrganisationSizeChanged == false, failMessage); Expect(testChangeSummary.PersonResonsibleChanged == false, failMessage); Expect(testChangeSummary.WebsiteUrlChanged, failMessage); }
public ActionResult Edit(FormViewModel vm) { var model = GetModel(); if (ModelState.IsValid) { FormContainer formContainer = model.Region <FormContainer>("FormContainer"); CFItem submission = SubmissionService.SaveSubmission( vm.Form, vm.FormSubmissionRef, vm.ItemId, formContainer.EntityTypeId, formContainer.FormId, formContainer.CollectionId); CFAuditEntry.eAction action = submission.Id == 0 ? CFAuditEntry.eAction.Create : CFAuditEntry.eAction.Update; string actor = User.Identity.IsAuthenticated ? User.Identity.Name : "Annonymous"; Db.SaveChanges(User.Identity); string confirmLink = "confirmation"; return(Redirect(confirmLink)); } ViewBag.PageModel = model; return(View(model.GetView(), vm)); }
public HttpResponseMessage SelectById(int id) { ItemResponse <Submission> response = new ItemResponse <Submission>(); response.Item = SubmissionService.GetById(id); return(Request.CreateResponse(HttpStatusCode.OK, response)); }
public SubmissionServiceTest() { _contextoFake = new FakeContext("SubmissionTest"); _contextoFake.FillWithAll(); _contexto = new CodenationContext(_contextoFake.FakeOptions); _submissionService = new SubmissionService(_contexto); }
public JsonResult Submit(FormViewModel vm, FormContainer formContainer) { if (ModelState.IsValid) { SubmissionService subSrv = new SubmissionService(Db); //add AttributeMappings -- Apr 10 2018 IDictionary <string, string> attributeMappings = new Dictionary <string, string>(); foreach (var map in formContainer.FieldMappings) { attributeMappings.Add(map.AttributeName, map.FieldName); } CFItem submission = subSrv.SaveSubmission( vm.Form, vm.FormSubmissionRef, vm.ItemId, formContainer.EntityTypeId, formContainer.FormId, formContainer.CollectionId, attributeMappings); //Sept 16 2019 -- if formContainer.AttachItemToUser = true, throw exception if current user is not authenticate if (formContainer.AttachItemToUser) { if (!User.Identity.IsAuthenticated) { //throw new HttpException("You have to authenticate to save this page."); vm.Errors = new Dictionary <string, string[]>(); vm.Errors.Add("NotAuthorized", (new string[] { "You are not authorized." })); return(Json(vm)); } } // Set's the audit log value when saving. // TODO: this should be more automated. CFAuditEntry.eAction action = submission.Id == 0 ? CFAuditEntry.eAction.Create : CFAuditEntry.eAction.Update; string actor = User.Identity.IsAuthenticated ? User.Identity.Name : "Annonymous"; Db.SaveChanges(User.Identity); } else { vm.Errors = new Dictionary <string, string[]>(); IEnumerable <KeyValuePair <string, System.Web.Mvc.ModelState> > errors = ModelState.Where(m => m.Value.Errors.Count > 0); List <string> errorList = new List <string>(); foreach (var error in errors) { vm.Errors.Add(error.Key, error.Value.Errors.Select(e => e.ErrorMessage).ToArray()); // errorList.AddRange(error.Value.Errors.Select(e => e.ErrorMessage)); } // vm.Errors.Add("Message", errorList.ToArray()); } return(Json(vm)); }
public DutyMessageController( DutyMessageRepository repository, MappingService mappingService, SubmissionService submissionService) { _repository = repository; _mappingService = mappingService; _submissionService = submissionService; }
public HttpResponseMessage SelectBySubmissionID(int id) { List <Submission> submissions = SubmissionService.GetByListingId(id); ItemsResponse <Submission> response = new ItemsResponse <Submission>(); response.Items = submissions; return(Request.CreateResponse(HttpStatusCode.OK, response)); }
public HttpResponseMessage GetApplicantById(int id) { ItemResponse <Applicant> response = new ItemResponse <Applicant> { Item = SubmissionService.GetApplicantById(id) }; return(Request.CreateResponse(HttpStatusCode.OK, response)); }
public DetailModel( SubmissionService submissionService, TestCaseService testCaseService, TestService testService) { _submissionService = submissionService; _testCaseService = testCaseService; _testService = testService; }