Sha256: cb562b2abe2cdb6425b5f6754c4c77de71ad2c6fa89475d24253100f5aa71c5e

Contents?: true

Size: 1007 Bytes

Versions: 7

Compression:

Stored size: 1007 Bytes

Contents

require 'spec_helper'

describe Rules::Evaluators do
  describe '.define_evaluator' do
    it 'fails if the key already exists' do
      Rules::Evaluators.define_evaluator :duplicate
      expect {
        Rules::Evaluators.define_evaluator :duplicate
      }.to raise_error('Evaluator already exists')
    end

    it 'creates a new evaluator object' do
      evaluator = Rules::Evaluators.define_evaluator :create
      evaluator.should be_instance_of(Rules::Evaluators::Evaluator)
    end

    it 'sets the properties of the evaluator' do
      evaluator = Rules::Evaluators.define_evaluator :set do
        self.evaluation_method = ->(lhs, rhs) { lhs == rhs }
        self.name = 'some name'
      end
      evaluator.evaluation_method.should_not be_nil
      evaluator.name.should == 'some name'
    end

    it 'adds the evaluator to a hash of evaluators' do
      expect {
        Rules::Evaluators.define_evaluator :add
      }.to change { Rules::Evaluators.list[:add] }.from(nil)
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
rules-1.1.1 spec/rules/evaluators_spec.rb
rules-1.1.0 spec/rules/evaluators_spec.rb
rules-1.0.0 spec/rules/evaluators_spec.rb
rules-0.1.2 spec/rules/evaluators_spec.rb
rules-0.1.1 spec/rules/evaluators_spec.rb
rules-0.1.0 spec/rules/evaluators_spec.rb
rules-0.0.1 spec/rules/evaluators_spec.rb