Sha256: 929e9c3ea1c4ab943f9a01b28d93f2f3851e0846d76dfb4fbfdb665c8568cf75

Contents?: true

Size: 1.15 KB

Versions: 4

Compression:

Stored size: 1.15 KB

Contents

require 'spec_helper'

describe Project do

  describe 'metrics' do
    it 'describes itself' do
      subject.
          add_metric(Metric.new(:name => stub)).
          add_metric(Metric.new(:name => stub))

      subject.metrics.should have(2).items
    end
  end

  describe 'properties' do
    context 'with one metric' do
      let(:name) { stub(:name) }
      let(:metric) { Metric.new(name: name) }
      before { subject.add_metric(metric) }

      it 'converts value before addition' do
        value = stub
        metric.should_receive(:convert).with(value)
        subject.edit_property(name, value, stub)
      end

      it 'returns last value of the property history' do
        value = 'v'
        subject.edit_property(name, stub, stub).edit_property(name, value, stub)
        subject.property(name).value.should be value
      end
    end

    describe 'exceptional cases' do
      it 'do not allow to modify unknown property' do
        name, value = stub, stub
        expect { subject.edit_property(name, value) }.to raise_error
      end

      it 'returns nil for unknown property' do
        subject.property(stub).should be_nil
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
techcor-0.0.4 spec/lib/project_spec.rb
techcor-0.0.3 spec/lib/project_spec.rb
techcor-0.0.2 spec/lib/project_spec.rb
techcor-0.0.1 spec/lib/project_spec.rb