public void Render_CSV_from_DataManagementPlanTable() { var project = SetUpFullProject("GA37493"); var dmpTable = _csvHelper.DataManagementPlanToDataTable(project.DataManagementPlan, project.Parties); var csv = _csvHelper.ExportToCsv(dmpTable); var csvRows = csv.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); Assert.That(csvRows.Length, Is.EqualTo(2)); var csvHeaders = csvRows[0].Split('|'); var csvValues = csvRows[1].Split('|'); Assert.That(csvHeaders.Length, Is.EqualTo(DataManagementColumnCount), "Incorrect number of column headers"); Assert.That(csvValues.Length, Is.EqualTo(DataManagementColumnCount), "Incorrect number of column values"); var parties = csvValues[DataManagementColumnCount - 1].Split('%'); Assert.That(parties.Length, Is.EqualTo(5)); }
public ActionResult DataManagementPlanToCsv(CsvDumpViewModel model) { var formParams = ControllerContext.HttpContext.Request.Form; var dmpList = formParams["ProjectList"]; int sourceProjectId; if (int.TryParse(dmpList, out sourceProjectId)) { var project = _projectRepository.GetByDataManagementPlanId(sourceProjectId); if (project != null) { var dataManagementPlanTable = _csvHelper.DataManagementPlanToDataTable(project.DataManagementPlan, project.Parties); var reponse = this.ControllerContext.RequestContext.HttpContext.Response; var fileName = Regex.Replace(project.Title, @"\W+", "_").Trim('_'); reponse.AddHeader("Content-Disposition", "attachment;filename=" + fileName + "_DataManagementPlan.csv"); return(File(Encoding.UTF8.GetBytes(_csvHelper.ExportToCsv(dataManagementPlanTable, _appSettingsService.CsvSeparator)), "text/csv")); } return(View("DmpNotFound")); } return(RedirectToAction("Index")); }
public void Render_CSV_file_for_post_to_DataManagementPlanToCsv() { var vm = new CsvDumpViewModel { Projects = Builder <DmpListViewModel> .CreateListOfSize(3).Build() }; _form["DataManagementPlanCsv"] = "Get Data Management Plan to CSV"; _form["ProjectList"] = "1"; var project = SetUpFullProject("GA37493"); _projectRepository.GetByDataManagementPlanId(project.DataManagementPlan.Id).Returns(project); _csvHelper.ExportToCsv(Arg.Any <DataTable>()).Returns(""); _csvHelper.DataManagementPlanToDataTable(Arg.Any <DataManagementPlan>(), Arg.Any <IList <ProjectParty> >()).Returns(new DataTable()); _controller.WithCallTo(c => c.DataManagementPlanToCsv(vm)).ShouldRenderFile("text/csv"); _csvHelper.Received().ExportToCsv(Arg.Any <DataTable>(), Arg.Any <string>()); _csvHelper.Received().DataManagementPlanToDataTable(Arg.Any <DataManagementPlan>(), Arg.Any <IList <ProjectParty> >()); const string headerValue = "attachment;filename=Feeding_habits_of_polarbears_2011_DataManagementPlan.csv"; _context.HttpContext.Response.Received().AddHeader(Arg.Any <string>(), Arg.Is <string>(o => o == headerValue)); }