islands/tests/RobustXmlFeedParserTest.st
changeset 387 e2b2ccaa4de6
child 389 009c2e13973c
equal deleted inserted replaced
386:a409905f7f2d 387:e2b2ccaa4de6
       
     1 "{ Package: 'stx:goodies/petitparser/islands/tests' }"
       
     2 
       
     3 PPCompositeParserTest subclass:#RobustXmlFeedParserTest
       
     4 	instanceVariableNames:'debugResult'
       
     5 	classVariableNames:''
       
     6 	poolDictionaries:''
       
     7 	category:'PetitIslands-Examples'
       
     8 !
       
     9 
       
    10 RobustXmlFeedParserTest comment:''
       
    11 !
       
    12 
       
    13 !RobustXmlFeedParserTest methodsFor:'as yet unclassified'!
       
    14 
       
    15 feed03
       
    16 ^'
       
    17 <shoplist>
       
    18 <name>ABC Shop</name>
       
    19 <address>Here and there 123, 123 45 Somewhere</address>
       
    20 <item>
       
    21   <name>socks</name>
       
    22   <price>123</price>
       
    23   <availability>1</availability>
       
    24 </item>
       
    25 
       
    26 
       
    27 <item>
       
    28   <name> shoes </name>
       
    29   <price>2345</price>
       
    30   <!!-- this one is malformed -->
       
    31   <availability>1 </
       
    32 </item>
       
    33 
       
    34 <item>
       
    35   <name> shoes </name>
       
    36   <price>3456</price>
       
    37   <availability>0</availability>
       
    38 </item>
       
    39 
       
    40 
       
    41 </shoplist>
       
    42 '
       
    43 !
       
    44 
       
    45 parserClass
       
    46 	^ RobustXmlFeedParser 
       
    47 !
       
    48 
       
    49 testXmlFeed03
       
    50 	self parse: self feed03.
       
    51 	
       
    52 	self assert: result size = 3.
       
    53 	self assert: (result first at:#name) = 'socks'.
       
    54 	self assert: (result first at:#price) = '123'.
       
    55 	self assert: (result first at:#availability) = '1'.
       
    56 
       
    57 	self assert: (result second at:#name) = 'shoes'.
       
    58 	self assert: (result second at:#price) = '2345'.
       
    59 	
       
    60 	self assert: (result third at:#name) = 'shoes'.
       
    61 	self assert: (result third at:#price) = '3456'.
       
    62 	self assert: (result third at:#availability) = '0'.
       
    63 ! !
       
    64