@@ -143,6 +143,50 @@ defmodule Mongo.SessionTest do
143
143
144
144
end
145
145
146
+ @ tag :mongo_4_2
147
+ test "commit_transaction on multiple database" , % { top: top } do
148
+
149
+ coll = "dogs"
150
+
151
+ Mongo . insert_one ( top , coll , % { name: "Wuff" } )
152
+ Mongo . delete_many ( top , coll , % { } )
153
+ Mongo . insert_one ( top , coll , % { name: "Wuff" } , database: "mongodb_test_2" )
154
+ Mongo . delete_many ( top , coll , % { } , database: "mongodb_test_2" )
155
+
156
+ { :ok , session } = Session . start_session ( top , :write , [ ] )
157
+ assert :ok = Session . start_transaction ( session )
158
+
159
+ { :ok , % InsertOneResult { :inserted_id => id } } = Mongo . insert_one ( top , coll , % { name: "Greta" } , session: session )
160
+ assert id != nil
161
+ { :ok , % InsertOneResult { :inserted_id => id } } = Mongo . insert_one ( top , coll , % { name: "Waldo" } , session: session )
162
+ assert id != nil
163
+ { :ok , % InsertOneResult { :inserted_id => id } } = Mongo . insert_one ( top , coll , % { name: "Tom" } , session: session )
164
+ assert id != nil
165
+
166
+ { :ok , % InsertOneResult { :inserted_id => id } } = Mongo . insert_one ( top , coll , % { name: "Greta" } , session: session , database: "mongodb_test_2" )
167
+ assert id != nil
168
+ { :ok , % InsertOneResult { :inserted_id => id } } = Mongo . insert_one ( top , coll , % { name: "Waldo" } , session: session , database: "mongodb_test_2" )
169
+ assert id != nil
170
+ { :ok , % InsertOneResult { :inserted_id => id } } = Mongo . insert_one ( top , coll , % { name: "Tom" } , session: session , database: "mongodb_test_2" )
171
+ assert id != nil
172
+
173
+ assert % { "name" => "Tom" } = Mongo . find_one ( top , coll , % { name: "Tom" } , session: session )
174
+ assert { :ok , 3 } == Mongo . count_documents ( top , coll , % { } , session: session )
175
+ assert { :ok , 0 } == Mongo . count_documents ( top , coll , % { } )
176
+
177
+ assert % { "name" => "Tom" } = Mongo . find_one ( top , coll , % { name: "Tom" } , session: session , database: "mongodb_test_2" )
178
+ assert { :ok , 3 } == Mongo . count_documents ( top , coll , % { } , session: session , database: "mongodb_test_2" )
179
+ assert { :ok , 0 } == Mongo . count_documents ( top , coll , % { } , database: "mongodb_test_2" )
180
+
181
+ :ok = Session . commit_transaction ( session )
182
+
183
+ % { "_id" => _id , "name" => "Tom" } = Mongo . find_one ( top , coll , % { name: "Tom" } , session: session )
184
+ assert { :ok , 3 } == Mongo . count ( top , coll , % { } )
185
+ assert { :ok , 3 } == Mongo . count ( top , coll , % { } , session: session )
186
+
187
+ assert :ok == Session . end_session ( top , session )
188
+
189
+ end
146
190
@ tag :mongo_4_2
147
191
test "abort_transaction" , % { top: top } do
148
192
0 commit comments