Engine.LoadHelperScript("Player.js"); Engine.LoadHelperScript("ValueModification.js"); Engine.LoadComponentScript("interfaces/AuraManager.js"); Engine.LoadComponentScript("interfaces/EntityLimits.js"); Engine.LoadComponentScript("interfaces/Player.js"); Engine.LoadComponentScript("interfaces/TechnologyManager.js"); Engine.LoadComponentScript("TechnologyManager.js"); let playerEnt = 10; let techs = { "tech1": { "modifications": [ { "value": "Attack/Fire", "add": 70.0 } ], //~ "affects": ["Player"] } }; AddMock(SYSTEM_ENTITY, IID_DataTemplateManager, { "GetAllTechs": () => techs, "GetTechnologyTemplate": name => techs[name] || {} }); AddMock(SYSTEM_ENTITY, IID_RangeManager, { "GetEntitiesByPlayer": () => [] }); AddMock(SYSTEM_ENTITY, IID_TemplateManager, { "GetCurrentTemplateName": () => "player", "GetTemplate": () => template }); AddMock(SYSTEM_ENTITY, IID_PlayerManager, { "GetPlayerByID": () => 1 }); AddMock(10, IID_Player, { "GetPlayerID": () => 1 }); AddMock(10, IID_Identity, { "GetClassesList": () => ["Player"], "GetCiv": () => "martian" }); let cmpTechnologyManager = ConstructComponent(10, "TechnologyManager"); cmpTechnologyManager.ResearchTechnology("tech1"); TS_ASSERT_EQUALS(ApplyValueModificationsToEntity("Attack/Fire", 2.0, 10), 72.0);