require File.expand_path(File.join(File.dirname(__FILE__),"spec_helper.rb")) require 'amalgalite/sqlite3' require 'rbconfig' describe "Amalgalite::SQLite3" do it "is threadsafe is ruby is compiled with pthread support, in this case that is (#{Config::CONFIG['configure_args'].include?( "--enable-pthread" )})" do Amalgalite::SQLite3.threadsafe?.should eql(Config::CONFIG['configure_args'].include?( "--enable-pthread" )) end it "knows if an SQL statement is complete" do Amalgalite::SQLite3.complete?("SELECT * FROM sometable;").should eql(true) Amalgalite::SQLite3.complete?("SELECT * FROM sometable;", :utf16 => true).should eql(true) end it "knows if an SQL statement is not complete" do Amalgalite::SQLite3.complete?("SELECT * FROM sometable ").should eql(false) Amalgalite::SQLite3.complete?("SELECT * FROM sometable WHERE ", :utf16 => true).should eql(false) end it "can produce random data" do Amalgalite::SQLite3.randomness( 42 ).size.should eql(42) end it "has nil for the default sqlite temporary directory" do Amalgalite::SQLite3.temp_directory.should eql(nil) end it "can set the temporary directory" do Amalgalite::SQLite3.temp_directory.should eql(nil) Amalgalite::SQLite3.temp_directory = "/tmp/testing" Amalgalite::SQLite3.temp_directory.should eql("/tmp/testing") Amalgalite::SQLite3.temp_directory = nil Amalgalite::SQLite3.temp_directory.should eql(nil) end it "can escape quoted strings" do Amalgalite::SQLite3.escape( "It's a happy day!" ).should eql("It''s a happy day!") end it "can escape a symble into a string" do Amalgalite::SQLite3.escape( :stuff ).should eql("stuff") Amalgalite::SQLite3.escape( :"stuff'n" ).should eql("stuff''n") end it "can quote and escape single quoted strings" do Amalgalite::SQLite3.quote( "It's a happy day!" ).should eql("'It''s a happy day!'") end it "can quote and escape symbols" do Amalgalite::SQLite3.quote( :stuff ).should eql("'stuff'") Amalgalite::SQLite3.quote( :"stuff'n" ).should eql("'stuff''n'") end end