CmdLineParserTest.st
author vrany
Tue, 28 Jun 2011 12:54:52 +0200
changeset 13402 2d18a79f3fcc
child 13481 7cd9d08941d5
permissions -rw-r--r--
Added command line parsing stuff
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13402
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
     1
"{ Package: 'stx:libbasic' }"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
     2
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
     3
TestCase subclass:#CmdLineParserTest
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
     4
	instanceVariableNames:'optionA optionB optionBValue'
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
     5
	classVariableNames:''
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
     6
	poolDictionaries:''
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
     7
	category:'System-Support-Command line'
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
     8
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
     9
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    10
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    11
!CmdLineParserTest methodsFor:'accessing'!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    12
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    13
cmdlineOptionA
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    14
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    15
    ^CmdLineOption new
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    16
        short: $a;
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    17
        long: 'option-a';
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    18
        description: 'option a with no arg';
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    19
        action:[optionA := true]
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    20
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    21
    "Created: / 28-01-2009 / 11:56:28 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    22
    "Modified: / 08-06-2009 / 14:34:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    23
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    24
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    25
cmdlineOptionB
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    26
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    27
    ^CmdLineOption new
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    28
        short: $b;
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    29
        long: 'option-b';
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    30
        description: 'option b with one arg';
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    31
        action:[:value | optionB := true. optionBValue := value]
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    32
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    33
    "Created: / 28-01-2009 / 12:01:43 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    34
    "Modified: / 08-06-2009 / 14:33:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    35
! !
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    36
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    37
!CmdLineParserTest methodsFor:'initialization'!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    38
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    39
setUp
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    40
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    41
    optionA := optionB := false.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    42
    optionBValue := nil
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    43
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    44
    "Created: / 28-01-2009 / 12:01:01 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    45
! !
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    46
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    47
!CmdLineParserTest methodsFor:'tests'!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    48
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    49
test_01
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    50
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    51
    CmdLineParser 
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    52
        parse: #('-a')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    53
        for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    54
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    55
    self assert: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    56
    self deny: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    57
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    58
    "Created: / 28-01-2009 / 14:19:18 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    59
    "Modified: / 29-05-2009 / 15:47:19 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    60
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    61
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    62
test_02
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    63
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    64
    CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    65
        parse: #('--option-a')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    66
        for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    67
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    68
    self assert: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    69
    self deny: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    70
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    71
    "Created: / 28-01-2009 / 14:19:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    72
    "Modified: / 29-05-2009 / 15:47:30 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    73
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    74
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    75
test_04a
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    76
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    77
    CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    78
        parse: #('--option-b= value')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    79
        for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    80
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    81
    self deny: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    82
    self assert: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    83
    self assert: optionBValue = ' value'
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    84
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    85
    "Created: / 30-01-2009 / 10:43:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    86
    "Modified: / 29-05-2009 / 15:47:34 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    87
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    88
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    89
test_04b
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    90
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    91
    self 
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    92
        should:[CmdLineParser  parse: #('--option-b') for: self]
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    93
        raise: CmdLineOptionError
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    94
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    95
    "Created: / 30-01-2009 / 10:43:37 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    96
    "Modified: / 29-05-2009 / 15:47:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    97
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    98
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    99
test_04c
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   100
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   101
    CmdLineParser parse: #('--option-b=') for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   102
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   103
    self deny: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   104
    self assert: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   105
    self assert: optionBValue = ''
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   106
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   107
    "Created: / 30-01-2009 / 10:44:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   108
    "Modified: / 29-05-2009 / 15:47:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   109
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   110
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   111
test_05
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   112
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   113
    CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   114
        parse: #('-b' 'value')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   115
        for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   116
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   117
    self deny: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   118
    self assert: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   119
    self assert: optionBValue = 'value'.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   120
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   121
    "Created: / 03-02-2009 / 17:38:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   122
    "Modified: / 29-05-2009 / 15:47:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   123
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   124
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   125
test_06
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   126
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   127
    CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   128
        parse: #('-a' '-b' 'value')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   129
        for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   130
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   131
    self assert: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   132
    self assert: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   133
    self assert: optionBValue = 'value'.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   134
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   135
    "Created: / 03-02-2009 / 17:39:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   136
    "Modified: / 29-05-2009 / 15:47:56 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   137
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   138
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   139
test_07
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   140
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   141
    CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   142
        parse: #('-ab' 'value')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   143
        for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   144
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   145
    self assert: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   146
    self assert: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   147
    self assert: optionBValue = 'value'.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   148
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   149
    "Created: / 03-02-2009 / 17:40:04 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   150
    "Modified: / 29-05-2009 / 15:48:02 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   151
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   152
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   153
test_08
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   154
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   155
    | rest |
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   156
    rest := CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   157
                parse: #('-a' '/tmp/abc.txt')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   158
                for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   159
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   160
    self assert: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   161
    self assert: optionB not.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   162
    self assert: rest asArray = #('/tmp/abc.txt')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   163
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   164
    "Created: / 08-06-2009 / 14:51:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   165
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   166
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   167
test_09
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   168
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   169
    | rest |
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   170
    rest := CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   171
                parse: #('/tmp/abc.txt')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   172
                for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   173
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   174
    self assert: optionA not.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   175
    self assert: optionB not.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   176
    self assert: rest asArray = #('/tmp/abc.txt')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   177
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   178
    "Created: / 08-06-2009 / 14:52:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   179
! !
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   180
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   181
!CmdLineParserTest class methodsFor:'documentation'!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   182
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   183
version
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   184
    ^'$Id: CmdLineParserTest.st,v 1.1 2011-06-28 10:54:52 vrany Exp $'
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   185
! !