Changeset 730

Show
Ignore:
Timestamp:
06/11/07 20:23:20 (1 year ago)
Author:
schst
Message:

Added @XMLStrategy annotation and matching test case

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/main/php/net/stubbles/xml/serializer/stubXMLSerializer.php

    r727 r730  
    1414                      'net.stubbles.xml.serializer.annotations.stubXMLMethodsAnnotation', 
    1515                      'net.stubbles.xml.serializer.annotations.stubXMLMatcherAnnotation', 
     16                      'net.stubbles.xml.serializer.annotations.stubXMLStrategyAnnotation', 
    1617                      'net.stubbles.reflection.reflection'); 
    1718 
     
    153154        $xmlWriter->writeStartElement($tagName); 
    154155 
    155         $strategy = $this->opts[self::OPT_STRATEGY]; 
     156        if ($clazz->hasAnnotation('XMLStrategy')) { 
     157            $strategy = $clazz->getAnnotation('XMLStrategy')->getValue(); 
     158        } else { 
     159            $strategy = $this->opts[self::OPT_STRATEGY]; 
     160        } 
    156161 
    157162        // export props 
  • trunk/src/test/php/net/stubbles/xml/XMLTestSuite.php

    r728 r730  
    2727        $this->addTestFile($dir . '/stubLibXmlXMLStreamWriterTestCase.php'); 
    2828        $this->addTestFile($dir . '/stubXMLSerializerTestCase.php'); 
     29        $this->addTestFile($dir . '/stubXMLSerializerStrategyTestCase.php'); 
    2930 
    3031        // rss 
  • trunk/src/test/php/net/stubbles/xml/stubXMLSerializerTestCase.php

    r727 r730  
    430430        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<test bar="Hühnchen"><foo>Hähnchen</foo></test>', $writer->asXML()); 
    431431    } 
    432  
    433     /** 
    434      * Test serializing an object without annotations and different stragies 
    435      * 
    436      * @todo Implement tests for mixing annotations with strategies 
    437      */ 
    438     public function testDefaultObjectStrategies() { 
    439         $obj = new XMLSerializerDefaultObj(); 
    440  
    441         // No strategy 
    442         $writer = new stubDomXMLStreamWriter(); 
    443         $this->serializer->serialize($obj, $writer); 
    444         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<XMLSerializerDefaultObj><foo>foo</foo><getBar>bar</getBar></XMLSerializerDefaultObj>', $writer->asXML()); 
    445  
    446         // STRATEGY_ALL 
    447         $writer = new stubDomXMLStreamWriter(); 
    448         $this->serializer->serialize($obj, $writer, array(stubXMLSerializer::OPT_STRATEGY => stubXMLSerializer::STRATEGY_ALL)); 
    449         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<XMLSerializerDefaultObj><foo>foo</foo><getBar>bar</getBar></XMLSerializerDefaultObj>', $writer->asXML()); 
    450  
    451         // STRATEGY_NONE 
    452         $writer = new stubDomXMLStreamWriter(); 
    453         $this->serializer->serialize($obj, $writer, array(stubXMLSerializer::OPT_STRATEGY => stubXMLSerializer::STRATEGY_NONE)); 
    454         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<XMLSerializerDefaultObj/>', $writer->asXML()); 
    455  
    456         // STRATEGY_PROPS 
    457         $writer = new stubDomXMLStreamWriter(); 
    458         $this->serializer->serialize($obj, $writer, array(stubXMLSerializer::OPT_STRATEGY => stubXMLSerializer::STRATEGY_PROPS)); 
    459         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<XMLSerializerDefaultObj><foo>foo</foo></XMLSerializerDefaultObj>', $writer->asXML()); 
    460  
    461         // STRATEGY_METHODS 
    462         $writer = new stubDomXMLStreamWriter(); 
    463         $this->serializer->serialize($obj, $writer, array(stubXMLSerializer::OPT_STRATEGY => stubXMLSerializer::STRATEGY_METHODS)); 
    464         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<XMLSerializerDefaultObj><getBar>bar</getBar></XMLSerializerDefaultObj>', $writer->asXML()); 
    465     } 
    466432} 
    467433?>