Sha256: 68127e6d75fd944d4da9883633002805d6c529ac640a6409daf4a8c70f4d05c3

Contents?: true

Size: 1.99 KB

Versions: 2

Compression:

Stored size: 1.99 KB

Contents

require 'contest'
require 'swirl/helpers'

class CompactorTest < Test::Unit::TestCase
  include Swirl::Helpers

  test "pivots on root" do
    response = { "Foo" => { "requestId" => "abc123" } }
    expected = { "requestId" => "abc123" }

    assert_equal expected, Compactor.compact(response)
  end

  test "ignores xmlns" do
    response = { "Foo" => { "requestId" => "abc123", "xmlns" => "suckit" } }
    expected = { "requestId" => "abc123" }

    assert_equal expected, Compactor.compact(response)
  end

  test "pivots list keys on item" do
    response = { "Foo" => { "groupSet" => { "item" => [{ "foo" => "bar" }] } } }
    expected = { "groupSet" =>  [ { "foo" => "bar" } ] }

    assert_equal expected, Compactor.compact(response)
  end

  test "pivots list keys on member" do
    response = { "Foo" => { "groupSet" => { "member" => [{ "foo" => "bar" }] } } }
    expected = { "groupSet" =>  [ { "foo" => "bar" } ] }

    assert_equal expected, Compactor.compact(response)
  end

  test "pivots list keys item and converts to Array not already an Array" do
    response = { "Foo" => { "groupSet" => { "item" => { "foo" => "bar" } } } }
    expected = { "groupSet" =>  [ { "foo" => "bar" } ] }

    assert_equal expected, Compactor.compact(response)
  end

  test "pivots list keys item and makes empty Array if nil" do
    response = { "Foo" => { "groupSet" => { "item" => nil } } }
    expected = { "groupSet" =>  [] }

    assert_equal expected, Compactor.compact(response)
  end

  test "traverses list values and compacts" do
    response = {
      "Bar" => {
        "Foo" => {
          "groupSet" => {
            "item" => {
              "ipPermissions" => {
                "item" => {
                  "proto" => "tcp"
                }
              }
            }
          }
        }
      }
    }

    expected = {
      "Foo" => {
        "groupSet" => [
          { "ipPermissions" => [ { "proto" => "tcp" } ] }
        ]
      }
    }

    assert_equal expected, Compactor.compact(response)
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
swirl-1.7.5 test/compactor_test.rb
swirl-1.7.4 test/compactor_test.rb