Convert-Pheno
view release on metacpan or search on metacpan
t/27-operation-registry.t view on Meta::CPAN
'registry keeps Dataset-XML plus Define-XML outside HTTP'
);
is_deeply(
conversion_spec('datasetxml2omop')->{pipeline},
[ 'datasetxml2bff', 'bff2omop' ],
'registry defines Dataset-XML to OMOP as a compound conversion'
);
my $cbioportal_to_bff = conversion_spec('cbioportal2bff');
is_deeply(
$cbioportal_to_bff->{pipeline},
['cbioportal2bff'],
'registry defines cBioPortal as a direct BFF bundle operation'
);
is_deeply(
$cbioportal_to_bff->{entities}{supported},
[ 'individuals', 'biosamples', 'datasets', 'cohorts' ],
'registry exposes the implemented cBioPortal-derived BFF entities'
);
ok(
!is_http_conversion('cbioportal2bff'),
'registry keeps filesystem cBioPortal study packages outside HTTP'
);
is_deeply(
conversion_spec('cbioportal2pxf')->{pipeline},
[ 'cbioportal2bff', 'bff2pxf' ],
'registry defines cBioPortal to PXF as a compound conversion'
);
my $fhir_to_bff = conversion_spec('fhir2bff');
is_deeply(
$fhir_to_bff->{pipeline},
['fhir2bff'],
'registry defines FHIR as a direct BFF bundle operation'
);
ok(
!$fhir_to_bff->{resources}{sqlite},
'FHIR to BFF does not open ontology databases'
);
is_deeply(
$fhir_to_bff->{entities}{supported},
[ 'individuals', 'biosamples', 'datasets', 'cohorts' ],
'registry exposes the implemented FHIR-derived BFF entities'
);
ok(
is_http_conversion('fhir2bff'),
'registry exposes in-memory FHIR conversion over HTTP'
);
is_deeply(
conversion_spec('fhir2pxf')->{pipeline},
[ 'fhir2bff', 'bff2pxf' ],
'registry defines FHIR to PXF as a compound conversion'
);
is_deeply(
conversion_spec('fhir2omop')->{pipeline},
[ 'fhir2bff', 'bff2omop' ],
'registry defines FHIR to OMOP as a compound conversion'
);
my $omop_to_bff = conversion_spec('omop2bff');
ok( $omop_to_bff->{streaming}, 'registry defines streaming capability' );
is_deeply(
$omop_to_bff->{entities}{supported},
[ 'individuals', 'biosamples', 'datasets', 'cohorts' ],
'registry defines supported Beacon entities'
);
ok( is_http_conversion('pxf2bff'), 'registry exposes in-memory PXF conversion over HTTP' );
ok( !is_http_conversion('redcap2bff'), 'registry keeps file-based REDCap conversion on the CLI' );
my $http_fields = http_request_fields();
ok(
scalar( grep { $_ eq 'data' } @{ $http_fields->{input} } ),
'registry defines HTTP-safe input fields'
);
ok(
!scalar( grep { $_ eq 'in_file' } @{ $http_fields->{input} } ),
'registry excludes filesystem paths from HTTP input fields'
);
$csv_to_omop->{resources}{sqlite} = 0;
ok(
conversion_spec('csv2omop')->{resources}{sqlite},
'registry returns defensive copies of conversion metadata'
);
for my $conversion ( @{ public_conversions() } ) {
ok(
Convert::Pheno->can($conversion),
"registered conversion <$conversion> exists"
);
}
done_testing;
( run in 0.570 second using v1.01-cache-2.11-cpan-5c0b1e786e0 )