Fixes tests after recent GuiInterface and UnitAI changes.

This was SVN commit r10603.
This commit is contained in:
historic_bruno
2011-11-26 01:58:39 +00:00
parent 2b7657b855
commit 2a44e8202e
3 changed files with 49 additions and 19 deletions
@@ -254,7 +254,7 @@ GuiInterface.prototype.GetEntityState = function(player, ent)
};
}
if (!cmpFoundation && cmpIdentity.HasClass("BarterMarket"))
if (!cmpFoundation && cmpIdentity && cmpIdentity.HasClass("BarterMarket"))
{
var cmpBarter = Engine.QueryInterface(SYSTEM_ENTITY, IID_Barter);
ret.barterMarket = { "prices": cmpBarter.GetPrices() };
@@ -1,4 +1,5 @@
Engine.LoadComponentScript("interfaces/Attack.js");
Engine.LoadComponentScript("interfaces/Barter.js");
Engine.LoadComponentScript("interfaces/Builder.js");
Engine.LoadComponentScript("interfaces/BuildLimits.js");
Engine.LoadComponentScript("interfaces/DamageReceiver.js");
@@ -18,14 +19,17 @@ Engine.LoadComponentScript("GuiInterface.js");
var cmp = ConstructComponent(SYSTEM_ENTITY, "GuiInterface");
AddMock(SYSTEM_ENTITY, IID_PlayerManager, {
GetNumPlayers: function() { return 2; },
GetPlayerByID: function(id) { TS_ASSERT(id === 0 || id === 1); return 100+id; }
AddMock(SYSTEM_ENTITY, IID_Barter, {
GetPrices: function() { return {
"buy": { "food": 150 },
"sell": { "food": 25 },
}},
});
AddMock(SYSTEM_ENTITY, IID_TemplateManager, {
GetCurrentTemplateName: function(ent) { return "example"; },
GetTemplate: function(name) { return ""; },
AddMock(SYSTEM_ENTITY, IID_PlayerManager, {
GetNumPlayers: function() { return 2; },
GetPlayerByID: function(id) { TS_ASSERT(id === 0 || id === 1); return 100+id; },
});
AddMock(SYSTEM_ENTITY, IID_RangeManager, {
@@ -33,6 +37,11 @@ AddMock(SYSTEM_ENTITY, IID_RangeManager, {
GetLosCircular: function() { return false; },
});
AddMock(SYSTEM_ENTITY, IID_TemplateManager, {
GetCurrentTemplateName: function(ent) { return "example"; },
GetTemplate: function(name) { return ""; },
});
AddMock(SYSTEM_ENTITY, IID_Timer, {
GetTime: function() { return 0; },
SetTimeout: function(ent, iid, funcname, time, data) { return 0; },
@@ -133,6 +142,9 @@ AddMock(101, IID_StatisticsTracker, {
IncreaseBuiltCivCentresCounter: function() { return 1; },
});
// Note: property order matters when using TS_ASSERT_UNEVAL_EQUALS,
// because uneval preserves property order. So make sure this object
// matches the ordering in GuiInterface.
TS_ASSERT_UNEVAL_EQUALS(cmp.GetSimulationState(), {
players: [
{
@@ -248,12 +260,9 @@ TS_ASSERT_UNEVAL_EQUALS(cmp.GetExtendedSimulationState(), {
});
AddMock(10, IID_Position, {
GetPosition: function() {
return {x:1, y:2, z:3};
},
IsInWorld: function() {
return true;
AddMock(10, IID_Builder, {
GetEntitiesList: function() {
return ["test1", "test2"];
},
});
@@ -263,20 +272,40 @@ AddMock(10, IID_Health, {
IsRepairable: function() { return false; },
});
AddMock(10, IID_Builder, {
GetEntitiesList: function() {
return ["test1", "test2"];
}
AddMock(10, IID_Identity, {
GetClassesList: function() { return ["class1", "class2"]; },
GetRank: function() { return "foo"; },
GetSelectionGroupName: function() { return "Selection Group Name"; },
HasClass: function() { return true; },
});
var state = cmp.GetEntityState(-1, 10);
TS_ASSERT_UNEVAL_EQUALS(state, {
AddMock(10, IID_Position, {
GetPosition: function() {
return {x:1, y:2, z:3};
},
IsInWorld: function() {
return true;
},
});
// Note: property order matters when using TS_ASSERT_UNEVAL_EQUALS,
// because uneval preserves property order. So make sure this object
// matches the ordering in GuiInterface.
TS_ASSERT_UNEVAL_EQUALS(cmp.GetEntityState(-1, 10), {
id: 10,
template: "example",
identity: {
rank: "foo",
classes: ["class1", "class2"],
selectionGroupName: "Selection Group Name",
},
position: {x:1, y:2, z:3},
hitpoints: 50,
maxHitpoints: 60,
needsRepair: false,
buildEntities: ["test1", "test2"],
barterMarket: {
prices: { "buy": {"food":150}, "sell": {"food":25} },
},
visibility: "visible",
});
@@ -1,5 +1,6 @@
Engine.LoadHelperScript("FSM.js");
Engine.LoadHelperScript("Entity.js");
Engine.LoadHelperScript("Player.js");
Engine.LoadComponentScript("interfaces/Attack.js");
Engine.LoadComponentScript("interfaces/DamageReceiver.js");
Engine.LoadComponentScript("interfaces/Formation.js");