@@ -104,4 +104,73 @@ defmodule Sqlitex.StatementTest do
104
104
105
105
assert reason == :timeout
106
106
end
107
+
108
+ test "prepare! raise" do
109
+ { :ok , db } = Sqlitex . open ( ":memory:" )
110
+
111
+ assert_raise Sqlitex.Statement.PrepareError , fn ->
112
+ Sqlitex.Statement . prepare! ( db , "SELECT * FROMMMM TABLE;" )
113
+ end
114
+ end
115
+
116
+ test "build_values error" do
117
+ { :ok , db } = Sqlitex . open ( ":memory:" )
118
+
119
+ :ok = Sqlitex . exec ( db , "CREATE TABLE bv (id INTEGER PRIMARY KEY);" )
120
+
121
+ result = db
122
+ |> Sqlitex.Statement . prepare! ( "SELECT * FROM bv" )
123
+ |> Sqlitex.Statement . bind_values ( [ 1 ] )
124
+
125
+ assert result == { :error , :args_wrong_length }
126
+ end
127
+
128
+ test "build_values! ok" do
129
+ { :ok , db } = Sqlitex . open ( ":memory:" )
130
+
131
+ :ok = Sqlitex . exec ( db , "CREATE TABLE bv (id INTEGER PRIMARY KEY);" )
132
+
133
+ assert { :ok , _stmt } = db
134
+ |> Sqlitex.Statement . prepare! ( "SELECT * FROM bv WHERE id = ?1" )
135
+ |> Sqlitex.Statement . bind_values ( [ 1 ] )
136
+ end
137
+
138
+ test "build_values! raise" do
139
+ { :ok , db } = Sqlitex . open ( ":memory:" )
140
+
141
+ :ok = Sqlitex . exec ( db , "CREATE TABLE bv (id INTEGER PRIMARY KEY);" )
142
+
143
+ assert_raise Sqlitex.Statement.BindValuesError , fn ->
144
+ db
145
+ |> Sqlitex.Statement . prepare! ( "SELECT * FROM bv" )
146
+ |> Sqlitex.Statement . bind_values! ( [ 1 ] )
147
+ end
148
+ end
149
+
150
+ test "fetch_all! raise" do
151
+ { :ok , db } = Sqlitex . open ( ":memory:" )
152
+
153
+ :ok = Sqlitex . exec ( db , "CREATE TABLE bv (id INTEGER PRIMARY KEY);" )
154
+ :ok = Sqlitex . exec ( db , "BEGIN TRANSACTION;" )
155
+
156
+ assert_raise Sqlitex.Statement.FetchAllError , fn ->
157
+ db
158
+ |> Sqlitex.Statement . prepare! ( "BEGIN TRANSACTION;" )
159
+ |> Sqlitex.Statement . fetch_all! ( db_timeout: 1_000 )
160
+ end
161
+ end
162
+
163
+ test "exec! raise" do
164
+ { :ok , db } = Sqlitex . open ( ":memory:" )
165
+
166
+ :ok = Sqlitex . exec ( db , "CREATE TABLE bv (id INTEGER PRIMARY KEY);" )
167
+ :ok = Sqlitex . exec ( db , "BEGIN TRANSACTION;" )
168
+
169
+ assert_raise Sqlitex.Statement.ExecError , fn ->
170
+ db
171
+ |> Sqlitex.Statement . prepare! ( "BEGIN TRANSACTION;" )
172
+ |> Sqlitex.Statement . exec! ( db_timeout: 1_000 )
173
+ end
174
+ end
175
+
107
176
end
0 commit comments