################################################################################
## Tests to just see if we can run all of our recipes

ahroot <- file.path(getwd(),"Temp")
BiocVersion <- as.character(BiocManager::version())

## No longer used:
## test_HaemCodeImportPreparer_recipe
## test_Inparanoid8ImportPreparer_recipe
## test_BioPaxImportPreparer_recipe


## FIXME:
## Both UCSC broken because location / format of eutils file has changed;
## See .organismToTaxid()
#test_UCSCChainPreparer_recipe <- function() {
#    ahms = updateResources(ahroot, BiocVersion,
#        preparerClasses = "UCSCChainPreparer",
#        insert = FALSE, metadataOnly=TRUE, justRunUnitTest=TRUE)
#    checkTrue(class(ahms[[1]])=="AnnotationHubMetadata")
#}
#
#test_UCSC2BitPreparer_recipe <- function() {
#    ahms = updateResources(ahroot, BiocVersion,
#        preparerClasses = "UCSC2BitPreparer",
#        insert = FALSE, metadataOnly=TRUE, justRunUnitTest=TRUE)
#    checkTrue(class(ahms[[1]])=="AnnotationHubMetadata")
#}

test_EncodeImportPreparer_recipe <- function() {
    ahms = updateResources(ahroot, BiocVersion,
        preparerClasses = "EncodeImportPreparer",
        insert = FALSE, metadataOnly=TRUE, justRunUnitTest=TRUE)
    checkTrue(class(ahms[[1]])=="AnnotationHubMetadata")
}

## FIX ME:
## Broken becasue of change in R and encoding
## breaks makeEpigenomeRoadmap.R line 56 in gsub
#test_EpigenomeRoadmapImportPreparer_recipe <- function() {
#    ahms = updateResources(ahroot, BiocVersion,
#        preparerClasses = "EpigenomeRoadMapPreparer",
#        insert = FALSE, metadataOnly=TRUE, justRunUnitTest=TRUE)
#    checkTrue(class(ahms[[1]])=="AnnotationHubMetadata")
#}

test_dbSNPVCFPreparer_recipe <- function() {
    ahms = updateResources(ahroot, BiocVersion,
        preparerClasses = "dbSNPVCFPreparer",
        insert = FALSE, metadataOnly=TRUE, justRunUnitTest=TRUE)
    checkTrue(class(ahms[[1]])=="AnnotationHubMetadata")
}

test_RefNetImportPreparer_recipe <- function() {
    ahms = updateResources(ahroot, BiocVersion,
        preparerClasses = "RefNetImportPreparer",
        insert = FALSE, metadataOnly=TRUE)
     checkTrue(class(ahms[[1]])=="AnnotationHubMetadata")
}

test_ChEAPreparer_recipe <- function() {
    ahms = updateResources(ahroot, BiocVersion,
        preparerClasses = "ChEAImportPreparer",
        insert = FALSE, metadataOnly=TRUE)
    checkTrue(class(ahms[[1]])=="AnnotationHubMetadata")
}

test_NCBIImportPreparer_recipe <- function() {
    ahms = updateResources(ahroot, BiocVersion,
                               preparerClasses = "NCBIImportPreparer",
                               insert = FALSE, metadataOnly=TRUE,
                               justRunUnitTest=TRUE)
    checkTrue(class(ahms[[1]])=="AnnotationHubMetadata")
}

test_Grasp2Db_recipe <- function() {
    ahms = updateResources(ahroot, BiocVersion,
                           preparerClasses = "Grasp2ImportPreparer",
                           insert = FALSE, metadataOnly=TRUE,
                           justRunUnitTest=TRUE)
    checkTrue(class(ahms[[1]])=="AnnotationHubMetadata")
}

## FIXME: add test_EnsemblFasta
## test_EnsmblFastaTwoBitToAHM <- function() {
##     ahms = updateResources(ahroot, BiocVersion,
##                            preparerClasses = "EnsemblTwoBitPreparer",
##                            insert = FALSE, metadataOnly = TRUE,
##                            justRunUnitTest = TRUE, release = 96)
##     checkTrue(class(ahms[[1]]) == "AnnotationHubMetadata")
##     # fails before ensembl release 96
##     checkException(
##         updateResources(ahroot, BiocVersion,
##                         preparerClasses = "EnsemblTwoBitPreparer",
##                         insert = FALSE, metadataOnly = TRUE,
##                         justRunUnitTest = TRUE, release = 85)
##         )
## }


## Test_EnsemblGtfToGRanges_recipe <- function() {
##     ahms = updateResources(ahroot, BiocVersion,
##                            preparerClasses = "EnsemblGtfImportPreparer",
##                            insert = FALSE, metadataOnly=TRUE,
##                            release = "96", justRunUnitTest=TRUE)
##     checkTrue(class(ahms[[1]])=="AnnotationHubMetadata")
##     # fails before ensembl release 96
##     checkException(
##         updateResources(ahroot, BiocVersion,
##                         preparerClasses = "EnsemblGtfImportPreparer",
##                         insert = FALSE, metadataOnly=TRUE,
##                         release = "85", justRunUnitTest=TRUE)
##         )
## }

#test_GencodeGFF <- function() {
#    ahms = updateResources(ahroot, BiocVersion,
#                           preparerClasses = "GencodeGffImportPreparer",
#                           insert = FALSE, metadataOnly=TRUE,
#                           justRunUnitTest=TRUE, release="31")
#    checkTrue(class(ahms[[1]])=="AnnotationHubMetadata")
#}

#test_GencodeFasta <- function() {
#    ahms = updateResources(ahroot, BiocVersion,
#                           preparerClasses = "GencodeFastaImportPreparer",
#                           insert = FALSE, metadataOnly=TRUE,
#                           justRunUnitTest=TRUE, species="Human",
#                           release="23")
#    checkTrue(class(ahms[[1]])=="AnnotationHubMetadata")
#}
