PPAbstractParseTest.st
changeset 0 739fe9b7253e
child 4 90de244a7fa2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PPAbstractParseTest.st	Thu Aug 18 20:56:17 2011 +0200
@@ -0,0 +1,89 @@
+"{ Package: 'squeak:petitparser' }"
+
+TestCase subclass:#PPAbstractParseTest
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'PetitTests-Core'
+!
+
+
+!PPAbstractParseTest class methodsFor:'accessing'!
+
+packageNamesUnderTest
+	^ #('PetitParser' 'PetitTests')
+! !
+
+!PPAbstractParseTest class methodsFor:'testing'!
+
+isAbstract
+	^ self name = #PPAbstractParseTest
+! !
+
+!PPAbstractParseTest methodsFor:'utilities'!
+
+assert: aParser fail: aCollection
+	self assert: aParser fail: aCollection end: 0
+!
+
+assert: aParser fail: aCollection end: anInteger
+	| stream result |
+	self 
+		assert: aParser isPetitParser
+		description: 'Parser invalid'.
+	stream := aCollection asPetitStream.
+	result := aParser parse: stream.
+	self 
+		assert: result isPetitFailure
+		description: 'Parser did not fail'.
+	self
+		assert: stream position = anInteger
+		description: 'Parser failed at wrong position'
+!
+
+assert: aParser parse: aCollection
+	self assert: aParser parse: aCollection to: nil end: aCollection size 
+!
+
+assert: aParser parse: aCollection end: anInteger
+	self assert: aParser parse: aCollection to: nil end: anInteger
+!
+
+assert: aParser parse: aCollection to: anObject
+	self assert: aParser parse: aCollection to: anObject end: aCollection size 
+!
+
+assert: aParser parse: aParseObject to: aTargetObject end: anInteger
+        | stream result |
+        self 
+                assert: aParser isPetitParser
+                description: 'Parser invalid'.
+        stream := aParseObject asPetitStream.
+        result := aParser parse: stream.
+        aTargetObject isNil
+                ifTrue: [ self deny: result isPetitFailure ]
+                ifFalse: [ self assert: result = aTargetObject ].
+        self 
+                assert: stream position = anInteger
+                description: 'Parser accepted at wrong position'
+
+    "Modified: / 18-12-2010 / 18:01:30 / Jan Kurs <kurs.jan@post.cz>"
+!
+
+assert: aParser parse: aParserObject toToken: from stop: to
+	| token |
+	token := PPToken on: aParserObject start: from stop: to.
+	^ self assert: aParser parse: aParserObject to: token
+!
+
+assert: aParser parse: aParserObject toToken: from stop: to end: end
+	| token |
+	token := PPToken on: aParserObject start: from stop: to.
+	^ self assert: aParser parse: aParserObject to: token end: end
+! !
+
+!PPAbstractParseTest class methodsFor:'documentation'!
+
+version_SVN
+    ^ '$Id: PPAbstractParseTest.st,v 1.1 2011-08-18 18:56:17 cg Exp $'
+! !