Beispiel #1
0
        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));
        }