Sha256: a196872284966603b5c37cf9e547226c721039a7797f3e3d7076172345124ceb

Contents?: true

Size: 2 KB

Versions: 11

Compression:

Stored size: 2 KB

Contents

require 'test/unit'
require 'rbvmomi'
VIM = RbVmomi::VIM unless Object.const_defined? :VIM

class ParseResponseTest < Test::Unit::TestCase
  def check desc, str, expected
    soap = VIM.new(:ns => 'urn:vim25', :rev => '4.0')
    got = soap.parse_response Nokogiri(str).root, desc
    assert_equal expected, got
  end

  def test_string_array
    desc = { 'wsdl_type' => 'xsd:string', 'is-array' => true, 'is-task' => false }

    check desc, <<-EOS, ['a', 'b', 'c']
<root xmlns="urn:vim25">
  <blah>a</blah>
  <blah>b</blah>
  <blah>c</blah>
</root>
    EOS
  end

  def test_missing_parameter_fault
    desc = { 'wsdl_type' => nil, 'is-array' => false, 'is-task' => false }

    assert_raise RuntimeError do
      check desc, <<-EOS, ['a', 'b', 'c']
<soapenv:Fault xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <faultcode>ClientFaultCode</faultcode>
  <faultstring>Required parameter selectionSet is missing</faultstring>
</soapenv:Fault>
      EOS
    end
  end

  def test_invalid_argument_fault
    desc = { 'wsdl_type' => nil, 'is-array' => false, 'is-task' => false }

    assert_raise RbVmomi::Fault do
      begin
        check desc, <<-EOS, nil
<soapenv:Fault xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <faultcode>ServerFaultCode</faultcode>
  <faultstring>A specified parameter was not correct. ticketType</faultstring>
  <detail>
    <InvalidArgumentFault xmlns="urn:vim25" xsi:type="InvalidArgument">
      <invalidProperty>ticketType</invalidProperty>
    </InvalidArgumentFault>
  </detail>
</soapenv:Fault>
        EOS
      rescue VIM::InvalidArgument
        raise
      rescue
        raise "wrong fault"
      end
    end
  end

  def test_task_array_result
    desc = { 'wsdl_type' => 'xsd:string', 'is-array' => true, 'is-task' => true }

    check desc, <<-EOS, VIM.Task(nil, 'haTask-ha-host-vim.DiagnosticManager.generateLogBundles-865')
<root xmlns="urn:vim25">
  <returnval type="Task">haTask-ha-host-vim.DiagnosticManager.generateLogBundles-865</returnval>
</root>
    EOS
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
rbvmomi-1.4.0 test/test_parse_response.rb
rbvmomi-1.3.0 test/test_parse_response.rb
rbvmomi-1.2.3 test/test_parse_response.rb
rbvmomi-1.2.2 test/test_parse_response.rb
rbvmomi-1.2.1 test/test_parse_response.rb
rbvmomi-1.2.0 test/test_parse_response.rb
rbvmomi-1.1.8 test/test_parse_response.rb
rbvmomi-1.1.6 test/test_parse_response.rb
rbvmomi-1.1.5 test/test_parse_response.rb
rbvmomi-1.1.4 test/test_parse_response.rb
rbvmomi-1.1.3 test/test_parse_response.rb