From d725c6cf1c17d5593a904e1d4225a1df4225eef8 Mon Sep 17 00:00:00 2001 From: hanna Date: Thu, 7 May 2009 14:01:54 +0000 Subject: [PATCH] Added unit tests for parsing failures that I encountered during integration testing. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@618 348d0f76-0448-11de-a6fe-93d51630548a --- .../utils/cmdLine/ParsingEngineTest.java | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/java/test/org/broadinstitute/sting/utils/cmdLine/ParsingEngineTest.java b/java/test/org/broadinstitute/sting/utils/cmdLine/ParsingEngineTest.java index ef9c87f07..e2d364f4b 100755 --- a/java/test/org/broadinstitute/sting/utils/cmdLine/ParsingEngineTest.java +++ b/java/test/org/broadinstitute/sting/utils/cmdLine/ParsingEngineTest.java @@ -66,6 +66,39 @@ public class ParsingEngineTest extends BaseTest { Assert.assertEquals("Argument is not correctly initialized", "na12878.bam", argProvider.inputFile ); } + @Test + public void absolutePathnameInCompositeArgumentTest() { + final String[] commandLine = new String[] {"-I/broad/1KG/legacy_data/trio/na12878.bam"}; + + parsingEngine.addArgumentSource( InputFileArgProvider.class ); + parsingEngine.parse( commandLine ); + parsingEngine.validate(); + + InputFileArgProvider argProvider = new InputFileArgProvider(); + parsingEngine.loadArgumentsIntoObject( argProvider ); + + Assert.assertEquals("Argument is not correctly initialized", "/broad/1KG/legacy_data/trio/na12878.bam", argProvider.inputFile ); + } + + @Test + public void chrRangeInCompositeArgumentTest() { + final String[] commandLine = new String[] {"-Lchr1:10000-11000"}; + + parsingEngine.addArgumentSource( ChrRangeArgProvider.class ); + parsingEngine.parse( commandLine ); + parsingEngine.validate(); + + ChrRangeArgProvider argProvider = new ChrRangeArgProvider(); + parsingEngine.loadArgumentsIntoObject( argProvider ); + + Assert.assertEquals("Argument is not correctly initialized", "chr1:10000-11000", argProvider.REGION_STR ); + } + + private class ChrRangeArgProvider { + @Argument(fullName="genome_region", shortName="L", doc="Genome region to operation on: from chr:start-end") + public String REGION_STR = null; + } + @Test public void multiCharShortNameArgumentTest() { final String[] commandLine = new String[] {"-out","out.txt"}; @@ -218,6 +251,36 @@ public class ParsingEngineTest extends BaseTest { public Integer value; } + @Test + public void defaultValueTest() { + // First try getting the default. + String[] commandLine = new String[0]; + + parsingEngine.addArgumentSource( DefaultValueArgProvider.class ); + parsingEngine.parse( commandLine ); + parsingEngine.validate(); + + DefaultValueArgProvider argProvider = new DefaultValueArgProvider(); + parsingEngine.loadArgumentsIntoObject( argProvider ); + + Assert.assertEquals("Default value is not correctly initialized", 42, argProvider.value.intValue() ); + + // Then try to override it. + commandLine = new String[] { "--value", "27" }; + + parsingEngine.parse( commandLine ); + parsingEngine.validate(); + + parsingEngine.loadArgumentsIntoObject( argProvider ); + + Assert.assertEquals("Default value is not correctly initialized", 27, argProvider.value.intValue() ); + } + + private class DefaultValueArgProvider { + @Argument(doc="value",required=false) + public Integer value = 42; + } + @Test public void disableValidationOfRequiredArgTest() { final String[] commandLine = new String[0];