Skip to content

Commit 452f7f9

Browse files
authored
[tests] Changed JSON string assertions to data structure assertions #109
Closes #109
1 parent 59112bb commit 452f7f9

File tree

5 files changed

+66
-55
lines changed

5 files changed

+66
-55
lines changed

openwisp-monitoring/tests/test_dhcp.lua

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package.path = package.path ..
22
";../files/lib/openwisp-monitoring/?.lua;../files/sbin/?.lua"
33

4-
local dhcp_data = require('test_files/dhcp_data')
5-
4+
local cjson = require('cjson')
65
local luaunit = require('luaunit')
6+
local dhcp_data = require('test_files/dhcp_data')
77

88
TestDhcp = {
99
setUp = function()
@@ -69,11 +69,12 @@ function TestDhcp.test_dhcp_leases()
6969
end
7070

7171
function TestNetJSON.test_dhcp()
72-
local netjson = require('netjson-monitoring')
73-
luaunit.assertNotNil(string.find(netjson, '"mac":"e8:6a:64:3e:4a:3c"'))
74-
luaunit.assertNotNil(string.find(netjson, '"client_id":"01:e8:6a:64:3e:4a:3c"'))
75-
luaunit.assertNotNil(string.find(netjson, '"ip":"192.168.1.136"'))
76-
luaunit.assertNotNil(string.find(netjson, '"expiry":1620788343'))
72+
local netjson_string = require('netjson-monitoring')
73+
local netjson = cjson.decode(netjson_string)
74+
luaunit.assertEquals(netjson["dhcp_leases"][1]["mac"], "e8:6a:64:3e:4a:3c")
75+
luaunit.assertEquals(netjson["dhcp_leases"][1]["client_id"], "01:e8:6a:64:3e:4a:3c")
76+
luaunit.assertEquals(netjson["dhcp_leases"][1]["ip"], "192.168.1.136")
77+
luaunit.assertEquals(netjson["dhcp_leases"][1]["expiry"], 1620788343)
7778
end
7879

7980
os.exit(luaunit.LuaUnit.run())

openwisp-monitoring/tests/test_interfaces.lua

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -153,26 +153,32 @@ end
153153

154154
function TestNetJSON.test_interfaces()
155155
local netjson_file = assert(loadfile('../files/sbin/netjson-monitoring.lua'))
156-
local netjson = netjson_file('*')
157-
luaunit.assertNil(string.find(netjson, '"umts"', 1, true))
158-
luaunit.assertNotNil(string.find(netjson, '"address":"192.168.1.41"', 1, true))
159-
luaunit.assertNotNil(string.find(netjson, '"stp":true', 1, true))
160-
luaunit.assertNotNil(string.find(netjson,
161-
'"lte":{"snr":19.2,"rssi":-64,"rsrq":-9,"rsrp":-92}', 1, true))
162-
luaunit.assertNotNil(string.find(netjson, 'dns_servers":["8.8.8.8","8.8.4.4"]', 1,
163-
true))
156+
local netjson = cjson.decode(netjson_file('*'))
157+
luaunit.assertEquals(netjson["interfaces"][2]["mobile"]["signal"]["umts"], nil)
158+
luaunit.assertEquals(netjson["interfaces"][3]["addresses"][1]["address"],
159+
"192.168.1.41")
160+
luaunit.assertEquals(netjson["interfaces"][3]["stp"], true)
161+
luaunit.assertEquals(netjson["interfaces"][2]["mobile"]["signal"]["lte"]["snr"],
162+
19.2)
163+
luaunit.assertEquals(netjson["interfaces"][2]["mobile"]["signal"]["lte"]["rssi"],
164+
-64)
165+
luaunit.assertEquals(netjson["interfaces"][2]["mobile"]["signal"]["lte"]["rsrq"], -9)
166+
luaunit.assertEquals(netjson["interfaces"][2]["mobile"]["signal"]["lte"]["rsrp"],
167+
-92)
168+
luaunit.assertEquals(netjson["dns_servers"][1], "8.8.8.8")
169+
luaunit.assertEquals(netjson["dns_servers"][2], "8.8.4.4")
164170
end
165171

166172
function TestNetJSON.test_only_existing_bridge_members_add()
167173
local netjson_file = assert(loadfile('../files/sbin/netjson-monitoring.lua'))
168-
local netjson = netjson_file('*')
169-
luaunit.assertNotNil(string.find(netjson, '"bridge_members":["lan2"]', 1, true))
174+
local netjson = cjson.decode(netjson_file('*'))
175+
luaunit.assertEquals(netjson["interfaces"][3]["bridge_members"], {"lan2"})
170176
end
171177

172178
function TestNetJSON.test_only_existing_bridge_members_not_empty()
173179
local netjson_file = assert(loadfile('../files/sbin/netjson-monitoring.lua'))
174-
local netjson = netjson_file('*')
175-
luaunit.assertNil(string.find(netjson, '"bridge_members":{}', 1, true))
180+
local netjson = cjson.decode(netjson_file('*'))
181+
luaunit.assertNotEquals(netjson["interfaces"][3]["bridge_members"], {})
176182
end
177183

178184
function TestNetJSON.test_virtual_interface_type()

openwisp-monitoring/tests/test_neighbors.lua

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package.path = package.path ..
22
";../files/lib/openwisp-monitoring/?.lua;../files/sbin/?.lua"
33

44
local luaunit = require('luaunit')
5-
5+
local cjson = require('cjson')
66
local neighbor_data = require('test_files/neighbors_data')
77

88
TestNeighbor = {
@@ -54,12 +54,12 @@ function TestNetJSON.test_neighbors()
5454
open = function(arg) return nil end,
5555
write = function(...) return nil end
5656
}
57-
local netjson = require('netjson-monitoring')
57+
local netjson_string = require('netjson-monitoring')
58+
local netjson = cjson.decode(netjson_string)
5859
luaunit.assertNotNil(test_file_dir .. 'ip_neigh.txt')
59-
luaunit.assertNotNil(string.find(netjson, '"mac":"bc:0f:9a:17:5a:5c"'))
60-
luaunit.assertNotNil(string.find(netjson, '"ip":"fe80::bfca:28ed:f368:6cbc"'))
61-
luaunit.assertNotNil(string.find(netjson, '"interface":"eth1"'))
62-
60+
luaunit.assertEquals(netjson['neighbors'][3]["mac"], "bc:0f:9a:17:5a:5c")
61+
luaunit.assertNotNil(netjson['neighbors'][3]["ip"], "fe80::bfca:28ed:f368:6cbc")
62+
luaunit.assertEquals(netjson['neighbors'][1]["interface"], "eth1")
6363
end
6464

6565
os.exit(luaunit.LuaUnit.run())

openwisp-monitoring/tests/test_resources.lua

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package.path = package.path ..
22
";../files/lib/openwisp-monitoring/?.lua;../files/sbin/?.lua"
33

4+
local cjson = require('cjson')
45
local luaunit = require('luaunit')
5-
66
local resources_data = require('test_files/resources_data')
77

88
TestResources = {
@@ -58,11 +58,12 @@ function TestNetJSON.test_resources()
5858
open = function(arg) return nil end,
5959
write = function(...) return nil end
6060
}
61-
local netjson = require('netjson-monitoring')
61+
local netjson_string = require('netjson-monitoring')
62+
local netjson = cjson.decode(netjson_string)
6263
luaunit.assertNotNil(test_file_dir .. 'disk_usage.txt')
63-
luaunit.assertNotNil(string.find(netjson, '"cpus":8'))
64-
luaunit.assertNotNil(string.find(netjson, '"filesystem":"\\/dev\\/root"'))
65-
luaunit.assertNotNil(string.find(netjson, '"used_percent":25'))
64+
luaunit.assertEquals(netjson["resources"]["cpus"], 8)
65+
luaunit.assertEquals(netjson["resources"]["disk"][1]["filesystem"], "/dev/root")
66+
luaunit.assertEquals(netjson["resources"]["disk"][2]["used_percent"], 25)
6667
end
6768

6869
os.exit(luaunit.LuaUnit.run())

openwisp-monitoring/tests/test_wifi.lua

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
package.path = package.path ..
22
";../files/lib/openwisp-monitoring/?.lua;../files/sbin/?.lua"
33

4+
local cjson = require('cjson')
45
local wifi_data = require('test_files/wireless_data')
56
local luaunit = require('luaunit')
67
local wifi_functions = require('wifi')
78

8-
local function string_count(base, pattern)
9-
return select(2, string.gsub(base, pattern, ""))
10-
end
11-
129
TestWifi = {setUp = function() end, tearDown = function() end}
1310

1411
TestNetJSON = {
@@ -104,31 +101,37 @@ function TestWifi.test_invert_rx_tx()
104101
end
105102

106103
function TestNetJSON.test_wifi_interfaces()
107-
local netjson = require('netjson-monitoring')
108-
luaunit.assertNotNil(string.find(netjson, '"signal":-67', 1, true))
109-
luaunit.assertNotNil(string.find(netjson, '"signal":-76', 1, true))
110-
luaunit.assertEquals(string_count(netjson, '"ssid":"meshID"'), 2)
111-
luaunit.assertEquals(string_count(netjson, '"tx_power":20'), 4)
112-
luaunit.assertEquals(string_count(netjson, '"vht":true'), 1)
113-
luaunit.assertEquals(string_count(netjson, '"vht":false'), 1)
114-
luaunit.assertEquals(string_count(netjson, '"tx_power":20'), 4)
115-
luaunit.assertEquals(string_count(netjson, '"frequency":5200'), 1)
116-
luaunit.assertEquals(string_count(netjson, '"mode":"access_point"'), 1)
104+
local netjson_string = require('netjson-monitoring')
105+
local netjson = cjson.decode(netjson_string)
106+
luaunit.assertEquals(netjson["interfaces"][4]["wireless"]["signal"], -67)
107+
luaunit.assertEquals(netjson["interfaces"][1]["wireless"]["signal"], -76)
108+
luaunit.assertEquals(netjson["interfaces"][1]["wireless"]["ssid"], "meshID")
109+
luaunit.assertEquals(netjson["interfaces"][4]["wireless"]["ssid"], "meshID")
110+
luaunit.assertEquals(netjson["interfaces"][1]["wireless"]["tx_power"], 20)
111+
luaunit.assertEquals(netjson["interfaces"][3]["wireless"]["tx_power"], 20)
112+
luaunit.assertEquals(netjson["interfaces"][4]["wireless"]["tx_power"], 20)
113+
luaunit.assertEquals(netjson["interfaces"][5]["wireless"]["tx_power"], 20)
114+
luaunit.assertEquals(netjson["interfaces"][4]["wireless"]["clients"][1]["vht"], true)
115+
luaunit.assertEquals(netjson["interfaces"][1]["wireless"]["clients"][1]["vht"], false)
116+
luaunit.assertEquals(netjson["interfaces"][1]["wireless"]["frequency"], 5200)
117+
luaunit.assertEquals(netjson["interfaces"][3]["wireless"]["mode"], "access_point")
117118
end
118119

119120
function TestNetJSON.test_wifi_interfaces_stats_include()
120121
local netjson_file = assert(loadfile('../files/sbin/netjson-monitoring.lua'))
121-
local netjson = netjson_file('wlan0 wlan1 mesh1')
122-
luaunit.assertNotNil(string.find(netjson, '"channel":40', 1, true))
123-
luaunit.assertNotNil(string.find(netjson, '"mode":"802.11s"', 1, true))
124-
luaunit.assertNotNil(string.find(netjson, '"rx_packets":198', 1, true))
125-
luaunit.assertNotNil(string.find(netjson, '"rx_packets":2367515', 1, true))
126-
luaunit.assertNotNil(string.find(netjson, '"rx_bytes":25967', 1, true))
127-
luaunit.assertNotNil(string.find(netjson, '"tx_bytes":531641723', 1, true))
128-
luaunit.assertNotNil(string.find(netjson, '"tx_bytes":151599685066', 1, true))
129-
luaunit.assertNotNil(string.find(netjson, '"tx_packets":2367747', 1, true))
130-
luaunit.assertNotNil(string.find(netjson, '"tx_packets":2367747', 1, true))
131-
luaunit.assertEquals(string_count(netjson, '"tx_errors":0'), 3)
122+
local netjson = cjson.decode(netjson_file('wlan0 wlan1 mesh1'))
123+
luaunit.assertEquals(netjson["interfaces"][1]["wireless"]["channel"], 40)
124+
luaunit.assertEquals(netjson["interfaces"][1]["wireless"]["mode"], "802.11s")
125+
luaunit.assertEquals(netjson["interfaces"][5]["statistics"]["rx_packets"], 198)
126+
luaunit.assertEquals(netjson["interfaces"][3]["statistics"]["rx_packets"], 2367515)
127+
luaunit.assertEquals(netjson["interfaces"][5]["statistics"]["rx_bytes"], 25967)
128+
luaunit.assertEquals(netjson["interfaces"][5]["statistics"]["tx_bytes"], 531641723)
129+
luaunit.assertEquals(netjson["interfaces"][1]["statistics"]["tx_bytes"],
130+
151599685066)
131+
luaunit.assertEquals(netjson["interfaces"][5]["statistics"]["tx_packets"], 2367747)
132+
luaunit.assertEquals(netjson["interfaces"][1]["statistics"]["tx_errors"], 0)
133+
luaunit.assertEquals(netjson["interfaces"][3]["statistics"]["tx_errors"], 0)
134+
luaunit.assertEquals(netjson["interfaces"][5]["statistics"]["tx_errors"], 0)
132135
end
133136

134137
os.exit(luaunit.LuaUnit.run())

0 commit comments

Comments
 (0)