author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Fri, 03 Oct 2014 02:33:08 +0100 | |
changeset 377 | 6112a403a52d |
parent 318 | e0be8c3c3b97 |
child 385 | 44a36ed4e484 |
permissions | -rw-r--r-- |
157 | 1 |
"{ Package: 'stx:goodies/petitparser/tests' }" |
2 |
||
3 |
TestCase subclass:#PPAbstractParserTest |
|
4 |
instanceVariableNames:'' |
|
5 |
classVariableNames:'' |
|
6 |
poolDictionaries:'' |
|
7 |
category:'PetitTests-Core' |
|
8 |
! |
|
9 |
||
10 |
||
11 |
!PPAbstractParserTest class methodsFor:'accessing'! |
|
12 |
||
13 |
packageNamesUnderTest |
|
14 |
^ #('PetitParser' 'PetitTests') |
|
15 |
! ! |
|
16 |
||
17 |
!PPAbstractParserTest class methodsFor:'testing'! |
|
18 |
||
19 |
isAbstract |
|
20 |
^ self name = #PPAbstractParserTest |
|
21 |
! ! |
|
22 |
||
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
23 |
!PPAbstractParserTest methodsFor:'context'! |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
24 |
|
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
25 |
context |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
26 |
^ PPContext new |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
27 |
! ! |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
28 |
|
157 | 29 |
!PPAbstractParserTest methodsFor:'utilities'! |
30 |
||
31 |
assert: aParser fail: aCollection |
|
32 |
^ self assert: aParser fail: aCollection end: 0 |
|
33 |
! |
|
34 |
||
35 |
assert: aParser fail: aCollection end: anInteger |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
36 |
| stream result context | |
157 | 37 |
self |
38 |
assert: aParser isPetitParser |
|
39 |
description: 'Parser invalid'. |
|
40 |
stream := aCollection asPetitStream. |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
41 |
context := self context. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
42 |
|
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
43 |
|
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
44 |
result := aParser parse: stream withContext: context. |
157 | 45 |
self |
46 |
assert: result isPetitFailure |
|
47 |
description: 'Parser did not fail'. |
|
48 |
self |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
49 |
assert: context position = anInteger |
157 | 50 |
description: 'Parser failed at wrong position'. |
51 |
^ result |
|
52 |
! |
|
53 |
||
54 |
assert: aParser parse: aCollection |
|
55 |
^ self assert: aParser parse: aCollection to: nil end: aCollection size |
|
56 |
! |
|
57 |
||
58 |
assert: aParser parse: aCollection end: anInteger |
|
59 |
^ self assert: aParser parse: aCollection to: nil end: anInteger |
|
60 |
! |
|
61 |
||
62 |
assert: aParser parse: aCollection to: anObject |
|
63 |
^ self assert: aParser parse: aCollection to: anObject end: aCollection size |
|
64 |
! |
|
65 |
||
66 |
assert: aParser parse: aCollection to: aTargetObject end: anInteger |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
67 |
| stream result context | |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
68 |
|
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
69 |
self assert: aParser isPetitParser description: 'Parser invalid'. |
157 | 70 |
stream := aCollection asPetitStream. |
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
71 |
context := self context. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
72 |
|
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
73 |
result := aParser parse: stream withContext: context. |
157 | 74 |
aTargetObject isNil |
75 |
ifTrue: [ self deny: result isPetitFailure ] |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
76 |
ifFalse: [ self assert: result equals: aTargetObject ]. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
77 |
self assert: context position = anInteger description: 'Parser accepted at wrong position'. |
157 | 78 |
^ result |
79 |
! |
|
80 |
||
81 |
assert: aParser parse: aCollection toToken: aStartInteger stop: aStopInteger |
|
82 |
^ self assert: aParser parse: aCollection toToken: aStartInteger stop: aStopInteger end: aCollection size |
|
83 |
! |
|
84 |
||
85 |
assert: aParser parse: aParserObject toToken: aStartInteger stop: aStopInteger end: anEndInteger |
|
86 |
| token | |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
87 |
token := self |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
88 |
assert: aParser |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
89 |
parse: aParserObject |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
90 |
to: nil |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
91 |
end: anEndInteger. |
157 | 92 |
self assert: (token isKindOf: PPToken). |
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
93 |
self assert: token start equals: aStartInteger. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
94 |
self assert: token stop equals: aStopInteger. |
157 | 95 |
^ token |
96 |
! ! |
|
97 |
||
98 |
!PPAbstractParserTest class methodsFor:'documentation'! |
|
99 |
||
100 |
version |
|
318 | 101 |
^ '$Header: /cvs/stx/stx/goodies/petitparser/tests/PPAbstractParserTest.st,v 1.2 2014-03-04 20:31:52 cg Exp $' |
157 | 102 |
! |
103 |
||
104 |
version_CVS |
|
318 | 105 |
^ '$Header: /cvs/stx/stx/goodies/petitparser/tests/PPAbstractParserTest.st,v 1.2 2014-03-04 20:31:52 cg Exp $' |
157 | 106 |
! ! |
107 |