-- 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)