Sha256: b493babb2ecd2c105b17ee7de0e3d2ffb294bc51ae39f216abb5f291bd52ac3f

Contents?: true

Size: 961 Bytes

Versions: 9

Compression:

Stored size: 961 Bytes

Contents

require "minitest/autorun"
require "modelizer/assertions"

module Modelizer
  class TestAssertions < MiniTest::Unit::TestCase
    include Modelizer::Assertions

    class MockModel
      attr_reader :errors

      def initialize valid, errors = {}
        def errors.on attribute; self[attribute] end
        def errors.full_messages; values end

        @valid  = valid
        @errors = errors
      end

      def valid?; @valid end
    end

    def test_assert_invalid
      model = MockModel.new false, :thing => "is invalid"
      assert_invalid :thing, model
    end

    def test_assert_invalid_fails_fast_for_valid_models
      model = MockModel.new false
      assert_raises(MiniTest::Assertion) { assert_invalid :ignored, model }
    end

    def test_assert_invalid_looks_for_errors_on_attribute
      model = MockModel.new false, :other => "is broken"
      assert_raises(MiniTest::Assertion) { assert_invalid :attribute, model }
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
modelizer-5.0.2 test/test_assertions.rb
modelizer-5.0.1 test/test_assertions.rb
modelizer-5.0.0 test/test_assertions.rb
modelizer-4.0.0 test/test_assertions.rb
modelizer-3.0.0 test/test_assertions.rb
modelizer-2.1.0 test/test_assertions.rb
modelizer-2.0.0 test/test_assertions.rb
modelizer-1.3.1 test/test_assertions.rb
modelizer-1.3.0 test/test_assertions.rb