ardtweeno 0.0.2 → 0.2.5
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.
- checksums.yaml +7 -0
- data/CHANGELOG +179 -1
- data/COPYING +4 -3
- data/Gemfile +29 -0
- data/Gemfile.lock +76 -0
- data/INSTALL +12 -0
- data/Procfile +1 -0
- data/README.md +26 -2
- data/Rakefile +14 -7
- data/lib/ardtweeno/api.rb +542 -0
- data/lib/ardtweeno/configreader.rb +65 -0
- data/lib/ardtweeno/db.rb +51 -0
- data/lib/ardtweeno/dispatcher.rb +538 -0
- data/lib/ardtweeno/exceptions.rb +33 -0
- data/lib/ardtweeno/node.rb +117 -0
- data/lib/ardtweeno/nodemanager.rb +300 -0
- data/lib/ardtweeno/packet.rb +98 -0
- data/lib/ardtweeno/restapi.rb +266 -0
- data/lib/ardtweeno/serialparser.rb +221 -0
- data/lib/ardtweeno.rb +120 -1
- data/public/glossy_green_button.svg +123 -0
- data/public/glossy_red_button.svg +75 -0
- data/public/main.css +129 -0
- data/public/raspberrypi.jpg +0 -0
- data/resources/conf.yaml +41 -0
- data/resources/nodelist.yaml +26 -0
- data/resources/serialparser.js +84 -0
- data/test/api_test.rb +255 -0
- data/test/dispatcher_test.rb +115 -0
- data/test/node_test.rb +105 -0
- data/test/nodemanager_test.rb +167 -0
- data/test/packet_test.rb +75 -0
- data/test/parser_test.rb +147 -0
- data/test/post_watch +11 -0
- data/test/rest_api_test.rb +248 -0
- data/test/run_mock +17 -0
- data/test/run_packet_push +14 -0
- data/test/serialport_mock.rb +43 -0
- data/test/test_helper.rb +15 -0
- data/test/tty0tty-1.1/AUTHORS +1 -0
- data/test/tty0tty-1.1/COPYING +340 -0
- data/test/tty0tty-1.1/INSTALL +18 -0
- data/test/tty0tty-1.1/README +52 -0
- data/test/tty0tty-1.1/THANKS +4 -0
- data/test/tty0tty-1.1/TODO +3 -0
- data/test/tty0tty-1.1/VERSION +4 -0
- data/test/tty0tty-1.1/module/Makefile +41 -0
- data/{bin/ardtweeno → test/tty0tty-1.1/module/Module.symvers} +0 -0
- data/test/tty0tty-1.1/module/modules.order +1 -0
- data/test/tty0tty-1.1/module/tty0tty.c +678 -0
- data/test/tty0tty-1.1/module/tty0tty.ko +0 -0
- data/test/tty0tty-1.1/module/tty0tty.mod.c +51 -0
- data/test/tty0tty-1.1/module/tty0tty.mod.o +0 -0
- data/test/tty0tty-1.1/module/tty0tty.o +0 -0
- data/test/tty0tty-1.1/pts/Makefile +10 -0
- data/test/tty0tty-1.1/pts/tty0tty +0 -0
- data/test/tty0tty-1.1/pts/tty0tty.c +222 -0
- data/views/createpost.erb +45 -0
- data/views/home.erb +59 -0
- metadata +89 -37
- data/README +0 -1
- data/test/Rakefile +0 -6
- data/test/features/ardtweeno.feature +0 -14
- data/test/features/step_definitions/ardtweeno_steps.rb +0 -24
data/test/node_test.rb
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'test/unit'
|
3
|
+
require 'rack/test'
|
4
|
+
require 'ardtweeno'
|
5
|
+
require 'logger'
|
6
|
+
require 'json'
|
7
|
+
|
8
|
+
ENV['RACK_ENV'] = 'test'
|
9
|
+
|
10
|
+
|
11
|
+
class NodeTest < Test::Unit::TestCase
|
12
|
+
|
13
|
+
include Rack::Test::Methods
|
14
|
+
|
15
|
+
attr_accessor :node
|
16
|
+
|
17
|
+
|
18
|
+
# Test suite fixtures
|
19
|
+
def setup
|
20
|
+
|
21
|
+
Ardtweeno.setup({:test=>true, :log=>Logger.new(STDOUT), :level=>Logger::DEBUG})
|
22
|
+
|
23
|
+
nodename = "node01"
|
24
|
+
nodekey = "0123456789abcdef"
|
25
|
+
|
26
|
+
@node = Ardtweeno::Node.new(nodename, nodekey, {:version=>"0.5.0"})
|
27
|
+
@packetArray = Array.new
|
28
|
+
|
29
|
+
# Create 20 packets and add to the node
|
30
|
+
20.times do |i|
|
31
|
+
newKey = "0123456789abcdef"
|
32
|
+
newData = [23.5, 997.8, 30]
|
33
|
+
newPacket = Ardtweeno::Packet.new(i, newKey, newData)
|
34
|
+
|
35
|
+
@packetArray << newPacket
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
# tear down the test fixtures between each test
|
42
|
+
def teardown
|
43
|
+
@node = nil
|
44
|
+
@packetArray = nil
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
# Test to ensure the Ardtweeno::Node#enqueue is working correctly
|
49
|
+
def test_enqueue
|
50
|
+
|
51
|
+
# Add the packets to the queue to test the enqueue method
|
52
|
+
begin
|
53
|
+
@packetArray.each {|i| @node.enqueue(i)}
|
54
|
+
rescue Exception => e
|
55
|
+
puts e.message
|
56
|
+
puts e.backtrace
|
57
|
+
end
|
58
|
+
|
59
|
+
# Test to ensure an attempt to queue an object other than an Ardtweeno::Node raises exception
|
60
|
+
assert_raise Ardtweeno::NotAPacket do
|
61
|
+
@node.enqueue(Hash.new)
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
# Test to ensure the Ardtweeno::Node#dequeue is working correctly
|
68
|
+
def test_dequeue
|
69
|
+
|
70
|
+
# Test to ensure an attempt to call dequeue on a Node with an empty list raises exception
|
71
|
+
assert_raise Ardtweeno::PacketListEmpty do
|
72
|
+
@node.dequeue
|
73
|
+
end
|
74
|
+
|
75
|
+
# Add the packets to the queue to test the enqueue method
|
76
|
+
begin
|
77
|
+
@packetArray.each {|i| @node.enqueue(i)}
|
78
|
+
rescue Exception => e
|
79
|
+
puts e.message
|
80
|
+
puts e.backtrace
|
81
|
+
end
|
82
|
+
|
83
|
+
# Ensure the packets dequeued are the same as the ones we enqueued
|
84
|
+
begin
|
85
|
+
@packetArray.each {|i| assert_equal(i, @node.dequeue)}
|
86
|
+
rescue Exception => e
|
87
|
+
puts e.message
|
88
|
+
puts e.backtrace
|
89
|
+
end
|
90
|
+
|
91
|
+
# Test to ensure an attempt to call dequeue on a Node with an empty list raises exception
|
92
|
+
assert_raise Ardtweeno::PacketListEmpty do
|
93
|
+
@node.dequeue
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
|
99
|
+
# Test to ensure the Ardtweeno::Node#to_s method is working correctly
|
100
|
+
def test_to_s
|
101
|
+
assert_equal(["node01, 0123456789abcdef, Default Description, 0.5.0, []", "[]"], @node.to_s)
|
102
|
+
end
|
103
|
+
|
104
|
+
|
105
|
+
end
|
@@ -0,0 +1,167 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'test/unit'
|
3
|
+
require 'rack/test'
|
4
|
+
require 'ardtweeno'
|
5
|
+
require 'logger'
|
6
|
+
require 'json'
|
7
|
+
|
8
|
+
ENV['RACK_ENV'] = 'test'
|
9
|
+
|
10
|
+
|
11
|
+
class NodeManagerTest < Test::Unit::TestCase
|
12
|
+
|
13
|
+
include Rack::Test::Methods
|
14
|
+
|
15
|
+
attr_accessor :dispatch
|
16
|
+
|
17
|
+
|
18
|
+
# Test suite fixtures
|
19
|
+
def setup
|
20
|
+
|
21
|
+
Ardtweeno.setup({:test=>true, :log=>Logger.new(STDOUT), :level=>Logger::DEBUG})
|
22
|
+
|
23
|
+
@init = Array.new
|
24
|
+
|
25
|
+
6.upto(10) do |i|
|
26
|
+
@init << Ardtweeno::Node.new("node#{i}", "abcdef#{i}")
|
27
|
+
end
|
28
|
+
|
29
|
+
@nodeList = Array.new
|
30
|
+
|
31
|
+
5.times do |i|
|
32
|
+
@nodeList << Ardtweeno::Node.new("node#{i}", "abcdef#{i}")
|
33
|
+
end
|
34
|
+
|
35
|
+
@nodemanager = Ardtweeno::NodeManager.new({:nodelist => @init})
|
36
|
+
|
37
|
+
@removeTest = Ardtweeno::Node.new("removetest", "testremove")
|
38
|
+
|
39
|
+
@watch = { :node=>@init[2], :notifyURL=> "http://example.org/",
|
40
|
+
:method=>"POST", :timeout=>"60" }
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
# tear down the test fixtures between each test
|
46
|
+
def teardown
|
47
|
+
@nodemanager = nil
|
48
|
+
@init = nil
|
49
|
+
@nodeList = nil
|
50
|
+
@removeTest = nil
|
51
|
+
@watch = nil
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
# Test to ensure the Ardtweeno::NodeManager#addNode method can successfully add
|
56
|
+
# an Ardtweeno::Node to the nodelist field.
|
57
|
+
def test_addNode
|
58
|
+
|
59
|
+
# Check to ensure each Node is successfully added to the system
|
60
|
+
@nodeList.each do |i|
|
61
|
+
assert_equal(true, @nodemanager.addNode(i))
|
62
|
+
end
|
63
|
+
|
64
|
+
finalArray = @init #+ @nodeList
|
65
|
+
# nodeList should contain the initial values and the ones we just added
|
66
|
+
assert_equal(finalArray, @nodemanager.nodeList)
|
67
|
+
|
68
|
+
# Test to ensure it will raise an exception if we try to add something other than an
|
69
|
+
# Ardtweeno::Node
|
70
|
+
assert_raise Ardtweeno::NotANode do
|
71
|
+
@nodemanager.addNode(Hash.new)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
# Test to ensure the Ardtweeno::NodeManager#removeNode can successfully find and then
|
77
|
+
# delete the specified Ardtweeno::Node from the managed nodeList
|
78
|
+
def test_remove
|
79
|
+
|
80
|
+
# Add the testNode
|
81
|
+
@nodemanager.addNode(@removeTest)
|
82
|
+
# Before the removal
|
83
|
+
assert_equal(6, @nodemanager.nodeList.size)
|
84
|
+
testNode = @nodemanager.removeNode({:node => "removetest"})
|
85
|
+
assert_equal(testNode, @removeTest)
|
86
|
+
# After the removal
|
87
|
+
assert_equal(5, @nodemanager.nodeList.size)
|
88
|
+
|
89
|
+
# Add the testNode
|
90
|
+
@nodemanager.addNode(@removeTest)
|
91
|
+
# Before the removal
|
92
|
+
assert_equal(6, @nodemanager.nodeList.size)
|
93
|
+
testNode = @nodemanager.removeNode({:key => "testremove"})
|
94
|
+
assert_equal(testNode, @removeTest)
|
95
|
+
# After the removal
|
96
|
+
assert_equal(5, @nodemanager.nodeList.size)
|
97
|
+
|
98
|
+
# Test to ensure a search for a node not in the list raises an exception
|
99
|
+
assert_raise Ardtweeno::NotInNodeList do
|
100
|
+
@nodemanager.search({})
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
104
|
+
|
105
|
+
|
106
|
+
# Test to ensure the Ardtweeno::NodeManager#search method can successfully find
|
107
|
+
# an Ardtweeno::Node in the nodeList
|
108
|
+
def test_search
|
109
|
+
|
110
|
+
# Search using key
|
111
|
+
@init.each do |i|
|
112
|
+
assert_equal(i, @nodemanager.search({:key => i.key}))
|
113
|
+
end
|
114
|
+
|
115
|
+
# Search using node name
|
116
|
+
@init.each do |i|
|
117
|
+
assert_equal(i, @nodemanager.search({:node => i.node}))
|
118
|
+
end
|
119
|
+
|
120
|
+
# Test to ensure a search for a node not in the list raises an exception
|
121
|
+
assert_raise Ardtweeno::NotInNodeList do
|
122
|
+
@nodemanager.search({:key => @nodeList[0].key})
|
123
|
+
end
|
124
|
+
|
125
|
+
# Test to ensure a search for a node not in the list raises an exception
|
126
|
+
assert_raise Ardtweeno::NotInNodeList do
|
127
|
+
@nodemanager.search({:node => @nodeList[0].node})
|
128
|
+
end
|
129
|
+
|
130
|
+
# Test to ensure a search for a node not in the list raises an exception
|
131
|
+
assert_raise Ardtweeno::NotInNodeList do
|
132
|
+
@nodemanager.search({})
|
133
|
+
end
|
134
|
+
|
135
|
+
end
|
136
|
+
|
137
|
+
|
138
|
+
# Test to ensure the watched? works correctly
|
139
|
+
def test_watched?
|
140
|
+
# Check to ensure they are all unwatched initially
|
141
|
+
@init.each do |i|
|
142
|
+
assert_equal(false, @nodemanager.watched?(i))
|
143
|
+
end
|
144
|
+
|
145
|
+
# Add a watch and retest
|
146
|
+
@nodemanager.addWatch({ :node=>"node6",
|
147
|
+
:notifyURL=>"http://example.com",
|
148
|
+
:timeout=>"60",
|
149
|
+
:method=>"POST"
|
150
|
+
})
|
151
|
+
|
152
|
+
assert_nothing_raised do
|
153
|
+
assert_equal(true, @nodemanager.watched?(@init[0]))
|
154
|
+
end
|
155
|
+
|
156
|
+
assert_nothing_raised do
|
157
|
+
@nodemanager.removeWatch("node6")
|
158
|
+
end
|
159
|
+
|
160
|
+
assert_nothing_raised do
|
161
|
+
assert_equal(false, @nodemanager.watched?(@init[0]))
|
162
|
+
end
|
163
|
+
|
164
|
+
end
|
165
|
+
|
166
|
+
|
167
|
+
end
|
data/test/packet_test.rb
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'test/unit'
|
3
|
+
require 'rack/test'
|
4
|
+
require 'ardtweeno'
|
5
|
+
require 'logger'
|
6
|
+
require 'json'
|
7
|
+
|
8
|
+
ENV['RACK_ENV'] = 'test'
|
9
|
+
|
10
|
+
|
11
|
+
class PacketTest < Test::Unit::TestCase
|
12
|
+
|
13
|
+
include Rack::Test::Methods
|
14
|
+
|
15
|
+
attr_accessor :packetArray
|
16
|
+
|
17
|
+
|
18
|
+
# Test suite fixtures, setup before each test is executed
|
19
|
+
def setup
|
20
|
+
|
21
|
+
Ardtweeno.setup({:test=>true, :log=>Logger.new(STDOUT), :level=>Logger::DEBUG})
|
22
|
+
|
23
|
+
# Create a DateTime instance
|
24
|
+
today = DateTime.now
|
25
|
+
@theDate = today.year.to_s() + "-" + "%02d" % today.month.to_s() + "-" + "%02d" % today.day.to_s()
|
26
|
+
@newHour = ("%02d" % today.hour).to_s
|
27
|
+
@newMinute = ("%02d" % today.min).to_s
|
28
|
+
|
29
|
+
# Instantiate the packetArray
|
30
|
+
@packetArray = Array.new
|
31
|
+
|
32
|
+
# Create 20 packets and add to the packetList
|
33
|
+
20.times do |i|
|
34
|
+
newKey = "0123456789abcdef"
|
35
|
+
newData = [23.5, 997.8, 30]
|
36
|
+
newPacket = Ardtweeno::Packet.new(i, newKey, newData)
|
37
|
+
|
38
|
+
@packetArray << newPacket
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
# tear down the test fixtures between each test
|
45
|
+
def teardown
|
46
|
+
@packetArray = nil
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
# Test the Ardtweeno::Packet#to_s method
|
51
|
+
def test_to_s
|
52
|
+
@packetArray.each do |i|
|
53
|
+
assert_equal(
|
54
|
+
"Packet No: #{i.seqNo} Key: 0123456789abcdef Node: defaultNode Date: #{@theDate} #{@newHour}:#{@newMinute} Data: [23.5, 997.8, 30]",
|
55
|
+
i.to_s
|
56
|
+
)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# Test the Ardtweeno::Packet#to_json method
|
61
|
+
def test_to_json
|
62
|
+
str = "{\"date\":\"#{@theDate}\",\"hour\":\"#{@newHour}\",\"minute\":\"#{@newMinute
|
63
|
+
}\",\"node\":\"defaultNode\",\"key\":\"0123456789abcdef\",\"seqNo\":0,\"data\":[23.5,997.8,30]}"
|
64
|
+
|
65
|
+
assert_equal(str, @packetArray.first.to_json)
|
66
|
+
|
67
|
+
# Create JSON objects and compare
|
68
|
+
json1 = JSON.parse(str)
|
69
|
+
json2 = JSON.parse(@packetArray.first.to_json)
|
70
|
+
|
71
|
+
assert_equal(json1, json2)
|
72
|
+
end
|
73
|
+
|
74
|
+
|
75
|
+
end
|
data/test/parser_test.rb
ADDED
@@ -0,0 +1,147 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'test/unit'
|
3
|
+
require 'rack/test'
|
4
|
+
require 'ardtweeno'
|
5
|
+
require 'logger'
|
6
|
+
require 'json'
|
7
|
+
|
8
|
+
ENV['RACK_ENV'] = 'test'
|
9
|
+
|
10
|
+
|
11
|
+
class ParserTest < Test::Unit::TestCase
|
12
|
+
|
13
|
+
include Rack::Test::Methods
|
14
|
+
|
15
|
+
attr_accessor :parser, :mock, :modem, :validdata, :invaliddata, :validdata_invalidnode, :thenode,
|
16
|
+
:themanager
|
17
|
+
|
18
|
+
|
19
|
+
# Test suite fixtures
|
20
|
+
def setup
|
21
|
+
|
22
|
+
Ardtweeno.setup({:test=>true, :log=>Logger.new(STDOUT), :level=>Logger::DEBUG})
|
23
|
+
|
24
|
+
@modem = fork do
|
25
|
+
Signal.trap("SIGTERM") { `killall tty0tty`; exit }
|
26
|
+
`test/tty0tty-1.1/pts/tty0tty`
|
27
|
+
end
|
28
|
+
|
29
|
+
sleep(1)
|
30
|
+
|
31
|
+
one = "/dev/pts/2"
|
32
|
+
two = "/dev/pts/3"
|
33
|
+
|
34
|
+
begin
|
35
|
+
@mock = SerialDeviceMock.new(one, 9600, 100)
|
36
|
+
@parser = Ardtweeno::SerialParser.new(two, 9600, 100)
|
37
|
+
rescue Exception => e
|
38
|
+
puts e.message
|
39
|
+
`killall tty0tty`
|
40
|
+
exit
|
41
|
+
end
|
42
|
+
|
43
|
+
@validdata = Ardtweeno::Packet.new(1, "abcvalidkey", [1,2,3])
|
44
|
+
@validdata_invalidnode = Ardtweeno::Packet.new(2, "abcinvalidkey", [1,2,3])
|
45
|
+
@invaliddata = {}
|
46
|
+
|
47
|
+
@thenode = Ardtweeno::Node.new("validnode", "abcvalidkey", {:sensors=>["a", "b", "c"]})
|
48
|
+
@themanager = Ardtweeno::NodeManager.new
|
49
|
+
@themanager.addNode(thenode)
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
# tear down the test fixtures between each test
|
55
|
+
def teardown
|
56
|
+
@validdata = nil
|
57
|
+
@validdata_invalidnode = nil
|
58
|
+
@invaliddata = nil
|
59
|
+
@themanager = nil
|
60
|
+
@thenode = nil
|
61
|
+
@mock.close
|
62
|
+
@parser.close
|
63
|
+
Process.kill("SIGTERM", @modem)
|
64
|
+
Process.wait
|
65
|
+
end
|
66
|
+
|
67
|
+
|
68
|
+
# Test Ardtweeno::SerialParser#store can store data correctly
|
69
|
+
def test_parser_store
|
70
|
+
|
71
|
+
# Valid data, with no NodeManager should raise Ardtweeno::ManagerNotDefined
|
72
|
+
assert_raise Ardtweeno::ManagerNotDefined do
|
73
|
+
@parser.store(@validdata)
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
# Now add the manager to the SerialParser
|
78
|
+
@parser.manager = @themanager
|
79
|
+
|
80
|
+
# Valid data, with valid NodeManager, but invalid node should raise Ardtweeno::NodeNotAuthorised
|
81
|
+
assert_raise Ardtweeno::NodeNotAuthorised do
|
82
|
+
@parser.store(@validdata_invalidnode)
|
83
|
+
end
|
84
|
+
|
85
|
+
# Valid data, with valid NodeManager, and valid node should store successfully
|
86
|
+
assert_equal(true, @parser.store(@validdata))
|
87
|
+
|
88
|
+
# Invalid data, should raise Ardtweeno::InvalidData exception
|
89
|
+
assert_raise Ardtweeno::InvalidData do
|
90
|
+
@parser.store(@invaliddata)
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
|
96
|
+
# Check Ardtweeno::SerialParser#write operates correctly
|
97
|
+
def test_parser_write
|
98
|
+
|
99
|
+
#Valid output
|
100
|
+
testData = {"seqNo" => 5, "data" => [23.5, 997.5, 65], "key" => "1234567890abcdef" }.to_json
|
101
|
+
assert_equal(true, @parser.write(testData))
|
102
|
+
val = @mock.read
|
103
|
+
assert_equal('{"seqNo":5,"data":[23.5,997.5,65],"key":"1234567890abcdef"}', val)
|
104
|
+
|
105
|
+
# Invalid Input
|
106
|
+
testData2 = '{seqNo:5,"data":[23.5,997.5,65],"key":"1234567890abcdef"}'
|
107
|
+
assert_equal(false, @parser.write(testData2))
|
108
|
+
|
109
|
+
end
|
110
|
+
|
111
|
+
|
112
|
+
# Check Ardtweeno::SerialParser#read can read data on serial device correctly
|
113
|
+
def test_parser_read
|
114
|
+
|
115
|
+
# Valid input
|
116
|
+
testData = {"seqNo" => 5, "data" => [23.5, 997.5, 65], "key" => "1234567890abcdef" }.to_json
|
117
|
+
@mock.write(testData)
|
118
|
+
val = @parser.read
|
119
|
+
assert_equal('{"seqNo":5,"data":[23.5,997.5,65],"key":"1234567890abcdef"}', val)
|
120
|
+
|
121
|
+
# Invalid Input
|
122
|
+
testData2 = '{seqNo:5,"data":[23.5,997.5,65],"key":"1234567890abcdef"}'
|
123
|
+
@mock.write(testData2)
|
124
|
+
val2 = @parser.read
|
125
|
+
assert_equal('{}', val2)
|
126
|
+
|
127
|
+
end
|
128
|
+
|
129
|
+
|
130
|
+
# Check Ardtweeno::SerialParser#valid_json? can validate JSON data correctly
|
131
|
+
def test_parser_validate_input
|
132
|
+
valid = '{"seqNo":5,"data":[23.5,997.5,65],"key":"1234567890abcdef"}'
|
133
|
+
assert_equal(true, Ardtweeno::SerialParser.valid_json?(valid))
|
134
|
+
|
135
|
+
invalid = '{seqNo:5,"data":[23.5,997.5,65],"key":"1234567890abcdef"}'
|
136
|
+
assert_equal(false, Ardtweeno::SerialParser.valid_json?(invalid))
|
137
|
+
end
|
138
|
+
|
139
|
+
|
140
|
+
# Check Ardtweeno::SerialParser#nextSeq returns unique values each call
|
141
|
+
def test_parser_next_seq
|
142
|
+
20.times do |i|
|
143
|
+
assert_equal(i, @parser.nextSeq)
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
end
|
data/test/post_watch
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'typhoeus'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
|
6
|
+
body = {:key=> "1230aea77d7bd38898fec74a75a87738dea9f657",
|
7
|
+
:notifyURL=>"",
|
8
|
+
:method=>"POST",
|
9
|
+
:timeout=>"60"}
|
10
|
+
|
11
|
+
puts Typhoeus::Request.post("http://localhost:4567/api/v1/watch/node2", :body=>body)
|