pimatic-gpio
Version:
Provides Actuators and Sensors for the Raspberry Pi GPIO Pins.
62 lines (52 loc) • 2.04 kB
text/coffeescript
module.exports = (env) ->
sinon = env.require 'sinon'
assert = env.require "assert"
describe "gpio", ->
before =>
env.Gpio = (
class GpioDummy
constructor: (, ) ->
watch: () ->
read: () ->
)
= (env.require 'pimatic-gpio') env
= {}
= {
deviceManager:
registerDeviceClass: sinon.spy()
}
describe 'GpioPlugin', =>
describe '#init()', =>
it "should init", =>
.init(null, , )
assert .deviceManager.registerDeviceClass.callCount is 3
firstCall = .deviceManager.registerDeviceClass.getCall(0)
assert firstCall.args[0] is "GpioPresence"
secondCall = .deviceManager.registerDeviceClass.getCall(1)
assert secondCall.args[0] is "GpioContact"
describe "#createCallback()", =>
it "should create a GpioPresence", =>
firstCall = .deviceManager.registerDeviceClass.getCall(1)
presenceConfig = {
id: "testPresence"
name: "Test PresenceSensor"
class: "GpioPresence"
gpio: 2
}
= firstCall.args[1].createCallback(presenceConfig)
assert .gpio?
assert 2, .gpio.pin
assert 'in', .gpio.direction
assert .gpio.watchCallback
it "should create a GpioSwitch", =>
secondCall = .deviceManager.registerDeviceClass.getCall(1)
switchConfig = {
id: "testSwitch"
name: "Test Switch"
class: "GpioSwitch"
gpio: 1
}
= secondCall.args[1].createCallback(switchConfig)
assert .gpio?
assert 1, .gpio.pin
assert 'out', .gpio.direction