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

Changeset 1548

Show
Ignore:
Timestamp:
05/12/05 10:15:20 (4 years ago)
Author:
nahi
Message:

add tests for #105 and fixed another bug Date.year < 0 handling. closes #105.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/xsd/datatypes.rb

    r1547 r1548  
    502502      to_date 
    503503    elsif klass == DateTime 
    504       data 
     504      to_datetime 
    505505    else 
    506506      nil 
     
    528528  end 
    529529 
     530  def to_datetime 
     531    data 
     532  end 
     533 
    530534  def tz2of(str) 
    531535    /^(?:Z|(?:([+\-])(\d\d):(\d\d))?)$/ =~ str 
     
    557561  def screen_data(t) 
    558562    # convert t to a DateTime as an internal representation. 
    559     # in XML Schema Datatypes, year == 0 is not allowed so be careful with 
    560     # negative year representation.  XSDDateTime.year(-1) == DateTime.year(0) 
    561     if t.is_a?(DateTime) and t.year > 0 
     563    if t.is_a?(DateTime) 
    562564      t 
     565    elsif t.is_a?(Date) 
     566      if t.respond_to?(:to_datetime)    # from 1.9 
     567        t.to_datetime 
     568      else 
     569        t = screen_data_str(t) 
     570        t <<= 12 if t.year < 0 
     571        t 
     572      end 
    563573    elsif t.is_a?(Time) 
    564574      sec, min, hour, mday, month, year = t.to_a[0..5] 
  • trunk/test/soap/test_basetype.rb

    r1545 r1548  
    383383    targets.each do |data, expected| 
    384384      assert_equal(expected, SOAP::SOAPDateTime.new(data).to_s) 
    385       assert_equal(expected, SOAP::SOAPDateTime.new(DateTime.parse(data)).to_s) 
     385      d = DateTime.parse(data) 
     386      d >>= 12 if d.year < 0    # XSDDateTime.year(-1) == DateTime.year(0) 
     387      assert_equal(expected, SOAP::SOAPDateTime.new(d).to_s) 
    386388    end 
    387389 
     
    483485    targets.each do |data, expected| 
    484486      assert_equal(expected, SOAP::SOAPDate.new(data).to_s) 
    485       assert_equal(expected, SOAP::SOAPDate.new(Date.parse(data)).to_s) 
     487      d = Date.parse(data) 
     488      d >>= 12 if d.year < 0    # XSDDate.year(-1) == Date.year(0) 
     489      assert_equal(expected, SOAP::SOAPDate.new(d).to_s) 
    486490    end 
    487491  end 
  • trunk/test/xsd/test_xsd.rb

    r1545 r1548  
    415415    targets.each do |data, expected| 
    416416      assert_equal(expected, XSD::XSDDateTime.new(data).to_s) 
    417       assert_equal(expected, XSD::XSDDateTime.new(DateTime.parse(data)).to_s) 
     417      d = DateTime.parse(data) 
     418      d >>= 12 if d.year < 0    # XSDDateTime.year(-1) == DateTime.year(0) 
     419      assert_equal(expected, XSD::XSDDateTime.new(d).to_s) 
    418420    end 
    419421 
     
    515517    targets.each do |data, expected| 
    516518      assert_equal(expected, XSD::XSDDate.new(data).to_s) 
    517       assert_equal(expected, XSD::XSDDate.new(Date.parse(data)).to_s) 
     519      d = Date.parse(data) 
     520      d >>= 12 if d.year < 0    # XSDDate.year(-1) == Date.year(0) 
     521      assert_equal(expected, XSD::XSDDate.new(d).to_s) 
    518522    end 
    519523  end