datamodel.js
Summary
Data model as reference data for tests
Class Summary
|
CardDataModel |
Class providing for a reference model containing static card data
|
function CardDataModel() {
this.dm = { name: "CardSIM" };
this.dm.MF = { fid:"3F00"};
CardDataModel.populateFromProfile(this.dm.MF, CardDataModel.path + "/mf.xml");
var k = new Key();
k.setComponent(Key.AES, new ByteString("7CA110454A1A6E570131D9619DC1376E4A1A6E570131D961", HEX));
this.dm.MF.K_MAC = k;
var k = new Key();
k.setComponent(Key.AES, new ByteString("0131D9619DC1376E7CA110454A1A6E579DC1376E7CA11045", HEX));
this.dm.MF.K_ENC = k;
}
CardDataModel.path = GPSystem.mapFilename("", GPSystem.CWD);
CardDataModel.populateFromProfile = function(node, profile) {
var xml = GPXML.parse(profile);
var list = xml.DataStructure.FileStructure.EF;
for (var i = 0; i < list.length; i++) {
var item = list[i];
node[item.name] = item;
}
}
CardDataModel.prototype.getNode = function(path) {
var items = path.split("/");
var node = this.dm;
for (var i = 0; i <items.length; i++) {
node = node[items[i]];
if (!node) {
throw new GPError("CardDataModel", GPError.OBJECT_NOT_FOUND, 0, "Element " + path + " not found in data model");
}
}
return node;
}
CardDataModel.prototype.dump = function() {
function _dump(indent, o) {
for (i in o) {
var t = o[i];
if (typeof(t) == "object") {
print(indent + i + ":");
_dump(indent + " ", t);
} else {
print(indent + i + ": " + o[i]);
}
}
}
_dump("", this.dm);
}
Documentation generated by
JSDoc on Tue Sep 3 22:29:41 2013