spec/lib/smartlight_spec.rb in l8-0.0.1 vs spec/lib/smartlight_spec.rb in l8-0.0.2
- old
+ new
@@ -1,17 +1,75 @@
require 'spec_helper'
module L8
describe Smartlight do
let(:serial_port) { double(:serial_port) }
+
+ before(:each) do
+ allow(Serial).to receive(:new).with('serial_port') { serial_port }
+ allow(Kernel).to receive(:at_exit) do |&block|
+ block.call
+ end
+ allow(serial_port).to receive(:write).with('foo')
+ allow(serial_port).to receive(:close)
+ end
+
+ describe 'deconstruction' do
+ it 'closes serial port connection on exit' do
+ L8::Smartlight.new('serial_port')
+
+ expect(serial_port).to have_received(:close)
+ end
+ end
+
describe '#set_led' do
it 'sets the color of the LED at given location' do
- allow(Serial).to receive(:new).with('serial_port') { serial_port }
- allow(Util).to receive(:frame).with([Smartlight::CMD_L8_LED_SET, 3, 0, 15, 15, 15, 0]) { 'foo'}
- allow(serial_port).to receive(:write).with('foo')
+ expect(Util).to receive(:frame).with([Smartlight::CMD_L8_LED_SET, 3, 0, 15, 15, 15, 0]) { 'foo'}
l8 = L8::Smartlight.new('serial_port')
l8.set_led(3, 0, 15, 15, 15)
+ end
+ end
+
+ describe '#set_orientation' do
+ before(:each) do
+ allow(serial_port).to receive(:write).with('foo')
+ end
+
+ describe 'to up' do
+ it 'sends 0x80 with 1' do
+ expect(Util).to receive(:frame).with([Smartlight::CMD_L8_SET_ORIENTATION, 1]) { 'foo'}
+
+ l8 = L8::Smartlight.new('serial_port')
+ l8.set_orientation(:up)
+ end
+ end
+
+ describe 'to down' do
+ it 'sends 0x80 with 2' do
+ expect(Util).to receive(:frame).with([Smartlight::CMD_L8_SET_ORIENTATION, 2]) { 'foo'}
+
+ l8 = L8::Smartlight.new('serial_port')
+ l8.set_orientation(:down)
+ end
+ end
+
+ describe 'to right' do
+ it 'sends 0x80 with 5' do
+ expect(Util).to receive(:frame).with([Smartlight::CMD_L8_SET_ORIENTATION, 5]) { 'foo'}
+
+ l8 = L8::Smartlight.new('serial_port')
+ l8.set_orientation(:right)
+ end
+ end
+
+ describe 'to left' do
+ it 'sends 0x80 with 6' do
+ expect(Util).to receive(:frame).with([Smartlight::CMD_L8_SET_ORIENTATION, 6]) { 'foo'}
+
+ l8 = L8::Smartlight.new('serial_port')
+ l8.set_orientation(:left)
+ end
end
end
end
end