Sha256: b26c44dc3aa9e9520b854b2625278313656bc1cc663b23584b94a490c00b139b

Contents?: true

Size: 1.08 KB

Versions: 5

Compression:

Stored size: 1.08 KB

Contents

require 'test_helper'

class Kaui::BaseTest < ActiveSupport::TestCase

  class Kaui::SomeKlass < Kaui::Base
    define_attr :attribute_id

    has_many :klasses, Kaui::SomeKlass
  end

  test "has_many association should return [] by default" do
    klass = Kaui::SomeKlass.new
    assert_equal [], klass.klasses
  end

  test "can serialize from hash" do
    klass = Kaui::SomeKlass.new(:attribute_id => 12)
    assert_equal 12, klass.attribute_id
  end

  test "can serialize from json" do
    klass = Kaui::SomeKlass.new(:attributeId => 12)
    assert_equal 12, klass.attribute_id
  end

  test "convert camelcase hash into snake case hash" do
    # Happy path
    new_hash = Kaui::Base.convert_hash_keys({:accountId=>12, :data_id=>14})
    assert_equal 12, new_hash[:account_id]
    assert_equal 14, new_hash[:data_id]
    assert_nil new_hash[:accountId]

    # Edge cases
    assert_nil Kaui::Base.convert_hash_keys(nil)
    assert_equal [], Kaui::Base.convert_hash_keys([])
    assert_equal Hash.new, Kaui::Base.convert_hash_keys({})
    assert_equal 1, Kaui::Base.convert_hash_keys(1)
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
kaui-0.1.6 test/unit/kaui/base_test.rb
kaui-0.1.5 test/unit/kaui/base_test.rb
kaui-0.1.4 test/unit/kaui/base_test.rb
kaui-0.1.3 test/unit/kaui/base_test.rb
kaui-0.1.2 test/unit/kaui/base_test.rb