Changeset 1492
- Timestamp:
- 04/16/05 23:27:48 (4 years ago)
- Files:
-
- trunk/lib/soap/mapping/mapping.rb (modified) (1 diff)
- trunk/lib/soap/mapping/rubytypeFactory.rb (modified) (1 diff)
- trunk/test/wsdl/document/document.wsdl (modified) (2 diffs)
- trunk/test/wsdl/document/test_rpc.rb (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/soap/mapping/mapping.rb
r1469 r1492 274 274 as_array << class_name 275 275 end 276 elements[name ||varname] = class_name276 elements[name ? name.name : varname] = class_name 277 277 end 278 278 [elements, as_array] trunk/lib/soap/mapping/rubytypeFactory.rb
r1490 r1492 386 386 obj.__soap_set_property(name, Mapping._soap2obj(value, map)) 387 387 end 388 unless node.extraattr.empty? 389 obj.instance_variable_set('@__soap_attribute', node.extraattr) 390 end 388 391 return true, obj 389 392 else trunk/test/wsdl/document/document.wsdl
r1470 r1492 21 21 <xsd:sequence> 22 22 <xsd:element minOccurs="0" maxOccurs="1" name="struct1" type="tns:echo_struct" /> 23 <xsd:element minOccurs="0" maxOccurs="1" name="struct 2" type="tns:echo_struct" />23 <xsd:element minOccurs="0" maxOccurs="1" name="struct-2" type="tns:echo_struct" /> 24 24 </xsd:sequence> 25 25 <xsd:attribute name="attr_string" type="xsd:string" /> 26 <xsd:attribute name="attr _int" type="xsd:int" />26 <xsd:attribute name="attr-int" type="xsd:int" /> 27 27 </xsd:complexType> 28 28 </xsd:element> … … 31 31 <xsd:sequence> 32 32 <xsd:element minOccurs="0" maxOccurs="1" name="struct1" type="tns:echo_struct" /> 33 <xsd:element minOccurs="0" maxOccurs="1" name="struct 2" type="tns:echo_struct" />33 <xsd:element minOccurs="0" maxOccurs="1" name="struct-2" type="tns:echo_struct" /> 34 34 </xsd:sequence> 35 35 <xsd:attribute name="attr_string" type="xsd:string" /> 36 <xsd:attribute name="attr _int" type="xsd:int" />36 <xsd:attribute name="attr-int" type="xsd:int" /> 37 37 </xsd:complexType> 38 38 </xsd:element> trunk/test/wsdl/document/test_rpc.rb
r1476 r1492 27 27 # swap args 28 28 tmp = arg.struct1 29 arg.struct1 = arg.struct 230 arg.struct 2 = tmp29 arg.struct1 = arg.struct_2 30 arg.struct_2 = tmp 31 31 arg 32 32 else 33 33 # swap args 34 34 tmp = arg["struct1"] 35 arg["struct1"] = arg["struct 2"]36 arg["struct 2"] = tmp35 arg["struct1"] = arg["struct-2"] 36 arg["struct-2"] = tmp 37 37 arg 38 38 end … … 109 109 assert_equal("mystring2", ret.struct1.m_string) 110 110 assert_equal(now2.strftime(timeformat), ret.struct1.m_datetime.strftime(timeformat)) 111 assert_equal("mystring1", ret.struct 2.m_string)112 assert_equal(now1.strftime(timeformat), ret.struct 2.m_datetime.strftime(timeformat))111 assert_equal("mystring1", ret.struct_2.m_string) 112 assert_equal(now1.strftime(timeformat), ret.struct_2.m_datetime.strftime(timeformat)) 113 113 assert_equal("attr_string", ret.attr_attr_string) 114 114 assert_equal(5, ret.attr_attr_int) … … 125 125 echo = SOAPElement.new('foo') 126 126 echo.extraattr['attr_string'] = 'attr_string' 127 echo.extraattr['attr _int'] = 5127 echo.extraattr['attr-int'] = 5 128 128 echo.add(struct1 = SOAPElement.new('struct1')) 129 129 struct1.add(SOAPElement.new('m_string', 'mystring1')) 130 130 struct1.add(SOAPElement.new('m_datetime', '2005-03-17T19:47:31+01:00')) 131 131 struct1.extraattr['m_attr'] = 'myattr1' 132 echo.add(struct2 = SOAPElement.new('struct 2'))132 echo.add(struct2 = SOAPElement.new('struct-2')) 133 133 struct2.add(SOAPElement.new('m_string', 'mystring2')) 134 134 struct2.add(SOAPElement.new('m_datetime', '2005-03-17T19:47:32+02:00')) … … 138 138 assert_equal('mystring2', ret.struct1.m_string) 139 139 assert_equal('2005-03-17T19:47:32', ret.struct1.m_datetime.strftime(timeformat)) 140 assert_equal("mystring1", ret.struct2.m_string) 141 assert_equal('2005-03-17T19:47:31', ret.struct2.m_datetime.strftime(timeformat)) 140 #p ret.struct1.class 141 #p ret.struct_2.class 142 assert_equal("mystring1", ret.struct_2.m_string) 143 assert_equal('2005-03-17T19:47:31', ret.struct_2.m_datetime.strftime(timeformat)) 142 144 assert_equal('attr_string', ret.attr_attr_string) 143 145 assert_equal(5, ret.attr_attr_int) 144 146 145 147 echo = {'struct1' => {'m_string' => 'mystring1', 'm_datetime' => '2005-03-17T19:47:31+01:00'}, 146 'struct 2' => {'m_string' => 'mystring2', 'm_datetime' => '2005-03-17T19:47:32+02:00'}}148 'struct-2' => {'m_string' => 'mystring2', 'm_datetime' => '2005-03-17T19:47:32+02:00'}} 147 149 ret = @client.echo(echo) 148 150 timeformat = "%Y-%m-%dT%H:%M:%S" 149 151 assert_equal('mystring2', ret.struct1.m_string) 150 152 assert_equal('2005-03-17T19:47:32', ret.struct1.m_datetime.strftime(timeformat)) 151 assert_equal("mystring1", ret.struct 2.m_string)152 assert_equal('2005-03-17T19:47:31', ret.struct 2.m_datetime.strftime(timeformat))153 assert_equal("mystring1", ret.struct_2.m_string) 154 assert_equal('2005-03-17T19:47:31', ret.struct_2.m_datetime.strftime(timeformat)) 153 155 end 154 156 end