Skip to content

Commit caec111

Browse files
committed
Add tests
1 parent 5e21023 commit caec111

File tree

2 files changed

+135
-23
lines changed

2 files changed

+135
-23
lines changed

test/test_result.rb

+111
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
# frozen_string_literal: true
2+
3+
require_relative 'helper'
4+
5+
class ResultTest < Minitest::Test
6+
def setup
7+
@insert_statement = Ilios::Cassandra.session.prepare(<<~CQL)
8+
INSERT INTO ilios.test (
9+
id,
10+
tinyint,
11+
smallint,
12+
int,
13+
bigint,
14+
float,
15+
double,
16+
boolean,
17+
text,
18+
timestamp,
19+
uuid
20+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);
21+
CQL
22+
end
23+
24+
def test_each
25+
# setup
26+
3.times do |i|
27+
@insert_statement.bind(
28+
{
29+
id: i,
30+
tinyint: i,
31+
smallint: i,
32+
int: i,
33+
bigint: i,
34+
float: i,
35+
double: i,
36+
boolean: true,
37+
text: "hello #{i}",
38+
timestamp: Time.now,
39+
uuid: SecureRandom.uuid
40+
}
41+
)
42+
Ilios::Cassandra.session.execute(@insert_statement)
43+
end
44+
45+
statement = Ilios::Cassandra.session.prepare(<<~CQL)
46+
SELECT * FROM ilios.test WHERE id IN (0, 1, 2);
47+
CQL
48+
results = Ilios::Cassandra.session.execute(statement)
49+
50+
results.each.with_index do |row, index|
51+
assert_kind_of(Hash, row)
52+
assert_equal(index, row['id'])
53+
assert_equal(index, row['tinyint'])
54+
assert_equal(index, row['smallint'])
55+
assert_equal(index, row['int'])
56+
assert_equal(index, row['bigint'])
57+
assert_equal(index, row['float'])
58+
assert_equal(index, row['double'])
59+
assert(row['boolean'])
60+
assert_equal("hello #{index}", row['text'])
61+
assert_kind_of(Time, row['timestamp'])
62+
assert_kind_of(String, row['uuid'])
63+
end
64+
65+
assert_kind_of(Enumerator, results.each)
66+
end
67+
68+
def test_next_page
69+
# setup
70+
10.times do |i|
71+
@insert_statement.bind(
72+
{
73+
id: i,
74+
tinyint: i,
75+
smallint: i,
76+
int: i,
77+
bigint: i,
78+
float: i,
79+
double: i,
80+
boolean: true,
81+
text: "hello #{i}",
82+
timestamp: Time.now,
83+
uuid: SecureRandom.uuid
84+
}
85+
)
86+
Ilios::Cassandra.session.execute(@insert_statement)
87+
end
88+
89+
# specify page_size
90+
statement = Ilios::Cassandra.session.prepare(<<~CQL)
91+
SELECT * FROM ilios.test;
92+
CQL
93+
statement.page_size = 5
94+
95+
results = Ilios::Cassandra.session.execute(statement)
96+
97+
assert_equal(5, results.to_a.size)
98+
assert_kind_of(Ilios::Cassandra::Result, results.next_page)
99+
assert_equal(5, results.to_a.size)
100+
101+
statement = Ilios::Cassandra.session.prepare(<<~CQL)
102+
SELECT * FROM ilios.test WHERE id = -1;
103+
CQL
104+
statement.page_size = 5
105+
106+
results = Ilios::Cassandra.session.execute(statement)
107+
108+
assert_equal(0, results.to_a.size)
109+
assert_nil(results.next_page) # no more pages
110+
end
111+
end

test/test_statement.rb

+24-23
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,11 @@ def test_bind
2929

3030
# valid values
3131
# rubocop:disable Style/StringHashKeys
32-
assert(@insert_statement.bind({ 'id' => 1 }))
32+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind({ 'id' => 1 }))
3333
# rubocop:enable Style/StringHashKeys
34-
assert(@insert_statement.bind({ id: 1 }))
35-
assert(
34+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind({ id: 1 }))
35+
assert_kind_of(
36+
Ilios::Cassandra::Statement,
3637
@insert_statement.bind(
3738
{
3839
id: 1,
@@ -55,7 +56,7 @@ def key.to_str
5556
'id'
5657
end
5758

58-
assert(@insert_statement.bind({ key => 1 }))
59+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind({ key => 1 }))
5960
end
6061

6162
def test_bind_null
@@ -75,8 +76,8 @@ def test_bind_tinyint
7576
assert_raises(TypeError) { @insert_statement.bind(tinyint: Object.new) }
7677

7778
# valid values
78-
assert(@insert_statement.bind(tinyint: -2**7))
79-
assert(@insert_statement.bind(tinyint: (2**7) - 1))
79+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind(tinyint: -2**7))
80+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind(tinyint: (2**7) - 1))
8081

