-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest-sql_server.R
More file actions
97 lines (85 loc) · 3.55 KB
/
test-sql_server.R
File metadata and controls
97 lines (85 loc) · 3.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
test_that("expect R6 class object", {
local_mocked_bindings(
sql_server = function(driver,
server,
database,
port,
uid,
pwd) {
driver = "MySQL ODBC 8.0 Unicode Driver"
server = "HOST_NAME"
database = "MYSQL_DB"
port = "MYSQL_PORT"
uid = "MYSQL_USER"
pwd = "MYSQL_PASSWORD"
return(R6Class("Test",
public = list(driver = driver,
server = server,
database = database,
port = port,
uid = uid,
pwd = pwd)
))
})
mysql_serv_mock <- sql_server(driver = "MySQL ODBC 8.0 Unicode Driver",
server = "HOST_NAME",
database = "MYSQL_DB",
port = "MYSQL_PORT",
uid = "MYSQL_USER",
pwd = "MYSQL_PASSWORD")
mysql_serv_NULL <- sql_server(driver = NULL,
server = NULL,
database = NULL,
port = NULL,
uid = NULL,
pwd = NULL)
expect_true(is.R6Class(mysql_serv_mock))
expect_true(is.R6Class(mysql_serv_NULL))
expect_error(mysql_serv_mock$new(), NA)
expect_error(mysql_serv_NULL$new(), NA)
})
test_that("expect message when drop_table used as no table exists", {
local_mocked_bindings(
sql_server = function(driver,
server,
database,
port,
uid,
pwd,
table_name) {
driver = "driver"
server = "HOST_NAME"
database = "MYSQL_DB"
port = "MYSQL_PORT"
uid = "MYSQL_USER"
pwd = "MYSQL_PASSWORD"
table_name = NULL
return(R6Class("Test",
public = list(driver = driver,
server = server,
database = database,
port = port,
uid = uid,
pwd = pwd,
table_name = table_name)
))
})
# create vector
test_table_name <- "SQLRtools_test_table"
# create dummy data using dittodb
test_data <- data.frame(Int_field = 1:200,
char_field_1 = stri_rand_strings(200, sample(5:11, 5, replace = TRUE), '[a-zA-Z]'),
char_field_2 = stri_rand_strings(200, sample(5:11, 5, replace = TRUE), '[a-zA-Z]'),
date_field = sample(seq(as.Date('2018/01/01'), as.Date('2024/01/01'), by = "day"), 200),
date_time_field = sample(seq(as_datetime('2018-01-01 00:00:00'),
as_datetime('2024-01-01 00:00:00'),
by = "min"), 200))
mysql_serv_mock <- sql_server(driver = "driver",
server = "HOST_NAME",
database = "MYSQL_DB",
port = "MYSQL_PORT",
uid = "MYSQL_USER",
pwd = "MYSQL_PASSWORD",
table_name = NULL)
expect_message(mysql_serv$drop_table(test_table_name), "table SQLRtools_test_table doesn't exist")
})