Fixed issue with number values
This commit is contained in:
+29
-5
@@ -175,12 +175,18 @@ types = {
|
|||||||
},
|
},
|
||||||
write: function(value, buffer, offset) {
|
write: function(value, buffer, offset) {
|
||||||
buffer.writeUInt8(value.length, offset ++);
|
buffer.writeUInt8(value.length, offset ++);
|
||||||
if (typeof value === 'string' || typeof value === 'number') {
|
if (typeof value === 'number') {
|
||||||
|
value = value.toString();
|
||||||
|
}
|
||||||
|
if (typeof value === 'string') {
|
||||||
value = new Buffer(value, 'ascii');
|
value = new Buffer(value, 'ascii');
|
||||||
}
|
}
|
||||||
value.copy(buffer, offset);
|
value.copy(buffer, offset);
|
||||||
},
|
},
|
||||||
size: function(value) {
|
size: function(value) {
|
||||||
|
if (typeof value === 'number') {
|
||||||
|
value = value.toString();
|
||||||
|
}
|
||||||
return value.length + 1;
|
return value.length + 1;
|
||||||
},
|
},
|
||||||
default: ''
|
default: ''
|
||||||
@@ -197,7 +203,10 @@ types = {
|
|||||||
return buffer.toString('ascii', offset, offset + length);
|
return buffer.toString('ascii', offset, offset + length);
|
||||||
},
|
},
|
||||||
write: function(value, buffer, offset) {
|
write: function(value, buffer, offset) {
|
||||||
if (typeof value === 'string' || typeof value === 'number') {
|
if (typeof value === 'number') {
|
||||||
|
value = value.toString();
|
||||||
|
}
|
||||||
|
if (typeof value === 'string') {
|
||||||
value = new Buffer(value, 'ascii');
|
value = new Buffer(value, 'ascii');
|
||||||
}
|
}
|
||||||
value.copy(buffer, offset);
|
value.copy(buffer, offset);
|
||||||
@@ -217,7 +226,10 @@ types = {
|
|||||||
return buffer.slice(offset, offset + length);
|
return buffer.slice(offset, offset + length);
|
||||||
},
|
},
|
||||||
write: function(value, buffer, offset) {
|
write: function(value, buffer, offset) {
|
||||||
if (typeof value === 'string' || typeof value === 'number') {
|
if (typeof value === 'number') {
|
||||||
|
value = value.toString();
|
||||||
|
}
|
||||||
|
if (typeof value === 'string') {
|
||||||
value = new Buffer(value, 'ascii');
|
value = new Buffer(value, 'ascii');
|
||||||
}
|
}
|
||||||
value.copy(buffer, offset);
|
value.copy(buffer, offset);
|
||||||
@@ -337,12 +349,18 @@ types.tlv = {
|
|||||||
return buffer.toString('ascii', offset, offset + length);
|
return buffer.toString('ascii', offset, offset + length);
|
||||||
},
|
},
|
||||||
write: function(value, buffer, offset) {
|
write: function(value, buffer, offset) {
|
||||||
if (typeof value === 'string' || typeof value === 'number') {
|
if (typeof value === 'number') {
|
||||||
|
value = value.toString();
|
||||||
|
}
|
||||||
|
if (typeof value === 'string') {
|
||||||
value = new Buffer(value, 'ascii');
|
value = new Buffer(value, 'ascii');
|
||||||
}
|
}
|
||||||
value.copy(buffer, offset);
|
value.copy(buffer, offset);
|
||||||
},
|
},
|
||||||
size: function(value) {
|
size: function(value) {
|
||||||
|
if (typeof value === 'number') {
|
||||||
|
value = value.toString();
|
||||||
|
}
|
||||||
return value.length;
|
return value.length;
|
||||||
},
|
},
|
||||||
default: ''
|
default: ''
|
||||||
@@ -352,12 +370,18 @@ types.tlv = {
|
|||||||
return buffer.slice(offset, offset + length);
|
return buffer.slice(offset, offset + length);
|
||||||
},
|
},
|
||||||
write: function(value, buffer, offset) {
|
write: function(value, buffer, offset) {
|
||||||
if (typeof value === 'string' || typeof value === 'number') {
|
if (typeof value === 'number') {
|
||||||
|
value = value.toString();
|
||||||
|
}
|
||||||
|
if (typeof value === 'string') {
|
||||||
value = new Buffer(value, 'ascii');
|
value = new Buffer(value, 'ascii');
|
||||||
}
|
}
|
||||||
value.copy(buffer, offset);
|
value.copy(buffer, offset);
|
||||||
},
|
},
|
||||||
size: function(value) {
|
size: function(value) {
|
||||||
|
if (typeof value === 'number') {
|
||||||
|
value = value.toString();
|
||||||
|
}
|
||||||
return value.length;
|
return value.length;
|
||||||
},
|
},
|
||||||
default: null
|
default: null
|
||||||
|
|||||||
+23
-2
@@ -141,6 +141,29 @@ describe('PDU convertion', function() {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should encode and decode integer cstring params correctly', function(done) {
|
||||||
|
var pduObj = {
|
||||||
|
'cmdName': 'submit_sm_resp',
|
||||||
|
'cmdStatus': 'ESME_ROK',
|
||||||
|
'seqNr': 2,
|
||||||
|
'params': {
|
||||||
|
'message_id': 450
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
larvitsmpp.utils.objToPdu(pduObj, function(err, pduBuf) {
|
||||||
|
assert( ! err, 'Error should be negative');
|
||||||
|
|
||||||
|
larvitsmpp.utils.pduToObj(pduBuf, function(err, retPduObj) {
|
||||||
|
assert( ! err, 'Error should be negative');
|
||||||
|
|
||||||
|
assert(retPduObj.params.message_id === '450', 'message_id param should be 450, but as string');
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('TLVs', function() {
|
describe('TLVs', function() {
|
||||||
@@ -204,7 +227,6 @@ describe('PDU convertion', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('Return PDUs', function() {
|
describe('Return PDUs', function() {
|
||||||
|
|
||||||
it('should create a basic and valid return PDU', function(done) {
|
it('should create a basic and valid return PDU', function(done) {
|
||||||
var pduObj = {
|
var pduObj = {
|
||||||
'cmdName': 'deliver_sm',
|
'cmdName': 'deliver_sm',
|
||||||
@@ -286,7 +308,6 @@ describe('PDU convertion', function() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
Reference in New Issue
Block a user