You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

108 lines
3.0 KiB

local ssl = require("openssl")
local Serialization = loadfile("Core/Serialization.lua")("Rarity", {})
local testImportString =
"AzFkA/8CalRhm6TZlHITUfiFqLhNpZ1iL+xG5SeiyjBSvynVUAkxHKGDEuqY6pzSQolaiipaTFTLEfRQQnpKsgzpOZGJqEpTEZlMlOmKi4iSZ4TrCGxEVLVZIg5T8hlV8liCaSjOo0pdQ+kyxWiJNB5R6SSq6htVp6m4h6pYiShaiyg1TmocJChnjCuBhBwkKEMu0U44KEPZLGmKZ4xLHAnRUOO4BjkURyxIICFHvvpnEYp89V8Rgbx91RphkG8VoiIs8tXbAqnI23f1iEe+gmEE0sjb9wWyyLuyP3KNvGsvRX7kvV4wyCnyffuKXCBf9u2RM8hX/wEeOYu8K9MCeUXelV2K3CPver3IG3kvy3rki7zXCwahGvmepQxCj7wrFYtQiry3BYNQgXypYBiEMshXa78IZZF33bMIrcjbr/YI9ci7VtEIbeQrGIYidJG3Z3cRoZG3X92IOPL2VVNEUOTddQUiBPKurF5EMMh36TYiWORLhT8iKvKuvgUiPPIVVFBENPL27DYGqlBqcQWDXGsNRWiIxhpLbjOQQxnOktuMDGWo4U00UPwkssiAMpwlt5lijrMTcAXjGm4klKFk1hgJJIRqSk/1ggRlzRiXOBLiGQxCNRWa/iBBjeMa5FDWjHGJIyEUg4FyXKKdcCCHcjhpLK5g+DolJU6BwDaOkUBCNMoYqBI7ASeDHIqzXANFtW7WQ7lmSu0yqBQpCmXNGJc4EkKhSu02R2bx5mlch5MZQpShJCNJjp0DCcqaMS5xJOQYKGeMyy9DqNbNegwGSnJ4cdYQEBoonuTz0yJ8GR7k8SBThxte/FyBHLKL+fCBkhM4Nhni3xj/Ag=="
local testItemEntry = {
build = 718,
items = {
{
attempts = 2,
chance = 1000,
dates = {
[20221209] = {
attempts = 74,
},
[20230211] = {
attempts = 2,
time = 1,
},
},
enableAnnouncements = true,
enabled = true,
export = true,
found = false,
holidayReminder = true,
import = false,
instanceDifficulties = {
[0] = true,
},
itemId = 200857,
lastAttempts = 0,
method = "NPC",
name = "200857",
npcs = {
190115,
190116,
187600,
196336,
190983,
187867,
193443,
187813,
186511,
186892,
189734,
191876,
195187,
190117,
186483,
186592,
186109,
189557,
189734,
191524,
186239,
189834,
192344,
190079,
186915,
187907,
186638,
193442,
187599,
187908,
187602,
188693,
186509,
199298,
192371,
186783,
193232,
187598,
},
repeatable = false,
session = {
attempts = 1,
},
time = 1,
type = "ITEM",
},
},
signature = "RFI2PD4jOjJ0NntgInc/ZA==",
}
describe("Serialization", function()
describe("DecodeBase64", function()
it("should return the original input if a valid Base64-encoded string was passed", function()
local decodedItemString = Serialization:DecodeBase64(testImportString)
assertEquals(decodedItemString, ssl.base64(testImportString, false))
end)
end)
describe("EncodeBase64", function()
it("should return the Base64-encoded representation of the input string", function()
local encodedString = Serialization:EncodeBase64("Hello world!")
assertEquals(encodedString, ssl.base64("Hello world!", true))
end)
end)
describe("DeserializeItemString", function()
it("should return a complete item entry if a valid import string was passed", function()
local actualResult = Serialization:DeserializeItemString(testImportString)
assertEquals(actualResult, testItemEntry)
end)
end)
end)