aboutsummaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorPeter Melnichenko <mpeterval@gmail.com>2016-10-06 16:24:55 +0300
committerPeter Melnichenko <mpeterval@gmail.com>2016-10-06 16:24:55 +0300
commitadcba81974979be3763c8d9d46eb2de9a88ff67c (patch)
tree78fa304ec7d46ee290f7335a6c0acb28abefbf82 /spec
parent5f3b2b79bbba5de0a571188c08b42a213aac772f (diff)
downloadluarocks-adcba81974979be3763c8d9d46eb2de9a88ff67c.tar.gz
luarocks-adcba81974979be3763c8d9d46eb2de9a88ff67c.tar.bz2
luarocks-adcba81974979be3763c8d9d46eb2de9a88ff67c.zip
Add tests for util.sortedpairs
Diffstat (limited to 'spec')
-rw-r--r--spec/util_spec.lua56
1 files changed, 56 insertions, 0 deletions
diff --git a/spec/util_spec.lua b/spec/util_spec.lua
index e6776e4b..2779b1ce 100644
--- a/spec/util_spec.lua
+++ b/spec/util_spec.lua
@@ -116,3 +116,59 @@ describe("Basic tests #blackbox #b_util", function()
116 end) 116 end)
117 end) 117 end)
118end) 118end)
119
120test_env.unload_luarocks()
121local util = require("luarocks.util")
122
123describe("Luarocks util test #whitebox #w_util", function()
124 describe("util.sortedpairs", function()
125 local function collect(iter, state, var)
126 local collected = {}
127
128 while true do
129 local returns = {iter(state, var)}
130
131 if returns[1] == nil then
132 return collected
133 else
134 table.insert(collected, returns)
135 var = returns[1]
136 end
137 end
138 end
139
140 it("default sort", function()
141 assert.are.same({}, collect(util.sortedpairs({})))
142 assert.are.same({
143 {1, "v1"},
144 {2, "v2"},
145 {3, "v3"},
146 {"bar", "v5"},
147 {"foo", "v4"}
148 }, collect(util.sortedpairs({"v1", "v2", "v3", foo = "v4", bar = "v5"})))
149 end)
150
151 it("sort by function", function()
152 local function compare(a, b) return a > b end
153 assert.are.same({}, collect(util.sortedpairs({}, compare)))
154 assert.are.same({
155 {3, "v3"},
156 {2, "v2"},
157 {1, "v1"}
158 }, collect(util.sortedpairs({"v1", "v2", "v3"}, compare)))
159 end)
160
161 it("sort by priority table", function()
162 assert.are.same({}, collect(util.sortedpairs({}, {"k1", "k2"})))
163 assert.are.same({
164 {"k3", "v3"},
165 {"k2", "v2", {"sub order"}},
166 {"k1", "v1"},
167 {"k4", "v4"},
168 {"k5", "v5"},
169 }, collect(util.sortedpairs({
170 k1 = "v1", k2 = "v2", k3 = "v3", k4 = "v4", k5 = "v5"
171 }, {"k3", {"k2", {"sub order"}}, "k1"})))
172 end)
173 end)
174end)