x10-cm17a 1.0.1-i386-mswin32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+ require 'x10/cm17a'
5
+ require 'rbconfig'
6
+
7
+ # There's not much we can test on the api code without assuming a
8
+ # bunch of hardware. The output of the API is a sequence of on/off
9
+ # states in the DTS/RTS RS-232 signals. See the file
10
+ # cm17a_protocol.txt in the doc directory for details.
11
+ #
12
+ class TestApi < Test::Unit::TestCase
13
+ DEV = (Config::CONFIG['arch'] =~ /win32/) ? "COM1" : "/dev/ttyS0"
14
+
15
+ def teardown
16
+ X10.controller.close if X10.controller
17
+ X10.controller = nil
18
+ end
19
+
20
+ def test_default_create
21
+ cm = X10::Cm17a::Controller.new
22
+ assert_not_nil cm
23
+ end
24
+
25
+ def test_specific_create
26
+ cm = X10::Cm17a::Controller.new(DEV)
27
+ assert_not_nil cm
28
+ end
29
+
30
+ def test_bad_create
31
+ assert_raises(X10::X10Error) {
32
+ cm = X10::Cm17a::Controller.new("/dev/bad device")
33
+ }
34
+ end
35
+ end
@@ -0,0 +1,141 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ begin
4
+ require 'rubygems'
5
+ rescue LoadError
6
+ # nothing
7
+ end
8
+
9
+ require 'test/unit'
10
+ require 'flexmock'
11
+ require 'x10/cm17a'
12
+
13
+ ######################################################################
14
+ class NoopClass
15
+ def method_missing(sym, *args, &block)
16
+ self
17
+ end
18
+ end
19
+
20
+ NOOP = NoopClass.new
21
+
22
+ ######################################################################
23
+ class MockController < FlexMock
24
+ class << self
25
+ def setup_controller(controller)
26
+ X10.controller = controller
27
+ controller.mock_handle(:device, 1) { |house, unit|
28
+ X10::Cm17a::Device.new(house, unit, controller)
29
+ }
30
+ end
31
+
32
+ def use
33
+ super do |mock|
34
+ setup_controller(mock)
35
+ yield(mock)
36
+ end
37
+ end
38
+ end
39
+ end
40
+
41
+ ######################################################################
42
+ class TestCm17a < Test::Unit::TestCase
43
+ def setup
44
+ end
45
+
46
+ def teardown
47
+ X10.controller = nil
48
+ end
49
+
50
+ def test_create
51
+ MockController.use do |controller|
52
+ dev = X10.device('a1')
53
+ assert_not_nil(dev)
54
+ end
55
+ end
56
+
57
+ def test_on
58
+ MockController.use do |controller|
59
+ controller.mock_handle(:command, 1) { |house, unit, cmd, step|
60
+ assert_equal :on, cmd
61
+ assert_equal 0, step
62
+ }
63
+ dev = X10.device('a1')
64
+ dev.on
65
+ end
66
+ end
67
+
68
+ def test_off
69
+ MockController.use do |controller|
70
+ controller.mock_handle(:command, 1) { |house, unit, cmd, step|
71
+ assert_equal :off, cmd
72
+ assert_equal 0, step
73
+ }
74
+ dev = X10.device('a1')
75
+ dev.off
76
+ end
77
+ end
78
+
79
+ def test_adjust
80
+ MockController.use do |controller|
81
+ controller.mock_handle(:command, 2) { |house, unit, cmd, step|
82
+ if step == 4
83
+ assert_equal 4, step
84
+ assert_equal :brighten, cmd
85
+ else
86
+ assert_equal 3, step
87
+ assert_equal :dim, cmd
88
+ end
89
+ }
90
+ dev = X10.device('a1')
91
+ dev.step(4)
92
+ dev.step(-3)
93
+ end
94
+ end
95
+
96
+ def test_big_adjustments
97
+ MockController.use do |controller|
98
+ controller.mock_handle(:command, 2) { |house, unit, cmd, step|
99
+ assert_equal :dim, cmd
100
+ if step == 6
101
+ assert_equal 6, step
102
+ else
103
+ assert_equal 3, step
104
+ end
105
+ }
106
+ dev = X10.device('a1')
107
+ dev.step(-9)
108
+ end
109
+ end
110
+
111
+ def test_small_adjustments
112
+ MockController.use do |controller|
113
+ controller.mock_handle(:command, 0) { }
114
+ dev = X10.device('a1')
115
+ dev.step(0)
116
+ end
117
+ end
118
+
119
+ def test_device_addressing
120
+ MockController.use do |controller|
121
+ controller.mock_handle(:command) { |house, unit, cmd, step|
122
+ assert_equal 1, house
123
+ assert_equal 2, unit
124
+ }
125
+ dev = X10.device('b3')
126
+ dev.off
127
+ dev.on
128
+ dev.step(1)
129
+ dev.step(-1)
130
+ end
131
+ end
132
+ end
133
+
134
+ ######################################################################
135
+ class TestCm17aController < Test::Unit::TestCase
136
+ def test_create
137
+ X10.controller = X10::Cm17a::Controller.new
138
+ d = X10.device('a1')
139
+ assert_not_nil d
140
+ end
141
+ end
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+
5
+ class TestX10 < Test::Unit::TestCase
6
+ def test_parse_name
7
+ assert_equal [0, 0], X10.parse_address("a1")
8
+ assert_equal [0, 0], X10.parse_address("A1")
9
+ assert_equal [1, 0], X10.parse_address("b1")
10
+ assert_equal [0, 1], X10.parse_address("a2")
11
+ assert_equal [7, 5], X10.parse_address("h6")
12
+ assert_equal [7, 5], X10.parse_address("H6")
13
+ assert_equal [15, 15], X10.parse_address("p16")
14
+ assert_equal [15, 15], X10.parse_address("P16")
15
+ end
16
+
17
+ def test_bad_house
18
+ assert_raises(X10::X10Error) { X10.parse_address("11") }
19
+ assert_raises(X10::X10Error) { X10.parse_address("?1") }
20
+ end
21
+
22
+ def test_bad_format
23
+ assert_raises(X10::X10Error) { X10.parse_address("") }
24
+ assert_raises(X10::X10Error) { X10.parse_address("abcd12") }
25
+ end
26
+
27
+ def test_bad_unit
28
+ assert_raises(X10::X10Error) { X10.parse_address("a0") }
29
+ assert_raises(X10::X10Error) { X10.parse_address("a17") }
30
+ end
31
+
32
+ def test_reverse_name
33
+ assert_equal "b10", X10.make_address(1, 9)
34
+ end
35
+ end
36
+
metadata ADDED
@@ -0,0 +1,53 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.8.3
3
+ specification_version: 1
4
+ name: x10-cm17a
5
+ version: !ruby/object:Gem::Version
6
+ version: 1.0.1
7
+ date: 2005-01-18
8
+ summary: Ruby based X10 CM17A Firecracker Controller
9
+ require_paths:
10
+ - lib
11
+ - lib
12
+ - lib/i386-mswin32
13
+ email: jim@weirichhouse.org
14
+ homepage: http://x10-cm17a.rubyforge.org
15
+ rubyforge_project:
16
+ description: ''
17
+ autorequire:
18
+ default_executable:
19
+ bindir: bin
20
+ has_rdoc: true
21
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
22
+ requirements:
23
+ -
24
+ - ">"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.0.0
27
+ version:
28
+ platform: i386-mswin32
29
+ authors:
30
+ - Jim Weirich
31
+ files:
32
+ - Rakefile
33
+ - setup.rb
34
+ - test/test_cm17a_controller.rb
35
+ - test/test_cm17a_device.rb
36
+ - test/test_x10.rb
37
+ - lib/x10.rb
38
+ - lib/x10/cm17a.rb
39
+ - lib/x10/cm17a_device.rb
40
+ - lib/x10/cm17a_remote.rb
41
+ - ext/cm17a_api/MANIFEST
42
+ - ext/cm17a_api/cm17a.h
43
+ - ext/cm17a_api/cm17a.c
44
+ - ext/cm17a_api/cm17a_api.c
45
+ - ext/cm17a_api/extconf.rb
46
+ - lib/i386-mswin32/cm17a_api.so
47
+ test_files: []
48
+ rdoc_options: []
49
+ extra_rdoc_files: []
50
+ executables: []
51
+ extensions: []
52
+ requirements: []
53
+ dependencies: []