PPAbstractParseTest.st
changeset 375 e2b2f08d054e
parent 374 1ba87229ee7e
child 376 a2656b27cace
equal deleted inserted replaced
374:1ba87229ee7e 375:e2b2f08d054e
     1 "{ Package: 'stx:goodies/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
       
    88     ^ '$Header: /cvs/stx/stx/goodies/petitparser/PPAbstractParseTest.st,v 1.3 2012-05-04 22:09:07 vrany Exp $'
       
    89 !
       
    90 
       
    91 version_CVS
       
    92     ^ '$Header: /cvs/stx/stx/goodies/petitparser/PPAbstractParseTest.st,v 1.3 2012-05-04 22:09:07 vrany Exp $'
       
    93 !
       
    94 
       
    95 version_SVN
       
    96     ^ '§Id: PPAbstractParseTest.st 4 2010-12-18 17:02:23Z kursjan §'
       
    97 ! !