reader_gate_test.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. package uhf
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/require"
  5. )
  6. type gateReaderStub struct {
  7. opened byte
  8. closed byte
  9. }
  10. func (s *gateReaderStub) Connect() error { return nil }
  11. func (s *gateReaderStub) Disconnect() error { return nil }
  12. func (s *gateReaderStub) SendData([]byte) error { return nil }
  13. func (s *gateReaderStub) ReadData() ([]byte, error) { return nil, nil }
  14. func (s *gateReaderStub) IsConnected() bool { return true }
  15. func (s *gateReaderStub) ReleaseRelay1() error { return nil }
  16. func (s *gateReaderStub) ReleaseRelay2() error { return nil }
  17. func (s *gateReaderStub) CloseRelay1(validTime byte) error { s.opened = validTime; return nil }
  18. func (s *gateReaderStub) CloseRelay2(validTime byte) error { s.closed = validTime; return nil }
  19. func TestManagerControlsBothGateDirections(t *testing.T) {
  20. reader := &gateReaderStub{}
  21. manager := &Manager{devices: map[string]*DeviceHandler{
  22. "GATE-01": {reader: reader},
  23. }}
  24. require.True(t, manager.IsGateConnected("GATE-01"))
  25. require.NoError(t, manager.OpenGate("GATE-01", 2))
  26. require.NoError(t, manager.CloseGate("GATE-01", 3))
  27. require.Equal(t, byte(2), reader.opened)
  28. require.Equal(t, byte(3), reader.closed)
  29. require.Error(t, manager.OpenGate("MISSING", 2))
  30. }