@@ 87-110 (lines=24) @@ | ||
84 | /** |
|
85 | * @test |
|
86 | */ |
|
87 | public function shouldTokenizeObject() |
|
88 | { |
|
89 | //given |
|
90 | $param = 'object $name {string $firstName int $age}'; |
|
91 | $tokenizer = new Tokenizer(); |
|
92 | ||
93 | //when |
|
94 | $tokens = $tokenizer->lex($param); |
|
95 | ||
96 | //then |
|
97 | Assert::thatArray($tokens) |
|
98 | ->extracting('getName()', 'getValue()') |
|
99 | ->containsExactly( |
|
100 | [Token::TYPE, 'object'], |
|
101 | [Token::NAME, '$name'], |
|
102 | [Token::OPEN_OBJECT, '{'], |
|
103 | [Token::TYPE, 'string'], |
|
104 | [Token::NAME, '$firstName'], |
|
105 | [Token::TYPE, 'int'], |
|
106 | [Token::NAME, '$age'], |
|
107 | [Token::CLOSE_OBJECT, '}'], |
|
108 | [Token::EOF, 'eof'] |
|
109 | ); |
|
110 | } |
|
111 | ||
112 | /** |
|
113 | * @test |
|
@@ 115-139 (lines=25) @@ | ||
112 | /** |
|
113 | * @test |
|
114 | */ |
|
115 | public function shouldTokenizeObjectWithArray() |
|
116 | { |
|
117 | //given |
|
118 | $param = 'object[] $name {string $firstName int $age}'; |
|
119 | $tokenizer = new Tokenizer(); |
|
120 | ||
121 | //when |
|
122 | $tokens = $tokenizer->lex($param); |
|
123 | ||
124 | //then |
|
125 | Assert::thatArray($tokens) |
|
126 | ->extracting('getName()', 'getValue()') |
|
127 | ->containsExactly( |
|
128 | [Token::TYPE, 'object'], |
|
129 | [Token::ARRAYS, '[]'], |
|
130 | [Token::NAME, '$name'], |
|
131 | [Token::OPEN_OBJECT, '{'], |
|
132 | [Token::TYPE, 'string'], |
|
133 | [Token::NAME, '$firstName'], |
|
134 | [Token::TYPE, 'int'], |
|
135 | [Token::NAME, '$age'], |
|
136 | [Token::CLOSE_OBJECT, '}'], |
|
137 | [Token::EOF, 'eof'] |
|
138 | ); |
|
139 | } |
|
140 | ||
141 | /** |
|
142 | * @test |