Sha256: 773f7ed4bfbc9de68e977fe516ff6f0d6c61a2c3fa06c41c4648ecdc6a0308c1

Contents?: true

Size: 1.34 KB

Versions: 3

Compression:

Stored size: 1.34 KB

Contents

require_relative '../test_helper'

class DigitalIOInputTest < Minitest::Test
  def board
    @board ||= BoardMock.new
  end

  def part
    @part ||= Denko::DigitalIO::Input.new(board: board, pin: 14)
  end

  def test_start_listening_immediately
    mock = MiniTest::Mock.new.expect :call, nil, [14, 4]
    board.stub(:digital_listen, mock) do
      part
    end
    mock.verify
  end
  
  def test_converts_to_integer
    part
    part.update("1")
    assert_equal part.state, 1
  end

  def test__read
    mock = MiniTest::Mock.new.expect :call, nil, [14]
    board.stub(:digital_read, mock) do
      part._read
    end
    mock.verify
  end

  def test__listen
    part
    mock = MiniTest::Mock.new
    mock.expect :call, nil, [14, 4]
    mock.expect :call, nil, [14, 32]
    board.stub(:digital_listen, mock) do
      part._listen
      part._listen(32)
    end
    mock.verify
  end

  def test_on_low
    low_cb  = MiniTest::Mock.new.expect :call, nil
    high_cb = MiniTest::Mock.new
    part.on_low { low_cb.call }
    part.on_high { high_cb.call }
    part.update(board.low)
    low_cb.verify
    high_cb.verify
  end

  def test_on_high
    low_cb  = MiniTest::Mock.new
    high_cb = MiniTest::Mock.new.expect :call, nil
    part.on_low { low_cb.call }
    part.on_high { high_cb.call }
    part.update(board.high)
    low_cb.verify
    high_cb.verify
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
denko-0.13.2 test/digital_io/input_test.rb
denko-0.13.1 test/digital_io/input_test.rb
denko-0.13.0 test/digital_io/input_test.rb