spec/lib/whipped-cream/sensor_spec.rb in whipped-cream-0.1.0 vs spec/lib/whipped-cream/sensor_spec.rb in whipped-cream-0.1.1

- old
+ new

@@ -1,27 +1,48 @@ require 'spec_helper' describe WhippedCream::Sensor do - subject(:sensor) { described_class.new(name, options, &block) } + context 'valid sensor' do + subject(:sensor) { described_class.new(name, valid_options, &block) } - let(:name) { "Door" } - let(:options) { - { - pin: 2, - high: "Open", - low: "Closed", - on_high: :door_opened + let(:name) { "Door" } + let(:valid_options) { + { + pin: 17, + high: "Open", + low: "Closed", + on_high: :door_opened + } } - } - let(:block) { nil } + let(:block) { nil } - its(:name) { should eq(name) } - its(:id) { should eq(:door) } + its(:name) { should eq(name) } + its(:id) { should eq(:door) } - its(:pin) { should eq(2) } + its(:pin) { should eq(17) } - its(:high) { should eq("Open") } - its(:low) { should eq("Closed") } + its(:high) { should eq("Open") } + its(:low) { should eq("Closed") } - its(:on_high) { should eq(:door_opened) } - its(:on_low) { should be_nil } + its(:on_high) { should eq(:door_opened) } + its(:on_low) { should be_nil } + end + + context 'invalid sensor' do + let(:name) { "Door" } + let(:invalid_options) { + { + pin: 3, + high: "Open", + low: "Closed", + on_high: :door_opened + } + } + let(:block) { nil } + + it 'should raise an error on initialization' do + expect { + described_class.new(name, invalid_options, &block) + }.to raise_error + end + end end