Sha256: 721a357c8617b4f09874303f3ea7888788de2caff334e0e09306423a688dc502

Contents?: true

Size: 1.43 KB

Versions: 1

Compression:

Stored size: 1.43 KB

Contents

require_relative '../helper'

class TestDefinition < MiniTest::Unit::TestCase
  def test_defaults
    definition = TestDummy::Definition.new

    assert_equal [ ], definition.fields
    assert_equal true, definition.fields?(nil)
    assert_equal false, definition.fields?([ :field ])
  end

  def test_define_operation_on_reflection
    definition = TestDummy::Definition.new

    definition.define_operation(Bill, [ :account ], { })

    assert_equal [ :account ], definition.fields
    assert_equal true, definition.fields?(:account)
    assert_equal false, definition.fields?(:invalid)
    assert_equal false, definition.fields?([ :invalid, :account ])
  end

  def test_define_operation_with_options
    definition = TestDummy::Definition.new

    triggered = 0

    options = {
      :only => [ :only_tag ].freeze,
      :except => [ :except_tag ].freeze,
      :block => lambda { triggered += 1 }
    }.freeze

    definition.define_operation(Bill, [ :account ], options)

    assert_equal [ :account ], definition.fields([ :only_tag ])
  end

  def test_apply_with_after_option
    definition = TestDummy::Definition.new

    triggered = 0

    options = {
      :after => :save,
      :block => lambda { triggered += 1 }
    }.freeze

    definition.define_operation(Bill, [ :account ], options)

    definition.apply!(nil, { }, [ ])

    assert_equal 0, triggered

    definition.apply_after_save!(nil, { }, [ ])

    assert_equal 1, triggered
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
test_dummy-0.5.0 test/unit/test_definition.rb