Sha256: cb768aad4907a5b177c9028a91edcf340711b5973a1fa206daa08fa2d93224e9

Contents?: true

Size: 1015 Bytes

Versions: 3

Compression:

Stored size: 1015 Bytes

Contents

require_relative '../test_helper'

class APIToneTest < Minitest::Test
  include TestPacker
  
  def connection
    @connection ||= ConnectionMock.new
  end

  def board
    @board ||= Denko::Board.new(connection)
  end

  def test_tone
    mock = MiniTest::Mock.new
    aux1 = pack(:uint16, 150) + pack(:uint16, 2000)
    aux2 = pack(:uint16, 300)
    
    mock.expect :call, nil, [Denko::Message.encode(command: 17, pin: 10, value: 1, aux_message: aux1)]
    mock.expect :call, nil, [Denko::Message.encode(command: 17, pin: 10, value: 0, aux_message: aux2)]

    board.stub(:write, mock) do
      board.tone(10, 150, 2000)
      board.tone(10, 300)
    end
    mock.verify
  end
  
  def test_tone_prevents_low_frequencies
    assert_raises(ArgumentError, /freq/i) { board.tone(4, 30, 3000) }
  end

  def test_no_tone
    mock = MiniTest::Mock.new
    mock.expect :call, nil, [Denko::Message.encode(command: 18, pin: 10)]

    board.stub(:write, mock) do
      board.no_tone(10)
    end
    mock.verify
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
denko-0.13.2 test/board/tone_test.rb
denko-0.13.1 test/board/tone_test.rb
denko-0.13.0 test/board/tone_test.rb