8182
results = insert_and_get_results
8283

@@ -91,8 +92,8 @@ def test_bind_smallint
9192
assert_raises(TypeError) { @insert_statement.bind(smallint: Object.new) }
9293

9394
# valid values
94-
assert(@insert_statement.bind(smallint: -2**15))
95-
assert(@insert_statement.bind(smallint: (2**15) - 1))
95+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind(smallint: -2**15))
96+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind(smallint: (2**15) - 1))
9697

9798
results = insert_and_get_results
9899

@@ -107,8 +108,8 @@ def test_bind_int
107108
assert_raises(TypeError) { @insert_statement.bind(int: Object.new) }
108109

109110
# valid values
110-
assert(@insert_statement.bind(int: -2**31))
111-
assert(@insert_statement.bind(int: (2**31) - 1))
111+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind(int: -2**31))
112+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind(int: (2**31) - 1))
112113

113114
results = insert_and_get_results
114115

@@ -121,8 +122,8 @@ def test_bind_bigint
121122
assert_raises(TypeError) { @insert_statement.bind(bigint: Object.new) }
122123

123124
# valid values
124-
assert(@insert_statement.bind(bigint: -2**62))
125-
assert(@insert_statement.bind(bigint: 2**62))
125+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind(bigint: -2**62))
126+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind(bigint: 2**62))
126127

127128
results = insert_and_get_results
128129

@@ -136,8 +137,8 @@ def test_bind_float
136137
assert_raises(TypeError) { @insert_statement.bind(float: Object.new) }
137138

138139
# valid values
139-
assert(@insert_statement.bind(float: -3.402820018375656e+38))
140-
assert(@insert_statement.bind(float: 3.402820018375656e+38))
140+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind(float: -3.402820018375656e+38))
141+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind(float: 3.402820018375656e+38))
141142

142143
results = insert_and_get_results
143144

@@ -149,8 +150,8 @@ def test_bind_double
149150
assert_raises(TypeError) { @insert_statement.bind(double: Object.new) }
150151

151152
# valid values
152-
assert(@insert_statement.bind(double: -1.79769313486232e+307))
153-
assert(@insert_statement.bind(double: 1.79769313486232e+307))
153+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind(double: -1.79769313486232e+307))
154+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind(double: 1.79769313486232e+307))
154155

155156
results = insert_and_get_results
156157

@@ -159,14 +160,14 @@ def test_bind_double
159160

160161
def test_bind_boolean
161162
# valid values for true
162-
assert(@insert_statement.bind(boolean: true))
163+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind(boolean: true))
163164

164165
results = insert_and_get_results
165166

166167
assert(results.first['boolean'])
167168

168169
# valid values for false
169-
assert(@insert_statement.bind(boolean: false))
170+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind(boolean: false))
170171

171172
results = insert_and_get_results
172173

@@ -178,7 +179,7 @@ def test_bind_text
178179
assert_raises(TypeError) { @insert_statement.bind(text: Object.new) }
179180

180181
# valid values
181-
assert(@insert_statement.bind(text: 'hello'))
182+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind(text: 'hello'))
182183

183184
results = insert_and_get_results
184185

@@ -190,7 +191,7 @@ def obj.to_str
190191
'hello'
191192
end
192193

193-
assert(@insert_statement.bind(text: obj))
194+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind(text: obj))
194195

195196
results = insert_and_get_results
196197

@@ -204,7 +205,7 @@ def test_bind_timestamp
204205
# valid values
205206
time = Time.now.ceil
206207

207-
assert(@insert_statement.bind(timestamp: time))
208+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind(timestamp: time))
208209

209210
results = insert_and_get_results
210211

@@ -213,7 +214,7 @@ def test_bind_timestamp
213214
# valid values
214215
date_time = DateTime.parse('2023-11-01T12:30:45')
215216

216-
assert(@insert_statement.bind(timestamp: date_time))
217+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind(timestamp: date_time))
217218

218219
results = insert_and_get_results
219220

@@ -227,7 +228,7 @@ def test_bind_uuid
227228
# valid values
228229
uuid = SecureRandom.uuid
229230

230-
assert(@insert_statement.bind(uuid: uuid))
231+
assert_kind_of(Ilios::Cassandra::Statement, @insert_statement.bind(uuid: uuid))
231232

232233
results = insert_and_get_results
233234

0 commit comments

Comments
 (0)