Sha256: 772b4607694f9cce20a2fb6782677953684f74008d2d16c3c8db14ed5d74b109

Contents?: true

Size: 1.14 KB

Versions: 57

Compression:

Stored size: 1.14 KB

Contents

require 'test_helper'

class RailsOps::Operation::Model::CreateTest < ActiveSupport::TestCase
  include TestHelper

  BASIC_OP = Class.new(RailsOps::Operation::Model::Create) do
    model Group
  end

  def test_basic
    op = BASIC_OP.run!(group: { name: 'test', color: 'red' })

    assert_equal 'test', op.model.name
    assert_equal 'red', op.model.color
    assert op.model.persisted?
    refute op.model.changed?
  end

  def test_model_extension
    cls = Class.new(RailsOps::Operation::Model::Create) do
      model Group do
        validates :color, presence: true
      end
    end

    assert cls.new.model.class < Group

    assert_raises ActiveRecord::RecordInvalid do
      cls.run!(group: { name: 'test' })
    end
  end

  def test_parent_op
    op = BASIC_OP.new
    assert_equal op, op.model.parent_op
  end

  def test_always_extend_model_class
    assert RailsOps::Operation::Model::Create.always_extend_model_class?
  end

  def test_build
    op = BASIC_OP.new
    op.build_model

    assert op.instance_variable_get(:@model)

    assert_raises_with_message RuntimeError, 'Model can only be built once.' do
      op.build_model
    end
  end
end

Version data entries

57 entries across 57 versions & 1 rubygems

Version Path
rails_ops-1.0.17.1 test/unit/rails_ops/operation/model/create_test.rb
rails_ops-1.1.25 test/unit/rails_ops/operation/model/create_test.rb
rails_ops-1.1.24 test/unit/rails_ops/operation/model/create_test.rb
rails_ops-1.1.23 test/unit/rails_ops/operation/model/create_test.rb
rails_ops-1.1.22 test/unit/rails_ops/operation/model/create_test.rb
rails_ops-1.1.21 test/unit/rails_ops/operation/model/create_test.rb
rails_ops-1.1.20 test/unit/rails_ops/operation/model/create_test.rb
rails_ops-1.1.19 test/unit/rails_ops/operation/model/create_test.rb
rails_ops-1.1.18 test/unit/rails_ops/operation/model/create_test.rb
rails_ops-1.1.17 test/unit/rails_ops/operation/model/create_test.rb
rails_ops-1.1.16 test/unit/rails_ops/operation/model/create_test.rb
rails_ops-1.1.15 test/unit/rails_ops/operation/model/create_test.rb
rails_ops-1.1.14 test/unit/rails_ops/operation/model/create_test.rb
rails_ops-1.1.13 test/unit/rails_ops/operation/model/create_test.rb
rails_ops-1.1.12 test/unit/rails_ops/operation/model/create_test.rb
rails_ops-1.1.11 test/unit/rails_ops/operation/model/create_test.rb
rails_ops-1.1.10 test/unit/rails_ops/operation/model/create_test.rb
rails_ops-1.1.9 test/unit/rails_ops/operation/model/create_test.rb
rails_ops-1.1.8 test/unit/rails_ops/operation/model/create_test.rb
rails_ops-1.1.7 test/unit/rails_ops/operation/model/create_test.rb