feat: run-model v3 — bygninger som kilder/mål (sourceBuildingIds/targetBuildingIds), XML v3
This commit is contained in:
+41
-2
@@ -157,7 +157,7 @@ end
|
||||
-- X1: records skrives som attributter + vehicle-underelementer
|
||||
local out = makeXmlMock()
|
||||
ADRunsStorage.writeRecords(out, ADRuns.toRecords(s5))
|
||||
check("X1 version", out.values["ADSmartPickupRuns#version"], 2)
|
||||
check("X1 version", out.values["ADSmartPickupRuns#version"], 3)
|
||||
check("X1 run 0 navn", out.values["ADSmartPickupRuns.run(0)#name"], "Cow 1")
|
||||
check("X1 run 0 target", out.values["ADSmartPickupRuns.run(0)#target"], 94)
|
||||
check("X1 run 0 varer", out.values["ADSmartPickupRuns.run(0)#ingredients"], "STRAW FORAGE")
|
||||
@@ -243,7 +243,7 @@ do
|
||||
end,
|
||||
}
|
||||
ADRunsStorage.writeRecords(xml, ADRuns.toRecords(o4))
|
||||
check("Rv2 xml version 2", written["ADSmartPickupRuns#version"], 2)
|
||||
check("Rv2 xml version 2", written["ADSmartPickupRuns#version"], 3)
|
||||
check("Rv2 xml kind", written["ADSmartPickupRuns.run(0)#kind"], "outbound")
|
||||
check("Rv2 xml sources", written["ADSmartPickupRuns.run(0)#sources"], "12694 12386")
|
||||
check("Rv2 xml products", written["ADSmartPickupRuns.run(0)#products"], "SUGAR:sell FORAGE:store")
|
||||
@@ -253,5 +253,44 @@ do
|
||||
check("Rv2 xml læs runde", ADRuns.getRun(back, out.id).collectRound, true)
|
||||
end
|
||||
|
||||
-- R-v3: bygninger som kilder/mål (id-lister); XML v3; v2-fil uden bygninger giver tomme lister
|
||||
local b1, flow = ADRuns.createRun(ADRuns.newStore(), "Milk", "outbound")
|
||||
check("Rv3 tomme kilde-bygninger", #flow.sourceBuildingIds, 0)
|
||||
check("Rv3 tomme mål-bygninger", #flow.targetBuildingIds, 0)
|
||||
local b2 = ADRuns.toggleSourceBuilding(b1, flow.id, "barn1")
|
||||
b2 = ADRuns.toggleSourceBuilding(b2, flow.id, "barn2")
|
||||
check("Rv3 to kilde-bygninger", table.concat(ADRuns.getRun(b2, flow.id).sourceBuildingIds, ","), "barn1,barn2")
|
||||
check("Rv3 toggle fjerner", #ADRuns.getRun(ADRuns.toggleSourceBuilding(b2, flow.id, "barn1"), flow.id).sourceBuildingIds, 1)
|
||||
local b3 = ADRuns.toggleTargetBuilding(b2, flow.id, "mill")
|
||||
check("Rv3 mål-bygning", ADRuns.getRun(b3, flow.id).targetBuildingIds[1], "mill")
|
||||
check("Rv3 gammel store urørt", #ADRuns.getRun(b2, flow.id).targetBuildingIds, 0)
|
||||
local b4 = ADRuns.updateRun(b3, flow.id, {sourceBuildingIds = {"shed"}, targetBuildingIds = {}})
|
||||
check("Rv3 updateRun sætter lister", ADRuns.getRun(b4, flow.id).sourceBuildingIds[1], "shed")
|
||||
check("Rv3 updateRun tømmer", #ADRuns.getRun(b4, flow.id).targetBuildingIds, 0)
|
||||
local rt3 = ADRuns.fromRecords(ADRuns.toRecords(b3))
|
||||
check("Rv3 roundtrip kilder", table.concat(ADRuns.getRun(rt3, flow.id).sourceBuildingIds, ","), "barn1,barn2")
|
||||
check("Rv3 roundtrip mål", ADRuns.getRun(rt3, flow.id).targetBuildingIds[1], "mill")
|
||||
check("Rv3 XML_VERSION", ADRuns.XML_VERSION, 3)
|
||||
local v2 = ADRuns.fromRecords({{id = 3, name = "V2", kind = "outbound", sources = "12694", products = "SUGAR:sell", vehicleIds = {}}})
|
||||
check("Rv3 v2 rå markør bevares", ADRuns.getRun(v2, 3).sourceWayPointIds[1], 12694)
|
||||
check("Rv3 v2 ingen bygninger", #ADRuns.getRun(v2, 3).sourceBuildingIds, 0)
|
||||
do
|
||||
local written = {}
|
||||
local xml = {
|
||||
setInt = function(_, k, v) written[k] = v end, setString = function(_, k, v) written[k] = v end,
|
||||
getInt = function(_, k) return written[k] end, getString = function(_, k) return written[k] end,
|
||||
iterate = function(_, prefix, fn)
|
||||
local i = 0
|
||||
while written[string.format("%s(%d)#id", prefix, i)] ~= nil do fn(i, string.format("%s(%d)", prefix, i)); i = i + 1 end
|
||||
end,
|
||||
}
|
||||
ADRunsStorage.writeRecords(xml, ADRuns.toRecords(b3))
|
||||
check("Rv3 xml version 3", written["ADSmartPickupRuns#version"], 3)
|
||||
check("Rv3 xml sourceBuildings", written["ADSmartPickupRuns.run(0)#sourceBuildings"], "barn1 barn2")
|
||||
check("Rv3 xml targetBuildings", written["ADSmartPickupRuns.run(0)#targetBuildings"], "mill")
|
||||
local back = ADRuns.fromRecords(ADRunsStorage.readRecords(xml))
|
||||
check("Rv3 xml læs kilder", table.concat(ADRuns.getRun(back, flow.id).sourceBuildingIds, ","), "barn1,barn2")
|
||||
end
|
||||
|
||||
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
|
||||
os.exit(failures == 0 and 0 or 1)
|
||||
|
||||
Reference in New Issue
Block a user