From 6a0a450622307f143d6860c304154c3e4e8dc981 Mon Sep 17 00:00:00 2001 From: "Brian J. Cardiff" Date: Mon, 29 Aug 2016 16:50:37 -0300 Subject: [PATCH] make statement_specs run over a single connection --- spec/dummy_driver.cr | 8 +++++++ spec/statement_spec.cr | 54 +++++++++++++++++++++--------------------- 2 files changed, 35 insertions(+), 27 deletions(-) diff --git a/spec/dummy_driver.cr b/spec/dummy_driver.cr index 1add530..8d6b836 100644 --- a/spec/dummy_driver.cr +++ b/spec/dummy_driver.cr @@ -192,3 +192,11 @@ def with_dummy yield db end end + +def with_dummy_connection + with_dummy do |db| + db.using_connection do |cnn| + yield cnn.as(DummyDriver::DummyConnection) + end + end +end diff --git a/spec/statement_spec.cr b/spec/statement_spec.cr index aa3c245..ad7b4b7 100644 --- a/spec/statement_spec.cr +++ b/spec/statement_spec.cr @@ -2,14 +2,14 @@ require "./spec_helper" describe DB::Statement do it "should prepare statements" do - with_dummy do |db| - db.prepare("the query").should be_a(DB::Statement) + with_dummy_connection do |cnn| + cnn.prepare("the query").should be_a(DB::Statement) end end it "should initialize positional params in query" do - with_dummy do |db| - stmt = db.prepare("the query").as(DummyDriver::DummyStatement) + with_dummy_connection do |cnn| + stmt = cnn.prepare("the query").as(DummyDriver::DummyStatement) stmt.query "a", 1, nil stmt.params[0].should eq("a") stmt.params[1].should eq(1) @@ -18,8 +18,8 @@ describe DB::Statement do end it "should initialize positional params in query with array" do - with_dummy do |db| - stmt = db.prepare("the query").as(DummyDriver::DummyStatement) + with_dummy_connection do |cnn| + stmt = cnn.prepare("the query").as(DummyDriver::DummyStatement) stmt.query ["a", 1, nil] stmt.params[0].should eq("a") stmt.params[1].should eq(1) @@ -28,8 +28,8 @@ describe DB::Statement do end it "should initialize positional params in exec" do - with_dummy do |db| - stmt = db.prepare("the query").as(DummyDriver::DummyStatement) + with_dummy_connection do |cnn| + stmt = cnn.prepare("the query").as(DummyDriver::DummyStatement) stmt.exec "a", 1, nil stmt.params[0].should eq("a") stmt.params[1].should eq(1) @@ -38,8 +38,8 @@ describe DB::Statement do end it "should initialize positional params in exec with array" do - with_dummy do |db| - stmt = db.prepare("the query").as(DummyDriver::DummyStatement) + with_dummy_connection do |cnn| + stmt = cnn.prepare("the query").as(DummyDriver::DummyStatement) stmt.exec ["a", 1, nil] stmt.params[0].should eq("a") stmt.params[1].should eq(1) @@ -48,8 +48,8 @@ describe DB::Statement do end it "should initialize positional params in scalar" do - with_dummy do |db| - stmt = db.prepare("the query").as(DummyDriver::DummyStatement) + with_dummy_connection do |cnn| + stmt = cnn.prepare("the query").as(DummyDriver::DummyStatement) stmt.scalar "a", 1, nil stmt.params[0].should eq("a") stmt.params[1].should eq(1) @@ -58,8 +58,8 @@ describe DB::Statement do end it "query with block should not close statement" do - with_dummy do |db| - stmt = db.prepare "3,4 1,2" + with_dummy_connection do |cnn| + stmt = cnn.prepare "3,4 1,2" stmt.query stmt.closed?.should be_false end @@ -67,16 +67,16 @@ describe DB::Statement do it "closing connection should close statement" do stmt = uninitialized DB::Statement - with_dummy do |db| - stmt = db.prepare "3,4 1,2" + with_dummy_connection do |cnn| + stmt = cnn.prepare "3,4 1,2" stmt.query end stmt.closed?.should be_true end it "query with block should not close statement" do - with_dummy do |db| - stmt = db.prepare "3,4 1,2" + with_dummy_connection do |cnn| + stmt = cnn.prepare "3,4 1,2" stmt.query do |rs| end stmt.closed?.should be_false @@ -84,8 +84,8 @@ describe DB::Statement do end it "query should not close statement" do - with_dummy do |db| - stmt = db.prepare "3,4 1,2" + with_dummy_connection do |cnn| + stmt = cnn.prepare "3,4 1,2" stmt.query do |rs| end stmt.closed?.should be_false @@ -93,28 +93,28 @@ describe DB::Statement do end it "scalar should not close statement" do - with_dummy do |db| - stmt = db.prepare "3,4 1,2" + with_dummy_connection do |cnn| + stmt = cnn.prepare "3,4 1,2" stmt.scalar stmt.closed?.should be_false end end it "exec should not close statement" do - with_dummy do |db| - stmt = db.prepare "3,4 1,2" + with_dummy_connection do |cnn| + stmt = cnn.prepare "3,4 1,2" stmt.exec stmt.closed?.should be_false end end it "connection should cache statements by query" do - with_dummy do |db| - rs = db.query "1, ?", 2 + with_dummy_connection do |cnn| + rs = cnn.query "1, ?", 2 stmt = rs.statement rs.close - rs = db.query "1, ?", 4 + rs = cnn.query "1, ?", 4 rs.statement.should be(stmt) end end