initial checkin
authorStefan Vogel <sv@exept.de>
Tue, 13 Aug 2002 12:31:20 +0200
changeset 163 fa9f1ff26607
parent 162 8f53db556b40
child 164 fcc68d8814ad
initial checkin
RegressionTests__XMLCoderTests.st
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/RegressionTests__XMLCoderTests.st	Tue Aug 13 12:31:20 2002 +0200
@@ -0,0 +1,257 @@
+"{ Package: 'exept:regression' }"
+
+TestCase subclass:#XMLCoderTests
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'XML-Presentation'
+!
+
+!XMLCoderTests class methodsFor:'documentation'!
+
+documentation
+"
+    documentation to be added.
+
+    [author:]
+        Stefan Vogel (stefan@zwerg)
+
+    [see also:]
+
+    [instance variables:]
+
+    [class variables:]
+"
+!
+
+history
+    "Created: / 26.6.2002 / 10:32:14 / stefan"
+!
+
+history
+    "Created: / 26.6.2002 / 10:32:14 / stefan"
+! !
+
+!XMLCoderTests methodsFor:'helpers'!
+
+encodeAndDecode:anObject
+    "test, that encoding and decoding an Object results in anObject"
+
+    |encodedString decodedObject|
+
+    encodedString := XMLStandardCoder new encodingOf:anObject.
+    decodedObject := (XMLStandardDecoder on:encodedString readStream) next.
+
+    self should:anObject = decodedObject.
+
+    encodedString := XMLStandardCoder new aspect:#encodeInstanceVariables; encodingOf:anObject.
+    decodedObject := (XMLStandardDecoder on:encodedString readStream) useSend:true; next.
+
+    self should:anObject = decodedObject.
+
+    ^ decodedObject.
+! !
+
+!XMLCoderTests methodsFor:'initialize / release'!
+
+setUp
+    "common setup - invoked before testing"
+
+    super setUp
+!
+
+tearDown
+    "common cleanup - invoked after testing"
+
+    super tearDown
+! !
+
+!XMLCoderTests methodsFor:'tests'!
+
+testArray
+    "test encoding an decoding of an integer"
+
+    |arr|
+
+    arr := Array new:10.
+    arr at:1 put:true.
+    arr at:2 put:'hallo'.
+    arr at:3 put:#symbol.
+    arr at:4 put:nil.
+"/    arr at:6 put:arr.
+
+    self encodeAndDecode:arr
+
+    "
+     self run:#testArray
+    "
+!
+
+testBytes
+    "test encoding an decoding of an ByteArray"
+
+    self encodeAndDecode:#[1].
+    self encodeAndDecode:#[1 2].
+    self encodeAndDecode:#[1 2 3].
+    self encodeAndDecode:#[1 2 3 4].
+    self encodeAndDecode:#[1 2 3 4 5].
+    self encodeAndDecode:#[1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 0 12 3 4 56 7 8 9 0].
+
+    "
+     self run:#testBytes
+    "
+!
+
+testCharacter
+    "test encoding an decoding of a Character"
+
+    self encodeAndDecode:$a.
+    self encodeAndDecode:$ä.
+
+    "
+     self run:#testCharacter
+    "
+!
+
+testComplex
+    "test encoding an decoding of an OrderedCollection"
+
+    |coll r decodedObject|
+
+    coll := OrderedCollection new.
+    coll add:true.
+    coll add:'hallo'.
+    coll add:#symbol.
+    coll add:(r:= #[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]).
+    coll add:#symbol.
+    coll add:r.
+    coll add:coll copy.
+
+    decodedObject := self encodeAndDecode:coll.
+
+    self should:(decodedObject at:4) == (decodedObject at:6).
+
+    "
+     self run:#testComplex
+    "
+!
+
+testDictionary
+    "test encoding an decoding of an integer"
+
+    |dict|
+
+    dict := Dictionary new.
+    dict at:true put:1234.
+    dict at:#murks put:'hallo'.
+    dict at:5 put:#symbol.
+        
+    self encodeAndDecode:dict
+
+    "
+     self run:#testEmptyCollection
+    "
+!
+
+        self encodeAndDecode:i
+    "test encoding an decoding of an integer"
+
+    -1.0 to: 1.0 by:0.5 do:[:i|
+        self encodeAndDecode:i
+    ].
+
+    "
+     self run:#testFloat
+    "
+!
+
+        self encodeAndDecode:i
+    "test encoding an decoding of an integer"
+
+    (-3/4) to:(3/4) by:(1/4) do:[:i|
+        self encodeAndDecode:i
+    ].
+
+    "
+     self run:#testFraction
+    "
+!
+
+testIdentityDictionary
+    "test encoding an decoding of an integer"
+
+    |dict|
+
+    dict := IdentityDictionary new.
+    dict at:true put:1234.
+    dict at:#test put:'hallo'.
+    dict at:5 put:#symbol.
+        
+    self encodeAndDecode:dict
+
+    "
+     self run:#testIdentityDictionary
+    "
+!
+    -100 to: 100 do:[:i|
+        self encodeAndDecode:i
+
+    -100 to: 100 do:[:i|
+        self encodeAndDecode:i
+     self run:#test1
+
+    "
+     self run:#test1
+    "
+!
+
+testOrderedCollection
+    "test encoding an decoding of an OrderedCollection"
+
+    |set|
+
+    set := OrderedCollection new.
+    set add:true.
+    set add:'hallo'.
+    set add:#symbol.
+
+    self encodeAndDecode:set
+
+    "
+     self run:#testOrderedCollection
+    "
+!
+
+testSet
+    "test encoding an decoding of a set"
+
+    |set|
+
+    set := Set new.
+    set add:true.
+    set add:'hallo'.
+    set add:#symbol.
+
+    self encodeAndDecode:set
+
+    "
+     self run:#testSet
+    "
+!
+
+testString
+    "test encoding an decoding of a String"
+    self encodeAndDecode:Character tab asString , '& with', 
+                         Character tab asString, Character tab asString, 'tabs',
+                         Character tab asString.
+
+    "
+     self run:#testUUID
+    "
+! !
+
+    ^ '$Header$'
+
+version
+    ^ '$Header$'
+! !