Sha256: f5c5d0941019d65f5e38544648dadf8ea3d5143638cf2eacd5041127c815746c
Contents?: true
Size: 1.94 KB
Versions: 4
Compression:
Stored size: 1.94 KB
Contents
require_relative 'test_helper' require_relative '../lib/wall_e/pin' require 'ostruct' DummyBoard = Class.new do attr_reader :pins def initialize(pins) @pins = pins end def digital_write(*args); args.length; end def set_pin_mode(pin_number, mode); pin_number; end end class PinTest < MiniTest::Unit::TestCase def test_will_not_set_to_a_mode_pin_does_not_support board_pins = [] board_pins.insert(13, OpenStruct.new(supported_modes: Array(0..3))) board = DummyBoard.new(board_pins) pin = WallE::Pin.new(13, board) assert_raises(WallE::Pin::UnsupportedModeError) { pin.set_mode WallE::Pin::SERVO } end def test_set_mode_will_only_set_changes pin_number = 13 board_pins = [] board_pins.insert(pin_number, OpenStruct.new(supported_modes: Array(0..4))) board = OpenStruct.new(pins: board_pins, set_pin_mode: 1) pin = nil board.stub :set_pin_mode, 1 do pin = WallE::Pin.new(pin_number, board, WallE::Pin::PWM) end pin.stub :current_mode, WallE::Pin::PWM do pin.set_mode WallE::Pin::PWM end end def test_digital_write_to_board pin_number = 13 board_pins = [] board_pins.insert(pin_number, OpenStruct.new(supported_modes: Array(0..3))) board = MiniTest::Mock.new board.expect(:pins, board_pins) board.expect(:set_pin_mode, 1, [pin_number, WallE::Pin::OUTPUT]) board.expect(:digital_write, 1, [pin_number, 1]) pin = WallE::Pin.new(pin_number, board) pin.digital_write(1) board.verify end def test_analog_write_to_board pin_number = 13 board_pins = [] board_pins.insert(pin_number, OpenStruct.new(supported_modes: Array(0..4))) board = MiniTest::Mock.new board.expect(:pins, board_pins) board.expect(:set_pin_mode, 1, [pin_number, WallE::Pin::PWM]) board.expect(:analog_write, 1, [pin_number, 255]) pin = WallE::Pin.new(pin_number, board, WallE::Pin::PWM) pin.analog_write(255) board.verify end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
wall_e-0.0.4 | test/pin_test.rb |
wall_e-0.0.3 | test/pin_test.rb |
wall_e-0.0.2 | test/pin_test.rb |
wall_e-0.0.1 | test/pin_test.rb |