43 lines
1.9 KiB
Lua
43 lines
1.9 KiB
Lua
-- Kør: luajit tests/test_adFieldStorage.lua (fra repo-roden)
|
|
-- Lagringen skal dække HVERT felt modellen gemmer (FIELD_TYPES), og en mark skal overleve en tur gennem XML.
|
|
dofile("FS25_ADSmartPickup/adFieldModel.lua")
|
|
dofile("FS25_ADSmartPickup/adFieldStorage.lua")
|
|
local failures = 0
|
|
local function check(name, actual, expected)
|
|
if actual == expected then print("OK " .. name) else
|
|
failures = failures + 1
|
|
print(string.format("FAIL %s: forventede %s, fik %s", name, tostring(expected), tostring(actual)))
|
|
end
|
|
end
|
|
|
|
-- falsk XMLFile: gemmer værdier pr. nøgle
|
|
local function fakeXml()
|
|
local values = {}
|
|
local xml = {}
|
|
for _, kind in ipairs({"Int", "String", "Float"}) do
|
|
xml["set" .. kind] = function(_, key, value) values[key] = value end
|
|
xml["get" .. kind] = function(_, key) return values[key] end
|
|
end
|
|
return xml
|
|
end
|
|
|
|
local field = ADFieldModel.with(ADFieldModel.startCare(ADFieldModel.newField(77), "weeding"), {
|
|
kind = "harvest", lastFruit = "WHEAT", mowWidth = 40.8, mowVehicleId = "v1", rakeVehicleId = "v2", windrowOffset = -2.5,
|
|
plan = {mode = "auto", product = "harvest", rake = true, storeBuildingIds = {"b1"}, rigs = 3, unloaders = 2,
|
|
mulch = true, lime = false, soil = "plow", sow = true, sowFruit = "CANOLA", roll = true, fertilize = false, weed = false},
|
|
})
|
|
local record = ADFieldModel.toRecord(field)
|
|
for key in pairs(record) do
|
|
check("ST1 felt med i lagringen: " .. key, ADFieldStorage.FIELD_TYPES[key] ~= nil, true)
|
|
end
|
|
local xml = fakeXml()
|
|
ADFieldStorage.writeRecord(xml, "k", record)
|
|
local back = ADFieldModel.fromRecord(ADFieldStorage.readRecord(xml, "k"))
|
|
local again = ADFieldModel.toRecord(back)
|
|
for key, value in pairs(record) do
|
|
check("ST2 rundtur: " .. key, tostring(again[key]), tostring(value))
|
|
end
|
|
|
|
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
|
|
os.exit(failures == 0 and 0 or 1)
|