mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
[core] Add test for Fog::Parsers::Base
Test multiline and nested values.
This commit is contained in:
parent
27bf76d1f8
commit
ff72d4c647
1 changed files with 67 additions and 0 deletions
67
tests/core/parser_tests.rb
Normal file
67
tests/core/parser_tests.rb
Normal file
|
@ -0,0 +1,67 @@
|
|||
Shindo.tests('Fog::Parsers', 'core') do
|
||||
|
||||
class TestParser < Fog::Parsers::Base
|
||||
def reset
|
||||
super
|
||||
reset_my_array
|
||||
end
|
||||
|
||||
def reset_my_array
|
||||
@my_array = []
|
||||
end
|
||||
|
||||
def end_element(name)
|
||||
case name
|
||||
when 'key1', 'key2', 'key3', 'longText'
|
||||
@response[name] = value
|
||||
when 'myArray'
|
||||
@response[name] = @my_array
|
||||
reset_my_array
|
||||
when 'id'
|
||||
@my_array << value.to_i
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
@xml = %{
|
||||
<MyResponse>
|
||||
<MyObject>
|
||||
<key1>value1</key1>
|
||||
<key2>value2</key2>
|
||||
<myArray>
|
||||
<id>1</id>
|
||||
<id>2</id>
|
||||
<id>3</id>
|
||||
</myArray>
|
||||
<longText>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||
Donec quis metus arcu, quis cursus turpis.
|
||||
Aliquam leo lacus, luctus vel iaculis id,
|
||||
posuere eu odio. Donec sodales, ante porta condimentum
|
||||
</longText>
|
||||
<key3>value3</key3>
|
||||
</MyObject>
|
||||
<MyResponse>
|
||||
}
|
||||
|
||||
@response = {
|
||||
'key1' => 'value1',
|
||||
'key2' => 'value2',
|
||||
'key3' => 'value3',
|
||||
'myArray' => [1,2,3],
|
||||
'longText' => %{
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||
Donec quis metus arcu, quis cursus turpis.
|
||||
Aliquam leo lacus, luctus vel iaculis id,
|
||||
posuere eu odio. Donec sodales, ante porta condimentum
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
tests('TestParser').returns(@response) do
|
||||
test_parser = TestParser.new
|
||||
Nokogiri::XML::SAX::Parser.new(test_parser).parse(@xml)
|
||||
test_parser.response
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue