@@ -4,39 +4,33 @@ import 'dart:io';
4
4
5
5
import 'package:dart_orm_adapter_mysql/dart_orm_adapter_mysql.dart' ;
6
6
import 'package:logging/logging.dart' ;
7
+ import 'package:sqljocky5/sqljocky.dart' ;
7
8
import 'package:test/test.dart' ;
8
9
9
- import 'test_util.dart' ;
10
10
import 'integration/test_integration.dart' ;
11
11
12
12
const String dbUserName = 'dart_orm_test' ;
13
13
const String dbName = 'dart_orm_test' ;
14
14
15
- void setupMySql (mysqlUser) {
16
- void runMySql (String command) {
17
- run ('mysql' , ['-e' , command, '-v' , '-u' , mysqlUser]);
18
- }
19
-
20
- log.info ('---- MySQL Teardown -----' );
21
- runMySql ('DROP DATABASE $dbName ;' );
22
- runMySql ('DROP USER \' $dbUserName \' @\' localhost\' ;' );
15
+ void setupMySql (String dbString) async {
16
+ var dbStringParts = dbString.split (':' );
17
+ var pool = new ConnectionPool (
18
+ host: dbStringParts[0 ], port: int .parse (dbStringParts[1 ]),
19
+ user: 'dart_orm_test' , password: 'dart_orm_test' ,
20
+ db: 'dart_orm_test' , max: 5 );
23
21
24
- log.info ('---- MySQL Setup -----' );
25
- runMySql ('CREATE DATABASE $dbName ;' );
26
- runMySql (
27
- 'CREATE USER \' $dbUserName \' @\' localhost\' IDENTIFIED BY \' $dbUserName \' ;' );
28
- runMySql ('GRANT ALL ON $dbName .* TO \' $dbUserName \' @\' localhost\' ;' );
29
- runMySql ('FLUSH PRIVILEGES;' );
22
+ var rows = await pool.query ("SELECT table_name FROM information_schema.tables WHERE table_schema = 'dart_orm_test'" );
23
+ await for (var row in rows) {
24
+ await pool.query ('DROP TABLE IF EXISTS ${row [0 ]} CASCADE' );
25
+ }
30
26
}
31
27
32
28
void main () {
33
- setUpAll (() {
34
- String MYSQL_USER = Platform .environment['MYSQL_USER' ];
29
+ var useDocker = Platform .environment['USE_DOCKER' ] == 'true' ;
35
30
36
- if (MYSQL_USER == null || MYSQL_USER .isEmpty) {
37
- throw 'MYSQL_USER must be set in the environment' ;
38
- }
31
+ var dbString = useDocker ? 'mysql:3306' : 'localhost:3000' ;
39
32
33
+ setUpAll (() async {
40
34
Logger .root.level = Level .FINEST ;
41
35
Logger .root.onRecord.listen ((LogRecord rec) {
42
36
if (rec.loggerName.contains ('DartORM' )) {
@@ -45,11 +39,11 @@ void main() {
45
39
}
46
40
});
47
41
48
- setupMySql (MYSQL_USER );
42
+ await setupMySql (dbString );
49
43
});
50
44
51
45
MySQLDBAdapter mysqlAdapter = new MySQLDBAdapter (
52
- 'mysql://dart_orm_test:dart_orm_test@localhost:3306 /dart_orm_test' );
46
+ 'mysql://dart_orm_test:dart_orm_test@$ dbString /dart_orm_test' );
53
47
54
48
registerTestsForAdapter ('mysql' , mysqlAdapter);
55
49
0 commit comments