Sha256: fcab3fe3b289f2ff0a76eb93fe0691e5b5bd5aacb8b37af5acaf3a277b7870aa

Contents?: true

Size: 1.37 KB

Versions: 3

Compression:

Stored size: 1.37 KB

Contents

require_relative '../test_helper'

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

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

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

  def test_digital_write
    part
    mock = MiniTest::Mock.new
    mock.expect :call, nil, [14, board.high]
    mock.expect :call, nil, [14, board.low]
    mock.expect :call, nil, [14, board.low]
    mock.expect :call, nil, [14, board.high]
    board.stub(:digital_write, mock) do
      part.digital_write(board.high)
      part.digital_write(board.low)
      part.digital_write(0)
      part.digital_write(1)
    end
    mock.verify
    assert_equal board.high, part.state
  end

  def test_high_and_low
    part
    mock = MiniTest::Mock.new
    mock.expect :call, nil, [board.high]
    mock.expect :call, nil, [board.low]
    part.stub(:digital_write, mock) do
      part.high
      part.low
    end
    mock.verify
  end

  def test_toggle
    part.low
    mock = MiniTest::Mock.new.expect :call, nil
    part.stub(:high, mock) do
      part.toggle
    end
    mock.verify

    part.high
    mock = MiniTest::Mock.new.expect :call, nil
    part.stub(:low, mock) do
      part.toggle
    end
    mock.verify
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

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