Skip to content

Commit cef468d

Browse files
committed
tests: add DATETIME type cast test
1 parent 9bc7e54 commit cef468d

File tree

1 file changed

+83
-0
lines changed

1 file changed

+83
-0
lines changed
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
var assert = require('assert');
2+
var common = require('../../common');
3+
var connection = common.createConnection({port: common.fakeServerPort, timezone: 'Z'});
4+
var server = common.createFakeServer();
5+
6+
server.listen(common.fakeServerPort, function (err) {
7+
assert.ifError(err);
8+
9+
connection.query('SELECT value FROM datetime_rows', function (err, rows) {
10+
assert.ifError(err);
11+
assert.equal(rows.length, 7);
12+
assert.strictEqual(rows[0].value, '0000-00-00 00:00:00');
13+
assert.strictEqual(rows[1].value, '2000-00-00 00:00:00');
14+
assert.strictEqual(rows[2].value, '2000-01-00 00:00:00');
15+
assert.strictEqual(rows[3].value, '2000-01-02 03:04:60');
16+
assert.ok(rows[4].value instanceof Date);
17+
assert.strictEqual(rows[4].value.toISOString(), '2000-01-02T00:00:00.000Z');
18+
assert.ok(rows[5].value instanceof Date);
19+
assert.strictEqual(rows[5].value.toISOString(), '2000-01-02T03:04:05.000Z');
20+
assert.ok(rows[6].value instanceof Date);
21+
assert.strictEqual(rows[6].value.toISOString(), '2000-01-02T03:04:05.006Z');
22+
23+
connection.destroy();
24+
server.destroy();
25+
});
26+
});
27+
28+
server.on('connection', function(conn) {
29+
conn.handshake();
30+
conn.on('query', function(packet) {
31+
switch (packet.sql) {
32+
case 'SELECT value FROM datetime_rows':
33+
this._sendPacket(new common.Packets.ResultSetHeaderPacket({
34+
fieldCount: 1
35+
}));
36+
37+
this._sendPacket(new common.Packets.FieldPacket({
38+
catalog : 'def',
39+
charsetNr : common.Charsets.UTF8_GENERAL_CI,
40+
name : 'value',
41+
protocol41 : true,
42+
type : common.Types.DATETIME
43+
}));
44+
45+
this._sendPacket(new common.Packets.EofPacket());
46+
47+
var writer = new common.PacketWriter();
48+
writer.writeLengthCodedString('0000-00-00 00:00:00');
49+
this._socket.write(writer.toBuffer(this._parser));
50+
51+
var writer = new common.PacketWriter();
52+
writer.writeLengthCodedString('2000-00-00 00:00:00');
53+
this._socket.write(writer.toBuffer(this._parser));
54+
55+
var writer = new common.PacketWriter();
56+
writer.writeLengthCodedString('2000-01-00 00:00:00');
57+
this._socket.write(writer.toBuffer(this._parser));
58+
59+
var writer = new common.PacketWriter();
60+
writer.writeLengthCodedString('2000-01-02 03:04:60');
61+
this._socket.write(writer.toBuffer(this._parser));
62+
63+
var writer = new common.PacketWriter();
64+
writer.writeLengthCodedString('2000-01-02 00:00:00');
65+
this._socket.write(writer.toBuffer(this._parser));
66+
67+
var writer = new common.PacketWriter();
68+
writer.writeLengthCodedString('2000-01-02 03:04:05');
69+
this._socket.write(writer.toBuffer(this._parser));
70+
71+
var writer = new common.PacketWriter();
72+
writer.writeLengthCodedString('2000-01-02 03:04:05.006');
73+
this._socket.write(writer.toBuffer(this._parser));
74+
75+
this._sendPacket(new common.Packets.EofPacket());
76+
this._parser.resetPacketNumber();
77+
break;
78+
default:
79+
this._handleQueryPacket(packet);
80+
break;
81+
}
82+
});
83+
});

0 commit comments

Comments
 (0)