Differential D2056 Diff 9065 binaries/data/mods/public/simulation/components/tests/test_GarrisonHolder.js
Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/simulation/components/tests/test_GarrisonHolder.js
Show All 9 Lines | |||||
Engine.LoadComponentScript("interfaces/TechnologyManager.js"); | Engine.LoadComponentScript("interfaces/TechnologyManager.js"); | ||||
Engine.LoadComponentScript("interfaces/Timer.js"); | Engine.LoadComponentScript("interfaces/Timer.js"); | ||||
Engine.LoadComponentScript("interfaces/UnitAI.js"); | Engine.LoadComponentScript("interfaces/UnitAI.js"); | ||||
const garrisonedEntitiesList = [25, 26, 27, 28, 29, 30, 31, 32, 33]; | const garrisonedEntitiesList = [25, 26, 27, 28, 29, 30, 31, 32, 33]; | ||||
const garrisonHolderId = 15; | const garrisonHolderId = 15; | ||||
const unitToGarrisonId = 24; | const unitToGarrisonId = 24; | ||||
const enemyUnitId = 34; | const enemyUnitId = 34; | ||||
const largeUnitId = 35; | |||||
const player = 1; | const player = 1; | ||||
const friendlyPlayer = 2; | const friendlyPlayer = 2; | ||||
const enemyPlayer = 3; | const enemyPlayer = 3; | ||||
AddMock(garrisonHolderId, IID_Footprint, { | AddMock(garrisonHolderId, IID_Footprint, { | ||||
"PickSpawnPointBothPass": entity => new Vector3D(4, 3, 30), | "PickSpawnPointBothPass": entity => new Vector3D(4, 3, 30), | ||||
"PickSpawnPoint": entity => new Vector3D(4, 3, 30) | "PickSpawnPoint": entity => new Vector3D(4, 3, 30) | ||||
}); | }); | ||||
Show All 22 Lines | |||||
AddMock(SYSTEM_ENTITY, IID_Timer, { | AddMock(SYSTEM_ENTITY, IID_Timer, { | ||||
"SetTimeout": (ent, iid, funcname, time, data) => 1 | "SetTimeout": (ent, iid, funcname, time, data) => 1 | ||||
}); | }); | ||||
AddMock(SYSTEM_ENTITY, IID_PlayerManager, { | AddMock(SYSTEM_ENTITY, IID_PlayerManager, { | ||||
"GetPlayerByID": id => id | "GetPlayerByID": id => id | ||||
}); | }); | ||||
for (let i = 24; i <= 34; ++i) | for (let i = 24; i <= 35; ++i) | ||||
{ | { | ||||
AddMock(i, IID_Identity, { | AddMock(i, IID_Identity, { | ||||
"GetClassesList": () => "Infantry+Cavalry", | "GetClassesList": () => "Infantry+Cavalry", | ||||
"GetSelectionGroupName": () => "mace_infantry_archer_a" | "GetSelectionGroupName": () => "mace_infantry_archer_a" | ||||
}); | }); | ||||
if (i < 28) | if (i < 28) | ||||
AddMock(i, IID_Ownership, { | AddMock(i, IID_Ownership, { | ||||
"GetOwner": () => player | "GetOwner": () => player | ||||
}); | }); | ||||
else if (i == 34) | else if (i == 34) | ||||
AddMock(i, IID_Ownership, { | AddMock(i, IID_Ownership, { | ||||
"GetOwner": () => enemyPlayer | "GetOwner": () => enemyPlayer | ||||
}); | }); | ||||
else | else | ||||
AddMock(i, IID_Ownership, { | AddMock(i, IID_Ownership, { | ||||
"GetOwner": () => friendlyPlayer | "GetOwner": () => friendlyPlayer | ||||
}); | }); | ||||
AddMock(i, IID_Garrisonable, {}); | if (i == 35) | ||||
AddMock(i, IID_Garrisonable, { | |||||
"GetSize": () => 9 | |||||
}); | |||||
else | |||||
AddMock(i, IID_Garrisonable, { | |||||
"GetSize": () => 1 | |||||
}); | |||||
AddMock(i, IID_Position, { | AddMock(i, IID_Position, { | ||||
"GetHeightOffset": () => 0, | "GetHeightOffset": () => 0, | ||||
"GetPosition": () => new Vector3D(4, 3, 25), | "GetPosition": () => new Vector3D(4, 3, 25), | ||||
"GetRotation": () => new Vector3D(4, 0, 6), | "GetRotation": () => new Vector3D(4, 0, 6), | ||||
"GetTurretParent": () => INVALID_ENTITY, | "GetTurretParent": () => INVALID_ENTITY, | ||||
"IsInWorld": () => true, | "IsInWorld": () => true, | ||||
"JumpTo": (posX, posZ) => {}, | "JumpTo": (posX, posZ) => {}, | ||||
▲ Show 20 Lines • Show All 45 Lines • ▼ Show 20 Lines | |||||
TS_ASSERT_UNEVAL_EQUALS(cmpGarrisonHolder.GetAllowedClasses(), "Infantry+Cavalry"); | TS_ASSERT_UNEVAL_EQUALS(cmpGarrisonHolder.GetAllowedClasses(), "Infantry+Cavalry"); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.GetCapacity(), 10); | TS_ASSERT_EQUALS(cmpGarrisonHolder.GetCapacity(), 10); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.GetGarrisonedEntitiesCount(), 0); | TS_ASSERT_EQUALS(cmpGarrisonHolder.GetGarrisonedEntitiesCount(), 0); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.CanPickup(unitToGarrisonId), false); | TS_ASSERT_EQUALS(cmpGarrisonHolder.CanPickup(unitToGarrisonId), false); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.CanPickup(enemyUnitId), false); | TS_ASSERT_EQUALS(cmpGarrisonHolder.CanPickup(enemyUnitId), false); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.IsFull(), false); | TS_ASSERT_EQUALS(cmpGarrisonHolder.IsFull(), false); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.IsAllowedToGarrison(enemyUnitId), false); | TS_ASSERT_EQUALS(cmpGarrisonHolder.IsAllowedToGarrison(enemyUnitId), false); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.IsAllowedToGarrison(largeUnitId), true); | |||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.IsAllowedToGarrison(unitToGarrisonId), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.IsAllowedToGarrison(unitToGarrisonId), true); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.HasEnoughHealth(), false); | TS_ASSERT_EQUALS(cmpGarrisonHolder.HasEnoughHealth(), false); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.PerformGarrison(unitToGarrisonId), false); | TS_ASSERT_EQUALS(cmpGarrisonHolder.PerformGarrison(unitToGarrisonId), false); | ||||
AddMock(garrisonHolderId, IID_Health, { | AddMock(garrisonHolderId, IID_Health, { | ||||
"GetHitpoints": () => 600, | "GetHitpoints": () => 600, | ||||
"GetMaxHitpoints": () => 600 | "GetMaxHitpoints": () => 600 | ||||
}); | }); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.HasEnoughHealth(), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.HasEnoughHealth(), true); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(enemyUnitId), false); | TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(enemyUnitId), false); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(unitToGarrisonId), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(unitToGarrisonId), true); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(largeUnitId), true); | |||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.IsFull(), true); | |||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.Eject(largeUnitId), true); | |||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.Eject(unitToGarrisonId), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.Eject(unitToGarrisonId), true); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(unitToGarrisonId), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(unitToGarrisonId), true); | ||||
for (let entity of garrisonedEntitiesList) | for (let entity of garrisonedEntitiesList) | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(entity), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(entity), true); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(largeUnitId), false); | |||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.IsFull(), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.IsFull(), true); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.CanPickup(unitToGarrisonId), false); | TS_ASSERT_EQUALS(cmpGarrisonHolder.CanPickup(unitToGarrisonId), false); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.UnloadTemplate("spart_infantry_archer_a", 2, false, false), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.UnloadTemplate("spart_infantry_archer_a", 2, false, false), true); | ||||
TS_ASSERT_UNEVAL_EQUALS(cmpGarrisonHolder.GetEntities(), [24, 25, 26, 27, 28, 29, 30, 31, 32]); | TS_ASSERT_UNEVAL_EQUALS(cmpGarrisonHolder.GetEntities(), [24, 25, 26, 27, 28, 29, 30, 31, 32]); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.UnloadAllByOwner(friendlyPlayer, false), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.UnloadAllByOwner(friendlyPlayer, false), true); | ||||
TS_ASSERT_UNEVAL_EQUALS(cmpGarrisonHolder.GetEntities(), [24, 25, 26, 27]); | TS_ASSERT_UNEVAL_EQUALS(cmpGarrisonHolder.GetEntities(), [24, 25, 26, 27]); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.GetGarrisonedEntitiesCount(), 4); | TS_ASSERT_EQUALS(cmpGarrisonHolder.GetGarrisonedEntitiesCount(), 4); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.IsEjectable(25), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.IsEjectable(25), true); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.Unload(25), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.Unload(25), true); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.IsEjectable(25), false); | TS_ASSERT_EQUALS(cmpGarrisonHolder.IsEjectable(25), false); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.PerformEject([25], false), false); | TS_ASSERT_EQUALS(cmpGarrisonHolder.PerformEject([25], false), false); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.PerformEject([], false), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.PerformEject([], false), true); | ||||
TS_ASSERT_UNEVAL_EQUALS(cmpGarrisonHolder.GetEntities(), [24, 26, 27]); | TS_ASSERT_UNEVAL_EQUALS(cmpGarrisonHolder.GetEntities(), [24, 26, 27]); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.GetGarrisonedEntitiesCount(), 3); | TS_ASSERT_EQUALS(cmpGarrisonHolder.GetGarrisonedEntitiesCount(), 3); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.IsFull(), false); | TS_ASSERT_EQUALS(cmpGarrisonHolder.IsFull(), false); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.PerformGarrison(largeUnitId), false); | |||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.UnloadAll(), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.UnloadAll(), true); | ||||
TS_ASSERT_UNEVAL_EQUALS(cmpGarrisonHolder.GetEntities(), []); | TS_ASSERT_UNEVAL_EQUALS(cmpGarrisonHolder.GetEntities(), []); |
Wildfire Games · Phabricator