tests/PPAbstractParserTest.st
changeset 157 46f441ef84a7
child 318 e0be8c3c3b97
equal deleted inserted replaced
156:e7c087bc7b14 157:46f441ef84a7
       
     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 
       
    23 !PPAbstractParserTest methodsFor:'utilities'!
       
    24 
       
    25 assert: aParser fail: aCollection
       
    26 	^ self assert: aParser fail: aCollection end: 0
       
    27 !
       
    28 
       
    29 assert: aParser fail: aCollection end: anInteger
       
    30 	| stream result |
       
    31 	self 
       
    32 		assert: aParser isPetitParser
       
    33 		description: 'Parser invalid'.
       
    34 	stream := aCollection asPetitStream.
       
    35 	result := aParser parse: stream.
       
    36 	self 
       
    37 		assert: result isPetitFailure
       
    38 		description: 'Parser did not fail'.
       
    39 	self
       
    40 		assert: stream position = anInteger
       
    41 		description: 'Parser failed at wrong position'.
       
    42 	^ result
       
    43 !
       
    44 
       
    45 assert: aParser parse: aCollection
       
    46 	^ self assert: aParser parse: aCollection to: nil end: aCollection size 
       
    47 !
       
    48 
       
    49 assert: aParser parse: aCollection end: anInteger
       
    50 	^ self assert: aParser parse: aCollection to: nil end: anInteger
       
    51 !
       
    52 
       
    53 assert: aParser parse: aCollection to: anObject
       
    54 	^ self assert: aParser parse: aCollection to: anObject end: aCollection size 
       
    55 !
       
    56 
       
    57 assert: aParser parse: aCollection to: aTargetObject end: anInteger
       
    58 	| stream result |
       
    59 	self 
       
    60 		assert: aParser isPetitParser
       
    61 		description: 'Parser invalid'.
       
    62 	stream := aCollection asPetitStream.
       
    63 	result := aParser parse: stream.
       
    64 	aTargetObject isNil
       
    65 		ifTrue: [ self deny: result isPetitFailure ]
       
    66 		ifFalse: [ self assert: result = aTargetObject ].
       
    67 	self 
       
    68 		assert: stream position = anInteger
       
    69 		description: 'Parser accepted at wrong position'.
       
    70 	^ result
       
    71 !
       
    72 
       
    73 assert: aParser parse: aCollection toToken: aStartInteger stop: aStopInteger
       
    74 	^ self assert: aParser parse: aCollection toToken: aStartInteger stop: aStopInteger end: aCollection size
       
    75 !
       
    76 
       
    77 assert: aParser parse: aParserObject toToken: aStartInteger stop: aStopInteger end: anEndInteger
       
    78 	| token |
       
    79 	token := self assert: aParser parse: aParserObject to: nil end: anEndInteger.
       
    80 	self assert: (token isKindOf: PPToken).
       
    81 	self assert: (token start = aStartInteger).
       
    82 	self assert: (token stop = aStopInteger).
       
    83 	^ token
       
    84 ! !
       
    85 
       
    86 !PPAbstractParserTest class methodsFor:'documentation'!
       
    87 
       
    88 version
       
    89     ^ '$Header: /cvs/stx/stx/goodies/petitparser/tests/PPAbstractParserTest.st,v 1.1 2014-03-04 14:02:47 cg Exp $'
       
    90 !
       
    91 
       
    92 version_CVS
       
    93     ^ '$Header: /cvs/stx/stx/goodies/petitparser/tests/PPAbstractParserTest.st,v 1.1 2014-03-04 14:02:47 cg Exp $'
       
    94 ! !
       
    95