Sha256: d44975e37223c29c3a648de9365f01c3bec5e59d2cbab1e19a46d0594cd8b8c4

Contents?: true

Size: 1.39 KB

Versions: 3

Compression:

Stored size: 1.39 KB

Contents

require_relative '../test_helper'

class RGBLEDTest < MiniTest::Test
  def board
    @board ||= BoardMock.new
  end

  def options
    { board: board, pins: { red: 1, green: 2, blue: 3 } }
  end

  def part
    @part ||= Denko::LED::RGB.new(options)
  end

  def test_proxies
    assert_equal Denko::LED::Base, part.red.class
    assert_equal Denko::LED::Base, part.green.class
    assert_equal Denko::LED::Base, part.blue.class
  end

  def test_write
    red_mock = MiniTest::Mock.new.expect :write, nil, [0]
    green_mock = MiniTest::Mock.new.expect :write, nil, [128]
    blue_mock = MiniTest::Mock.new.expect :write, nil, [0]

    part.stub(:red, red_mock) do
      part.stub(:green, green_mock) do
        part.stub(:blue, blue_mock) do
          part.write [0, 128, 0]
        end
      end
    end
    red_mock.verify
    green_mock.verify
    blue_mock.verify
  end

  def test_color_array
    mock = MiniTest::Mock.new.expect :call, nil, [[128,0,0]]
    part.stub(:write, mock) do
      part.color = [128,0,0]
    end
    mock.verify
  end

  def test_color_names
    colors = Denko::LED::RGB::COLORS

    mock = MiniTest::Mock.new
    colors.each_value do |color|
      mock.expect :call, nil, [color]
      mock.expect :call, nil, [color]
    end

    part.stub(:write, mock) do
      colors.each_key do |key|
        part.color = key
        part.color = key.to_s
      end
    end
    mock.verify
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
denko-0.13.2 test/led/rgb_test.rb
denko-0.13.1 test/led/rgb_test.rb
denko-0.13.0 test/led/rgb_test.rb