PPAbstractParseTest.st
changeset 0 739fe9b7253e
child 4 90de244a7fa2
equal deleted inserted replaced
-1:000000000000 0:739fe9b7253e
       
     1 "{ Package: 'squeak:petitparser' }"
       
     2 
       
     3 TestCase subclass:#PPAbstractParseTest
       
     4 	instanceVariableNames:''
       
     5 	classVariableNames:''
       
     6 	poolDictionaries:''
       
     7 	category:'PetitTests-Core'
       
     8 !
       
     9 
       
    10 
       
    11 !PPAbstractParseTest class methodsFor:'accessing'!
       
    12 
       
    13 packageNamesUnderTest
       
    14 	^ #('PetitParser' 'PetitTests')
       
    15 ! !
       
    16 
       
    17 !PPAbstractParseTest class methodsFor:'testing'!
       
    18 
       
    19 isAbstract
       
    20 	^ self name = #PPAbstractParseTest
       
    21 ! !
       
    22 
       
    23 !PPAbstractParseTest 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 !
       
    43 
       
    44 assert: aParser parse: aCollection
       
    45 	self assert: aParser parse: aCollection to: nil end: aCollection size 
       
    46 !
       
    47 
       
    48 assert: aParser parse: aCollection end: anInteger
       
    49 	self assert: aParser parse: aCollection to: nil end: anInteger
       
    50 !
       
    51 
       
    52 assert: aParser parse: aCollection to: anObject
       
    53 	self assert: aParser parse: aCollection to: anObject end: aCollection size 
       
    54 !
       
    55 
       
    56 assert: aParser parse: aParseObject to: aTargetObject end: anInteger
       
    57         | stream result |
       
    58         self 
       
    59                 assert: aParser isPetitParser
       
    60                 description: 'Parser invalid'.
       
    61         stream := aParseObject asPetitStream.
       
    62         result := aParser parse: stream.
       
    63         aTargetObject isNil
       
    64                 ifTrue: [ self deny: result isPetitFailure ]
       
    65                 ifFalse: [ self assert: result = aTargetObject ].
       
    66         self 
       
    67                 assert: stream position = anInteger
       
    68                 description: 'Parser accepted at wrong position'
       
    69 
       
    70     "Modified: / 18-12-2010 / 18:01:30 / Jan Kurs <kurs.jan@post.cz>"
       
    71 !
       
    72 
       
    73 assert: aParser parse: aParserObject toToken: from stop: to
       
    74 	| token |
       
    75 	token := PPToken on: aParserObject start: from stop: to.
       
    76 	^ self assert: aParser parse: aParserObject to: token
       
    77 !
       
    78 
       
    79 assert: aParser parse: aParserObject toToken: from stop: to end: end
       
    80 	| token |
       
    81 	token := PPToken on: aParserObject start: from stop: to.
       
    82 	^ self assert: aParser parse: aParserObject to: token end: end
       
    83 ! !
       
    84 
       
    85 !PPAbstractParseTest class methodsFor:'documentation'!
       
    86 
       
    87 version_SVN
       
    88     ^ '$Id: PPAbstractParseTest.st,v 1.1 2011-08-18 18:56:17 cg Exp $'
       
    89 ! !