Sha256: 821b60070e72e7f26ee7eecc6f653ead74219563d7ff8fe54fd12fce0adb7f9e

Contents?: true

Size: 1.22 KB

Versions: 12

Compression:

Stored size: 1.22 KB

Contents

require 'spec_helper'

describe EY::CloudClient::ApiStruct do
  class Foo < EY::CloudClient::ApiStruct.new(:id, :fruit, :veggie); end

  it "acts like a normal struct" do
    f = Foo.new(cloud_client, "fruit" => "banana")

    f.fruit.should == "banana"
  end

  describe "from_hash initializer" do
    it "assigns values from string keys" do
      f = Foo.from_hash(cloud_client, "fruit" => "banana")
      f.should == Foo.new(cloud_client, "fruit" => "banana")
    end

    it "assigns values from symbol keys" do
      f = Foo.from_hash(cloud_client, :fruit => "banana")
      f.should == Foo.new(cloud_client, "fruit" => "banana")
    end
  end

  describe "from_array initializer" do
    it "provides a from_array initializer" do
      f = Foo.from_array(cloud_client, [:fruit => "banana"])
      f.should == [Foo.new(cloud_client, "fruit" => "banana")]
    end

    it "handles a common-arguments hash as the second argument" do
      foos = Foo.from_array(cloud_client,
        [{:fruit => "banana"}, {:fruit => 'apple'}],
        :veggie => 'kale')
      foos.should == [
        Foo.new(cloud_client, "fruit" => "banana", "veggie" => "kale"),
        Foo.new(cloud_client, "fruit" => "apple",  "veggie" => "kale"),
      ]
    end
  end

end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
engineyard-cloud-client-2.1.1 spec/engineyard-cloud-client/models/api_struct_spec.rb
engineyard-cloud-client-2.1.0 spec/engineyard-cloud-client/models/api_struct_spec.rb
engineyard-cloud-client-1.0.16 spec/engineyard-cloud-client/models/api_struct_spec.rb
engineyard-cloud-client-2.0.1 spec/engineyard-cloud-client/models/api_struct_spec.rb
engineyard-cloud-client-2.0.0 spec/engineyard-cloud-client/models/api_struct_spec.rb
engineyard-cloud-client-1.0.15 spec/engineyard-cloud-client/models/api_struct_spec.rb
engineyard-cloud-client-1.0.14 spec/engineyard-cloud-client/models/api_struct_spec.rb
engineyard-cloud-client-1.0.13 spec/engineyard-cloud-client/models/api_struct_spec.rb
engineyard-cloud-client-1.0.12 spec/engineyard-cloud-client/models/api_struct_spec.rb
engineyard-cloud-client-1.0.11 spec/engineyard-cloud-client/models/api_struct_spec.rb
engineyard-cloud-client-1.0.10 spec/engineyard-cloud-client/models/api_struct_spec.rb
engineyard-cloud-client-1.0.9 spec/engineyard-cloud-client/models/api_struct_spec.rb