-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.lua
executable file
·90 lines (87 loc) · 3.4 KB
/
test.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/usr/bin/env lua
local xml = require("xml").newParser()
local testXml = '<testOne param="param1value">'
testXml = testXml .. '<testTwo paramTwo="param2value">'
testXml = testXml .. '<testThree>'
testXml = testXml .. 'testThreeValue'
testXml = testXml .. '</testThree>'
testXml = testXml .. '<testThree duplicate="one" duplicate="two">'
testXml = testXml .. 'testThreeValueTwo'
testXml = testXml .. '</testThree>'
testXml = testXml .. '<test_Four something="else">'
testXml = testXml .. 'testFourValue'
testXml = testXml .. '</test_Four>'
testXml = testXml .. '<testFive>'
testXml = testXml .. '<testFiveDeep>'
testXml = testXml .. '<testFiveEvenDeeper>'
testXml = testXml .. '<testSix someParam="someValue"/>'
testXml = testXml .. '</testFiveEvenDeeper>'
testXml = testXml .. '</testFiveDeep>'
testXml = testXml .. '</testFive>'
testXml = testXml .. 'testTwoValue'
testXml = testXml .. '</testTwo>'
testXml = testXml .. '</testOne>'
local parsedXml = xml:ParseXmlText(testXml)
if parsedXml.testOne == nil then error("Node not created")
elseif parsedXml.testOne:name() ~= "testOne" then
error("Node name not set")
elseif parsedXml.testOne.testTwo == nil then
error("Child node not created")
elseif parsedXml.testOne.testTwo:name() ~= "testTwo" then
error("Child node name not set")
elseif parsedXml.testOne.testTwo:value() ~= "testTwoValue" then
error("Node value not set")
elseif parsedXml.testOne.testTwo.test_Four:value() ~= "testFourValue" then
error("Second child node value not set")
elseif parsedXml.testOne["@param"] ~= "param1value" then
error("Parameter not set")
elseif parsedXml.testOne.testTwo["@paramTwo"] ~= "param2value" then
error("Second child node parameter not set")
elseif parsedXml.testOne.testTwo.test_Four["@something"] ~= "else" then
error("Deepest node parameter not set")
end
-- duplicate names tests
if parsedXml.testOne.testTwo.testThree[1]:value() ~= "testThreeValue" then
error("First of duplicate nodes value not set")
elseif parsedXml.testOne.testTwo.testThree[2]:value() ~= "testThreeValueTwo" then
error("Second of duplicate nodes value not set")
elseif parsedXml.testOne.testTwo.testThree[2]["@duplicate"][1] ~= "one" then
error("First of duplicate parameters not set")
elseif parsedXml.testOne.testTwo.testThree[2]["@duplicate"][2] ~= "two" then
error("Second of duplicate parameters not set")
end
-- deep element test
if parsedXml.testOne.testTwo.testFive.testFiveDeep.testFiveEvenDeeper.testSix['@someParam'] ~= "someValue" then
error("Deep test error")
end
-- node functions test
local node = require("xml"):newNode("testName")
if node:name() ~= "testName" then
error("Node creation failed")
end
node:setName("nameTest")
if node:name() ~= "nameTest" then
error("Name function test failed")
end
node:setValue("valueTest")
if node:value() ~= "valueTest" then
error("Value function test failed")
end
local childNode = require("xml"):newNode("parent")
node:addChild(childNode)
if type(node:children()) ~= "table" then
error("children function test failed")
elseif #node:children() ~= 1 then
error("AddChild function test failed")
elseif node:numChildren() ~= 1 then
error("numChildren function test failed")
end
node:addProperty("name", "value")
if type(node:properties()) ~= "table" then
error("properties function test failed")
elseif #node:properties() ~= 1 then
error("Add property function test failed")
elseif node:numProperties() ~= 1 then
error("Num properties function test failed")
end
print("Tests passed")