spec/database_spec.rb in apartment-0.15.0 vs spec/database_spec.rb in apartment-0.16.0

- old
+ new

@@ -1,73 +1,96 @@ require 'spec_helper' describe Apartment::Database do - + context "using mysql" do + # See apartment.yml file in dummy app config + + let(:config){ Apartment::Test.config['connections']['mysql'].symbolize_keys } + + before do + ActiveRecord::Base.establish_connection config + Apartment::Test.load_schema # load the Rails schema in the public db schema + subject.stub(:config).and_return config # Use postgresql database config for this test + end + + describe "#adapter" do + before do + subject.reload! + end + + it "should load mysql adapter" do + subject.adapter + Apartment::Adapters::Mysql2Adapter.should be_a(Class) + end + + end + end + context "using postgresql" do - + # See apartment.yml file in dummy app config - + let(:config){ Apartment::Test.config['connections']['postgresql'].symbolize_keys } let(:database){ Apartment::Test.next_db } let(:database2){ Apartment::Test.next_db } - + before do Apartment.use_postgres_schemas = true ActiveRecord::Base.establish_connection config Apartment::Test.load_schema # load the Rails schema in the public db schema subject.stub(:config).and_return config # Use postgresql database config for this test end - + describe "#adapter" do before do subject.reload! end - + it "should load postgresql adapter" do subject.adapter Apartment::Adapters::PostgresqlAdapter.should be_a(Class) end - + it "should raise exception with invalid adapter specified" do subject.stub(:config).and_return config.merge(:adapter => 'unkown') - + expect { Apartment::Database.adapter }.to raise_error end - + end - + context "with schemas" do - + before do Apartment.configure do |config| config.excluded_models = [] config.use_postgres_schemas = true config.seed_after_create = true end subject.create database end - + after{ subject.drop database } - + describe "#create" do it "should seed data" do subject.switch database User.count.should be > 0 end end - + describe "#switch" do - + let(:x){ rand(3) } - + context "creating models" do - + before{ subject.create database2 } after{ subject.drop database2 } - + it "should create a model instance in the current schema" do subject.switch database2 db2_count = User.count + x.times{ User.create } subject.switch database @@ -78,33 +101,33 @@ subject.switch database User.count.should == db_count end end - + context "with excluded models" do - + before do Apartment.configure do |config| config.excluded_models = ["Company"] end subject.init end - + it "should create excluded models in public schema" do subject.reset # ensure we're on public schema count = Company.count + x.times{ Company.create } - + subject.switch database x.times{ Company.create } Company.count.should == count + x subject.reset Company.count.should == count + x end end - + end - + end - + end -end \ No newline at end of file +end