1
+ /* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. */
2
+
3
+ /******************************************************************************
4
+ *
5
+ * You may not use the identified files except in compliance with the Apache
6
+ * License, Version 2.0 (the "License.")
7
+ *
8
+ * You may obtain a copy of the License at
9
+ * http://www.apache.org/licenses/LICENSE-2.0.
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ *
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ *
18
+ * The node-oracledb test suite uses 'mocha', 'should' and 'async'.
19
+ * See LICENSE.md for relevant licenses.
20
+ *
21
+ * NAME
22
+ * 178. soda10.js
23
+ *
24
+ * DESCRIPTION
25
+ * Test Soda Bulk insertion methods.
26
+ *
27
+ *****************************************************************************/
28
+ 'use strict' ;
29
+
30
+ const oracledb = require ( 'oracledb' ) ;
31
+ const should = require ( 'should' ) ;
32
+ const dbconfig = require ( './dbconfig.js' ) ;
33
+ const sodaUtil = require ( './sodaUtil.js' ) ;
34
+ const testsUtil = require ( './testsUtil.js' ) ;
35
+
36
+ describe ( '178. soda10.js' , ( ) => {
37
+
38
+ let conn ;
39
+
40
+ before ( async function ( ) {
41
+ try {
42
+ const runnable = await testsUtil . checkPrerequisites ( ) ;
43
+ if ( ! runnable ) {
44
+ this . skip ( ) ;
45
+ return ;
46
+ } else {
47
+ await sodaUtil . cleanup ( ) ;
48
+ conn = await oracledb . getConnection ( dbconfig ) ;
49
+ }
50
+
51
+ } catch ( err ) {
52
+ should . not . exist ( err ) ;
53
+ }
54
+ } ) ; // before()
55
+
56
+ after ( async ( ) => {
57
+ try {
58
+
59
+ await conn . close ( ) ;
60
+ } catch ( err ) {
61
+ should . not . exist ( err ) ;
62
+ }
63
+ } ) ; // after()
64
+
65
+ it ( '178.1 basic case of sodaCollection.insertMany()' , async ( ) => {
66
+ try {
67
+ let soda = conn . getSodaDatabase ( ) ;
68
+ const COLL = "soda_test_178_1" ;
69
+ const collection = await soda . createCollection ( COLL ) ;
70
+
71
+ let inContents = [
72
+ { id : 1 , name : "Paul" , office : "Singapore" } ,
73
+ { id : 2 , name : "Emma" , office : "London" } ,
74
+ { id : 3 , name : "Kate" , office : "Edinburgh" } ,
75
+ { id : 4 , name : "Changjie" , office : "Shenzhen" }
76
+ ] ;
77
+ let inDocuments = [ ] ;
78
+ for ( let i = 0 ; i < inContents . length ; i ++ ) {
79
+ inDocuments [ i ] = soda . createDocument ( inContents [ i ] ) ; // n.b. synchronous method
80
+ }
81
+
82
+ await collection . insertMany ( inDocuments ) ;
83
+
84
+ // Fetch back
85
+ let outDocuments = await collection . find ( ) . getDocuments ( ) ;
86
+ let outContents = [ ] ;
87
+ for ( let i = 0 ; i < outDocuments . length ; i ++ ) {
88
+ outContents [ i ] = outDocuments [ i ] . getContent ( ) ; // n.b. synchronous method
89
+ }
90
+
91
+ should . deepEqual ( outContents , inContents ) ;
92
+
93
+ await conn . commit ( ) ;
94
+
95
+ let res = await collection . drop ( ) ;
96
+ should . strictEqual ( res . dropped , true ) ;
97
+ } catch ( err ) {
98
+ should . not . exist ( err ) ;
99
+ }
100
+ } ) ; // 178.1
101
+ } ) ;
0 commit comments