equal
deleted
inserted
replaced
|
1 "{ Package: 'stx:goodies/petitparser/tests' }" |
|
2 |
|
3 "{ NameSpace: Smalltalk }" |
|
4 |
|
5 PPAbstractParserTest subclass:#PPConditionalParserTests |
|
6 instanceVariableNames:'context' |
|
7 classVariableNames:'' |
|
8 poolDictionaries:'' |
|
9 category:'PetitTests-Tests' |
|
10 ! |
|
11 |
|
12 !PPConditionalParserTests methodsFor:'as yet unclassified'! |
|
13 |
|
14 context |
|
15 ^ context |
|
16 ! |
|
17 |
|
18 setUp |
|
19 super setUp. |
|
20 context := PPContext new |
|
21 ! |
|
22 |
|
23 testConditionCtxAccess |
|
24 | parser | |
|
25 |
|
26 parser := ('a' asParser if: [ :ctx | (ctx propertyAt: #foo) = #bar ]). |
|
27 |
|
28 context propertyAt: #foo put: #bar. |
|
29 self assert: parser parse: 'a' . |
|
30 |
|
31 |
|
32 context propertyAt: #foo put: #zorg. |
|
33 self assert: parser fail: 'a' . |
|
34 ! |
|
35 |
|
36 testConditionFalse |
|
37 | parser | |
|
38 parser := ('a' asParser if: [ :ctx | false ]). |
|
39 |
|
40 self assert: parser fail: 'a'. |
|
41 self assert: parser fail: 'b'. |
|
42 ! |
|
43 |
|
44 testConditionTrue |
|
45 | parser | |
|
46 parser := ('a' asParser if: [ :ctx | true ]). |
|
47 |
|
48 self assert: parser parse: 'a'. |
|
49 self assert: parser fail: 'b'. |
|
50 ! ! |
|
51 |