Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

Changeset 1492

Show
Ignore:
Timestamp:
04/16/05 23:27:48 (4 years ago)
Author:
nahi
Message:

minor bug when element/attribute name contains '-'. closes #47.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/soap/mapping/mapping.rb

    r1469 r1492  
    274274        as_array << class_name 
    275275      end 
    276       elements[name || varname] = class_name 
     276      elements[name ? name.name : varname] = class_name 
    277277    end 
    278278    [elements, as_array] 
  • trunk/lib/soap/mapping/rubytypeFactory.rb

    r1490 r1492  
    386386        obj.__soap_set_property(name, Mapping._soap2obj(value, map)) 
    387387      end 
     388      unless node.extraattr.empty? 
     389        obj.instance_variable_set('@__soap_attribute', node.extraattr) 
     390      end 
    388391      return true, obj 
    389392    else 
  • trunk/test/wsdl/document/document.wsdl

    r1470 r1492  
    2121          <xsd:sequence> 
    2222            <xsd:element minOccurs="0" maxOccurs="1" name="struct1" type="tns:echo_struct" /> 
    23             <xsd:element minOccurs="0" maxOccurs="1" name="struct2" type="tns:echo_struct" /> 
     23            <xsd:element minOccurs="0" maxOccurs="1" name="struct-2" type="tns:echo_struct" /> 
    2424          </xsd:sequence> 
    2525          <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" /> 
    2727        </xsd:complexType> 
    2828      </xsd:element> 
     
    3131          <xsd:sequence> 
    3232            <xsd:element minOccurs="0" maxOccurs="1" name="struct1" type="tns:echo_struct" /> 
    33             <xsd:element minOccurs="0" maxOccurs="1" name="struct2" type="tns:echo_struct" /> 
     33            <xsd:element minOccurs="0" maxOccurs="1" name="struct-2" type="tns:echo_struct" /> 
    3434          </xsd:sequence> 
    3535          <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" /> 
    3737        </xsd:complexType> 
    3838      </xsd:element> 
  • trunk/test/wsdl/document/test_rpc.rb

    r1476 r1492  
    2727        # swap args 
    2828        tmp = arg.struct1 
    29         arg.struct1 = arg.struct
    30         arg.struct2 = tmp 
     29        arg.struct1 = arg.struct_
     30        arg.struct_2 = tmp 
    3131        arg 
    3232      else 
    3333        # swap args 
    3434        tmp = arg["struct1"] 
    35         arg["struct1"] = arg["struct2"] 
    36         arg["struct2"] = tmp 
     35        arg["struct1"] = arg["struct-2"] 
     36        arg["struct-2"] = tmp 
    3737        arg 
    3838      end 
     
    109109    assert_equal("mystring2", ret.struct1.m_string) 
    110110    assert_equal(now2.strftime(timeformat), ret.struct1.m_datetime.strftime(timeformat)) 
    111     assert_equal("mystring1", ret.struct2.m_string) 
    112     assert_equal(now1.strftime(timeformat), ret.struct2.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)) 
    113113    assert_equal("attr_string", ret.attr_attr_string) 
    114114    assert_equal(5, ret.attr_attr_int) 
     
    125125    echo = SOAPElement.new('foo') 
    126126    echo.extraattr['attr_string'] = 'attr_string' 
    127     echo.extraattr['attr_int'] = 5 
     127    echo.extraattr['attr-int'] = 5 
    128128    echo.add(struct1 = SOAPElement.new('struct1')) 
    129129    struct1.add(SOAPElement.new('m_string', 'mystring1')) 
    130130    struct1.add(SOAPElement.new('m_datetime', '2005-03-17T19:47:31+01:00')) 
    131131    struct1.extraattr['m_attr'] = 'myattr1' 
    132     echo.add(struct2 = SOAPElement.new('struct2')) 
     132    echo.add(struct2 = SOAPElement.new('struct-2')) 
    133133    struct2.add(SOAPElement.new('m_string', 'mystring2')) 
    134134    struct2.add(SOAPElement.new('m_datetime', '2005-03-17T19:47:32+02:00')) 
     
    138138    assert_equal('mystring2', ret.struct1.m_string) 
    139139    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)) 
    142144    assert_equal('attr_string', ret.attr_attr_string) 
    143145    assert_equal(5, ret.attr_attr_int) 
    144146 
    145147    echo = {'struct1' => {'m_string' => 'mystring1', 'm_datetime' => '2005-03-17T19:47:31+01:00'},  
    146           'struct2' => {'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'}} 
    147149    ret = @client.echo(echo) 
    148150    timeformat = "%Y-%m-%dT%H:%M:%S" 
    149151    assert_equal('mystring2', ret.struct1.m_string) 
    150152    assert_equal('2005-03-17T19:47:32', ret.struct1.m_datetime.strftime(timeformat)) 
    151     assert_equal("mystring1", ret.struct2.m_string) 
    152     assert_equal('2005-03-17T19:47:31', ret.struct2.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)) 
    153155  end 
    154156end