RSS Git Download  Clone
Raw Blame History
var fs = require('fs');
var parser = require('../lib');
var assert = require('assert');

var file = __dirname + '/fixtures/coerce.xml';

var data = fs.readFileSync(file);

// With coercion
var result = parser.toJson(data, {reversible: true, coerce: true, object: true});
console.log(result.itemRecord.value);
assert.strictEqual(result.itemRecord.value[0].longValue['$t'], 12345);
assert.strictEqual(result.itemRecord.value[1].stringValue.number, false);
assert.strictEqual(result.itemRecord.value[2].moneyValue.number, true);
assert.strictEqual(result.itemRecord.value[2].moneyValue['$t'], 104.95);
assert.strictEqual(result.itemRecord.value[2].moneyValue.text, 123.45);
assert.strictEqual(result.itemRecord.value[8].text['$t'], 42.42);


// Without coercion
result = parser.toJson(data, {reversible: true, coerce: false, object: true});
assert.strictEqual(result.itemRecord.value[0].longValue['$t'], '12345');
assert.strictEqual(result.itemRecord.value[1].stringValue.number, 'false');
assert.strictEqual(result.itemRecord.value[2].moneyValue.number, 'true');
assert.strictEqual(result.itemRecord.value[2].moneyValue['$t'], '104.95');
assert.strictEqual(result.itemRecord.value[2].moneyValue.text, '123.45');
assert.strictEqual(result.itemRecord.value[8].text['$t'], '42.42');

// With coercion as an optional object
var result = parser.toJson(data, {reversible: true, coerce: {text:String}, object: true});
assert.strictEqual(result.itemRecord.value[0].longValue['$t'], 12345);
assert.strictEqual(result.itemRecord.value[1].stringValue.number, false);
assert.strictEqual(result.itemRecord.value[2].moneyValue.number, true);
assert.strictEqual(result.itemRecord.value[2].moneyValue['$t'], 104.95);
assert.strictEqual(result.itemRecord.value[2].moneyValue.text, '123.45');
assert.strictEqual(result.itemRecord.value[8].text['$t'], '42.42');