예제 #1
0
        public void Generate_Datatable_from_DataManagementPlan()
        {
            var project  = SetUpFullProject("GA37493");
            var dmpTable = _csvHelper.DataManagementPlanToDataTable(project.DataManagementPlan, project.Parties);
            var dmp      = project.DataManagementPlan;

            Assert.That(dmpTable, Is.Not.Null);
            Assert.That(dmpTable.Columns.Count, Is.EqualTo(DataManagementColumnCount), "Incorrect number of columns");
            Assert.That(dmpTable.Rows.Count, Is.EqualTo(1));
            var dataRow = dmpTable.Rows[0];

            Assert.That(dataRow["ExistingDataAccessTypes"], Is.EqualTo(dmp.ExistingDataDetail.ExistingDataAccessTypes.ToString()));
            Assert.That(dataRow["ExistingDataOwner"], Is.EqualTo(dmp.ExistingDataDetail.ExistingDataOwner));
            Assert.That(dataRow["InstitutionalOtherTypeDescription"], Is.EqualTo(dmp.DataStorage.InstitutionalOtherTypeDescription));
            Assert.That(dataRow["DataRetentionLocations"], Is.EqualTo(dmp.DataRetention.DataRetentionLocations.ToString()));
            Assert.That(dataRow["VersionControl"], Is.EqualTo(dmp.DataStorage.VersionControl.ToString()));
            Assert.That(dataRow["EthicRequiresClearance"], Is.EqualTo(dmp.Ethic.EthicRequiresClearance));
            Assert.That(dataRow["ConfidentialityComments"], Is.EqualTo(dmp.Confidentiality.ConfidentialityComments));
            Assert.That(dataRow["RelationshipBetweenExistingAndNewData"], Is.EqualTo(dmp.DataRelationshipDetail.RelationshipBetweenExistingAndNewData.ToString()));
            Assert.That(dataRow["DataSharingAvailabilityDate"], Is.EqualTo(dmp.DataSharing.DataSharingAvailabilityDate));

            var parties = dataRow["AccessRoles"].ToString().Split('%');

            Assert.That(parties.Length, Is.EqualTo(5));
        }
        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));
        }
        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"));
        }