Skip to content

Commit 3f73231

Browse files
committed
Use new version attributes for JSON database data type tests
1 parent a03f61e commit 3f73231

File tree

1 file changed

+75
-65
lines changed

1 file changed

+75
-65
lines changed

test/examples.js

Lines changed: 75 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -247,72 +247,82 @@ describe('3. examples.js', function(){
247247
})
248248

249249
it('3.4.1 executes a query from a JSON table', function(done){
250-
var data = { "userId": 1, "userName": "Chris" };
251-
var s = JSON.stringify(data);
252-
var script =
253-
"BEGIN " +
254-
" DECLARE " +
255-
" e_table_exists EXCEPTION; " +
256-
" PRAGMA EXCEPTION_INIT(e_table_exists, -00942); " +
257-
" BEGIN " +
258-
" EXECUTE IMMEDIATE ('DROP TABLE j_purchaseorder'); " +
259-
" EXCEPTION " +
260-
" WHEN e_table_exists " +
261-
" THEN NULL; " +
262-
" END; " +
263-
" EXECUTE IMMEDIATE (' " +
264-
" CREATE TABLE j_purchaseorder ( " +
265-
" po_document VARCHAR2(4000) CONSTRAINT ensure_json CHECK (po_document IS JSON) " +
266-
" )" +
267-
" '); " +
268-
"END; ";
250+
if (connection.oracleServerVersion < 1201000200)
251+
{
252+
// This example only works with Oracle Database 12.1.0.2 or greater
253+
done();
254+
}
255+
else
256+
{
257+
var data = { "userId": 1, "userName": "Chris" };
258+
var s = JSON.stringify(data);
259+
var script =
260+
"BEGIN " +
261+
" DECLARE " +
262+
" e_table_exists EXCEPTION; " +
263+
" PRAGMA EXCEPTION_INIT(e_table_exists, -00942); " +
264+
" BEGIN " +
265+
" EXECUTE IMMEDIATE ('DROP TABLE j_purchaseorder'); " +
266+
" EXCEPTION " +
267+
" WHEN e_table_exists " +
268+
" THEN NULL; " +
269+
" END; " +
270+
" EXECUTE IMMEDIATE (' " +
271+
" CREATE TABLE j_purchaseorder ( " +
272+
" po_document VARCHAR2(4000) CONSTRAINT ensure_json CHECK (po_document IS JSON) " +
273+
" )" +
274+
" '); " +
275+
"END; ";
276+
277+
connection.should.be.ok;
278+
async.series([
279+
function(callback){
280+
connection.execute(
281+
script,
282+
function(err){
283+
should.not.exist(err);
284+
callback();
285+
}
286+
);
287+
},
288+
function(callback){
289+
connection.execute(
290+
"INSERT INTO j_purchaseorder (po_document) VALUES (:bv)",
291+
[s],
292+
function(err, result){
293+
should.not.exist(err);
294+
(result.rowsAffected).should.be.exactly(1);
295+
callback();
296+
}
297+
);
298+
},
299+
function(callback){
300+
connection.execute(
301+
"SELECT po_document FROM j_purchaseorder",
302+
function(err, result){
303+
should.not.exist(err);
304+
305+
var js = JSON.parse(result.rows[0][0]);
306+
// console.log(js);
307+
js.should.eql(data);
308+
309+
callback();
310+
}
311+
);
312+
},
313+
function(callback){
314+
connection.execute(
315+
"DROP TABLE j_purchaseorder",
316+
function(err){
317+
should.not.exist(err);
318+
callback();
319+
}
320+
);
321+
}
322+
], done);
323+
324+
} // else
269325

270-
connection.should.be.ok;
271-
async.series([
272-
function(callback){
273-
connection.execute(
274-
script,
275-
function(err){
276-
should.not.exist(err);
277-
callback();
278-
}
279-
);
280-
},
281-
function(callback){
282-
connection.execute(
283-
"INSERT INTO j_purchaseorder (po_document) VALUES (:bv)",
284-
[s],
285-
function(err, result){
286-
should.not.exist(err);
287-
(result.rowsAffected).should.be.exactly(1);
288-
callback();
289-
}
290-
);
291-
},
292-
function(callback){
293-
connection.execute(
294-
"SELECT po_document FROM j_purchaseorder",
295-
function(err, result){
296-
should.not.exist(err);
297-
298-
var js = JSON.parse(result.rows[0][0]);
299-
// console.log(js);
300-
js.should.eql(data);
301-
302-
callback();
303-
}
304-
);
305-
},
306-
function(callback){
307-
connection.execute(
308-
"DROP TABLE j_purchaseorder",
309-
function(err){
310-
should.not.exist(err);
311-
callback();
312-
}
313-
);
314-
}
315-
], done);
316326
})
317327

318328
})

0 commit comments

Comments
 (0)