@@ -2,111 +2,109 @@ import Spectre
22@testable import Commander
33
44
5- public func testArgumentDescription( ) {
6- describe ( " ArgumentDescription " ) {
7- $0. describe ( " Argument " ) {
8- $0. describe ( " parsing " ) {
9- $0. it ( " can parse basic argument " ) {
10- let parser = try ArgumentParser ( string: " Kyle " )
11- let value = try Argument < String > ( " name " ) . parse ( parser)
12- try expect ( value) == " Kyle "
13- }
5+ let testArgumentDescription : ( ( ContextType ) -> Void ) = {
6+ $0. describe ( " Argument " ) {
7+ $0. describe ( " parsing " ) {
8+ $0. it ( " can parse basic argument " ) {
9+ let parser = try ArgumentParser ( string: " Kyle " )
10+ let value = try Argument < String > ( " name " ) . parse ( parser)
11+ try expect ( value) == " Kyle "
12+ }
1413
15- $0. it ( " can parse varadic argument " ) {
16- let parser = ArgumentParser ( arguments: [ " Kyle " , " K2 " ] )
17- let value = try Argument < [ String ] > ( " name " ) . parse ( parser)
18- try expect ( value) == [ " Kyle " , " K2 " ]
19- }
14+ $0. it ( " can parse varadic argument " ) {
15+ let parser = ArgumentParser ( arguments: [ " Kyle " , " K2 " ] )
16+ let value = try Argument < [ String ] > ( " name " ) . parse ( parser)
17+ try expect ( value) == [ " Kyle " , " K2 " ]
18+ }
2019
21- $0. it ( " can parse optional argument " ) {
22- let parser = ArgumentParser ( arguments: [ " Kyle " ] )
23- let value = try Argument < String ? > ( " name " ) . parse ( parser)
24- try expect ( value) == " Kyle "
25- }
20+ $0. it ( " can parse optional argument " ) {
21+ let parser = ArgumentParser ( arguments: [ " Kyle " ] )
22+ let value = try Argument < String ? > ( " name " ) . parse ( parser)
23+ try expect ( value) == " Kyle "
24+ }
2625
27- $0. it ( " can parse missing optional argument " ) {
28- let parser = ArgumentParser ( arguments: [ ] )
29- let value = try Argument < String ? > ( " name " ) . parse ( parser)
30- try expect ( value) . to. beNil ( )
31- }
26+ $0. it ( " can parse missing optional argument " ) {
27+ let parser = ArgumentParser ( arguments: [ ] )
28+ let value = try Argument < String ? > ( " name " ) . parse ( parser)
29+ try expect ( value) . to. beNil ( )
3230 }
3331 }
32+ }
3433
35- $0. describe ( " Option " ) {
36- $0. describe ( " parsing " ) {
37- $0. it ( " can parse option " ) {
38- let parser = ArgumentParser ( arguments: [ " --port " , " 6697 " ] )
39- let value = try Option ( " port " , default: 6667 ) . parse ( parser)
40- try expect ( value) == 6697
41- }
34+ $0. describe ( " Option " ) {
35+ $0. describe ( " parsing " ) {
36+ $0. it ( " can parse option " ) {
37+ let parser = ArgumentParser ( arguments: [ " --port " , " 6697 " ] )
38+ let value = try Option ( " port " , default: 6667 ) . parse ( parser)
39+ try expect ( value) == 6697
40+ }
4241
43- $0. it ( " can parse missing option as default " ) {
44- let parser = ArgumentParser ( arguments: [ ] )
45- let value = try Option ( " port " , default: 6667 ) . parse ( parser)
46- try expect ( value) == 6667
47- }
42+ $0. it ( " can parse missing option as default " ) {
43+ let parser = ArgumentParser ( arguments: [ ] )
44+ let value = try Option ( " port " , default: 6667 ) . parse ( parser)
45+ try expect ( value) == 6667
46+ }
4847
49- $0. it ( " can parse optional option " ) {
50- let parser = ArgumentParser ( arguments: [ ] )
51- let value = try Option < Int ? > ( " port " , default: nil ) . parse ( parser)
52- try expect ( value) . to. beNil ( )
53- }
48+ $0. it ( " can parse optional option " ) {
49+ let parser = ArgumentParser ( arguments: [ ] )
50+ let value = try Option < Int ? > ( " port " , default: nil ) . parse ( parser)
51+ try expect ( value) . to. beNil ( )
5452 }
5553 }
54+ }
5655
57- $0. describe ( " help " ) {
58- $0. it ( " shows arguments " ) {
59- let help = Help ( [
60- BoxedArgumentDescriptor ( value: Argument < String > ( " arg1 " ) ) ,
61- BoxedArgumentDescriptor ( value: Argument < String > ( " arg2 " , description: " an example " ) ) ,
62- ] )
56+ $0. describe ( " help " ) {
57+ $0. it ( " shows arguments " ) {
58+ let help = Help ( [
59+ BoxedArgumentDescriptor ( value: Argument < String > ( " arg1 " ) ) ,
60+ BoxedArgumentDescriptor ( value: Argument < String > ( " arg2 " , description: " an example " ) ) ,
61+ ] )
6362
64- try expect ( help. description) == " Arguments: \n \n arg1 \n arg2 - an example \n "
65- try expect ( help. ansiDescription) == " Arguments: \n \n \( ANSI . blue) arg1 \( ANSI . reset) \n \( ANSI . blue) arg2 \( ANSI . reset) - an example \n "
66- }
63+ try expect ( help. description) == " Arguments: \n \n arg1 \n arg2 - an example \n "
64+ try expect ( help. ansiDescription) == " Arguments: \n \n \( ANSI . blue) arg1 \( ANSI . reset) \n \( ANSI . blue) arg2 \( ANSI . reset) - an example \n "
65+ }
6766
68- $0. it ( " shows options " ) {
69- let help = Help ( [
70- BoxedArgumentDescriptor ( value: Option ( " opt1 " , default: " example " ) ) ,
71- BoxedArgumentDescriptor ( value: Flag ( " flag1 " , description: " an example " ) ) ,
72- BoxedArgumentDescriptor ( value: Flag ( " flag2 " , default: true ) ) ,
73- ] )
67+ $0. it ( " shows options " ) {
68+ let help = Help ( [
69+ BoxedArgumentDescriptor ( value: Option ( " opt1 " , default: " example " ) ) ,
70+ BoxedArgumentDescriptor ( value: Flag ( " flag1 " , description: " an example " ) ) ,
71+ BoxedArgumentDescriptor ( value: Flag ( " flag2 " , default: true ) ) ,
72+ ] )
7473
75- try expect ( help. description) == " Options: \n --opt1 [default: example] \n --flag1 [default: false] - an example \n --flag2 [default: true] "
76- try expect ( help. ansiDescription) == " Options: \n \( ANSI . blue) --opt1 \( ANSI . reset) [default: example] \n \( ANSI . blue) --flag1 \( ANSI . reset) [default: false] - an example \n \( ANSI . blue) --flag2 \( ANSI . reset) [default: true] "
77- }
74+ try expect ( help. description) == " Options: \n --opt1 [default: example] \n --flag1 [default: false] - an example \n --flag2 [default: true] "
75+ try expect ( help. ansiDescription) == " Options: \n \( ANSI . blue) --opt1 \( ANSI . reset) [default: example] \n \( ANSI . blue) --flag1 \( ANSI . reset) [default: false] - an example \n \( ANSI . blue) --flag2 \( ANSI . reset) [default: true] "
76+ }
7877
79- $0. it ( " shows default for custom types conforming to CustomStringConvertible " ) {
80- enum Direction : String , CustomStringConvertible , ArgumentConvertible {
81- case north
82- case south
83-
84- public init ( parser: ArgumentParser ) throws {
85- if let value = parser. shift ( ) {
86- switch value {
87- case " north " :
88- self = . north
89- case " south " :
90- self = . south
91- default :
92- throw ArgumentError . invalidType ( value: value, type: " direction " , argument: nil )
93- }
94- } else {
95- throw ArgumentError . missingValue ( argument: nil )
78+ $0. it ( " shows default for custom types conforming to CustomStringConvertible " ) {
79+ enum Direction : String , CustomStringConvertible , ArgumentConvertible {
80+ case north
81+ case south
82+
83+ public init ( parser: ArgumentParser ) throws {
84+ if let value = parser. shift ( ) {
85+ switch value {
86+ case " north " :
87+ self = . north
88+ case " south " :
89+ self = . south
90+ default :
91+ throw ArgumentError . invalidType ( value: value, type: " direction " , argument: nil )
9692 }
93+ } else {
94+ throw ArgumentError . missingValue ( argument: nil )
9795 }
96+ }
9897
99- var description : String {
100- return rawValue
101- }
98+ var description : String {
99+ return rawValue
102100 }
101+ }
103102
104- let help = Help ( [
105- BoxedArgumentDescriptor ( value: Option ( " direction " , default: Direction . south) ) ,
106- ] )
103+ let help = Help ( [
104+ BoxedArgumentDescriptor ( value: Option ( " direction " , default: Direction . south) ) ,
105+ ] )
107106
108- try expect ( help. description) == " Options: \n --direction [default: south] "
109- }
107+ try expect ( help. description) == " Options: \n --direction [default: south] "
110108 }
111109 }
112110}
0 commit comments