Sha256: c33fc332ed2cb2e913599f1ad0764c350570aa0e6457072308d08f56bff0ca83

Contents?: true

Size: 904 Bytes

Versions: 8

Compression:

Stored size: 904 Bytes

Contents

require_relative '../test_helper'

class AddressedBus
  include Denko::Behaviors::Component
  include Denko::Behaviors::BusControllerAddressed
end

class AddressedPeripheral
  include Denko::Behaviors::Component
  include Denko::Behaviors::BusPeripheralAddressed
end

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

  def part
    @part ||= AddressedBus.new(board: board)
  end
  
  def test_has_mutex
    assert_equal part.mutex.class, Mutex
  end
  
  def test_components
    peripheral = AddressedPeripheral.new(bus: part, address: 1)
    assert_equal part.components, [peripheral]
    
    part.remove_component peripheral
    assert_equal part.components, []
  end

  def test_prevents_duplicate_addresses
    AddressedPeripheral.new(bus: part, address: 1)
    assert_raises do
      AddressedPeripheral.new(bus: part, address: 1)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
denko-0.14.0 test/behaviors/bus_controller_addressed_test.rb
denko-0.13.6 test/behaviors/bus_controller_addressed_test.rb
denko-0.13.5 test/behaviors/bus_controller_addressed_test.rb
denko-0.13.4 test/behaviors/bus_controller_addressed_test.rb
denko-0.13.3 test/behaviors/bus_controller_addressed_test.rb
denko-0.13.2 test/behaviors/bus_controller_addressed_test.rb
denko-0.13.1 test/behaviors/bus_controller_addressed_test.rb
denko-0.13.0 test/behaviors/bus_controller_addressed_test.rb