Sha256: cbacda2838ee15c604b3b0187091d320ac58fa3f2d925347ce90b92988dec6b8

Contents?: true

Size: 1.22 KB

Versions: 3

Compression:

Stored size: 1.22 KB

Contents

require "byebug"
require "test/unit"
require_relative '../lib/smart_init/main'

class TestAllPublic
  extend SmartInit
  initialize_with :attribute_1, :attribute_2, public_readers: true
  is_callable

  def call
    [attribute_1, attribute_2]
  end
end

class TestSomePublic
  extend SmartInit
  initialize_with :attribute_1, :attribute_2, public_readers: [:attribute_1]
  is_callable

  def call
    [attribute_1, attribute_2]
  end
end

class TestDefaultPublic
  extend SmartInit
  initialize_with :attribute_1, attribute_2: 2, public_readers: [:attribute_2]

  def call
    [attribute_1, attribute_2]
  end
end

class HashApiPublicTest < Test::Unit::TestCase
  def test_all_public
    service = TestAllPublic.new(attribute_1: "a", attribute_2: "b")
    assert_equal service.attribute_1, "a"
    assert_equal service.attribute_2, "b"
  end

  def test_some_public
    service = TestSomePublic.new(attribute_1: "a", attribute_2: "b")
    assert_equal service.attribute_1, "a"
    assert_raise NoMethodError do
      service.attribute_2
    end
  end

  def test_default_public
    service = TestDefaultPublic.new(attribute_1: "a")
    assert_equal service.attribute_2, 2

    assert_raise NoMethodError do
      service.attribute_1
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
smart_init-4.2.0 test/test_hash_public_readers.rb
smart_init-4.1.1 test/test_hash_public_readers.rb
smart_init-4.1.0 test/test_hash_public_readers.rb