SyntaxGameServer/RCCService2018/content/LuaPackages/AppTempCommon/LuaApp/TableUtilities.spec.lua

156 lines
4.1 KiB
Lua

return function()
local TableUtilities = require(script.Parent.TableUtilities)
it("should return whether tables are equal to each other", function()
local tableA = nil
local tableB = nil
expect(TableUtilities.ShallowEqual(tableA, tableB)).to.equal(false)
tableA = nil
tableB = {}
expect(TableUtilities.ShallowEqual(tableA, tableB)).to.equal(false)
tableA = {}
tableB = nil
expect(TableUtilities.ShallowEqual(tableA, tableB)).to.equal(false)
tableA = {}
tableB = {}
expect(TableUtilities.ShallowEqual(tableA, tableB)).to.equal(true)
tableA = {
key1 = "value1",
}
tableB = {
key1 = "value1",
}
expect(TableUtilities.ShallowEqual(tableA, tableB)).to.equal(true)
tableA = {
key1 = "value1",
}
tableB = {
key1 = "value2",
}
expect(TableUtilities.ShallowEqual(tableA, tableB)).to.equal(false)
tableA = {
key1 = "value1",
}
tableB = {
key2 = "value1",
}
expect(TableUtilities.ShallowEqual(tableA, tableB)).to.equal(false)
tableA = {
key1 = "value1",
}
tableB = {
key2 = "value2",
}
expect(TableUtilities.ShallowEqual(tableA, tableB)).to.equal(false)
tableA = {
key1 = "value1",
}
tableB = {
key1 = "value1",
key2 = "value2",
}
expect(TableUtilities.ShallowEqual(tableA, tableB)).to.equal(false)
end)
it("should return whether tables are equal to each other at key", function()
local tableA = nil
local tableB = nil
expect(TableUtilities.EqualKey(tableA, tableB)).to.equal(false)
expect(TableUtilities.EqualKey(tableA, tableB, "")).to.equal(false)
expect(TableUtilities.EqualKey(tableA, tableB, "key1")).to.equal(false)
tableA = nil
tableB = {}
expect(TableUtilities.EqualKey(tableA, tableB)).to.equal(false)
expect(TableUtilities.EqualKey(tableA, tableB, "")).to.equal(false)
expect(TableUtilities.EqualKey(tableA, tableB, "key1")).to.equal(false)
tableA = {}
tableB = nil
expect(TableUtilities.EqualKey(tableA, tableB)).to.equal(false)
expect(TableUtilities.EqualKey(tableA, tableB, "")).to.equal(false)
expect(TableUtilities.EqualKey(tableA, tableB, "key1")).to.equal(false)
tableA = {}
tableB = {}
expect(TableUtilities.EqualKey(tableA, tableB)).to.equal(false)
expect(TableUtilities.EqualKey(tableA, tableB, "")).to.equal(false)
expect(TableUtilities.EqualKey(tableA, tableB, "key1")).to.equal(false)
tableA = {
key1 = "value1",
}
tableB = {
key1 = "value1",
}
expect(TableUtilities.EqualKey(tableA, tableB)).to.equal(false)
expect(TableUtilities.EqualKey(tableA, tableB, "")).to.equal(false)
expect(TableUtilities.EqualKey(tableA, tableB, "key1")).to.equal(true)
tableA = {
key1 = "value1",
}
tableB = {
key1 = "value2",
}
expect(TableUtilities.EqualKey(tableA, tableB)).to.equal(false)
expect(TableUtilities.EqualKey(tableA, tableB, "")).to.equal(false)
expect(TableUtilities.EqualKey(tableA, tableB, "key1")).to.equal(false)
tableA = {
key1 = "value1",
}
tableB = {
key2 = "value1",
}
expect(TableUtilities.EqualKey(tableA, tableB)).to.equal(false)
expect(TableUtilities.EqualKey(tableA, tableB, "")).to.equal(false)
expect(TableUtilities.EqualKey(tableA, tableB, "key1")).to.equal(false)
tableA = {
key1 = "value1",
}
tableB = {
key2 = "value2",
}
expect(TableUtilities.EqualKey(tableA, tableB)).to.equal(false)
expect(TableUtilities.EqualKey(tableA, tableB, "")).to.equal(false)
expect(TableUtilities.EqualKey(tableA, tableB, "key1")).to.equal(false)
tableA = {
key1 = "value1",
}
tableB = {
key1 = "value1",
key2 = "value2",
}
expect(TableUtilities.EqualKey(tableA, tableB)).to.equal(false)
expect(TableUtilities.EqualKey(tableA, tableB, "")).to.equal(false)
expect(TableUtilities.EqualKey(tableA, tableB, "key1")).to.equal(true)
expect(TableUtilities.EqualKey(tableA, tableB, "key2")).to.equal(false)
end)
it("should return table's field count", function()
local table = {}
expect(TableUtilities.FieldCount(table)).to.equal(0)
table = {
key1 = "value1",
}
expect(TableUtilities.FieldCount(table)).to.equal(1)
table = {
key1 = "value1",
key2 = "value2",
}
expect(TableUtilities.FieldCount(table)).to.equal(2)
end)
end