Skip to content

Commit

Permalink
Easier method for running the specs on a different backend
Browse files Browse the repository at this point in the history
  • Loading branch information
halorgium committed Jan 21, 2009
1 parent 0ab1e66 commit a3ab286
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 13 deletions.
43 changes: 43 additions & 0 deletions spec/helpers/backend_helper.rb
@@ -0,0 +1,43 @@
module OAuthBackendHelper
module InMemory
def self.setup; end
def self.reset; end
end

module DataMapper
def self.setup
require 'dm-core'
::DataMapper.setup(:default, "sqlite3:///tmp/oauth_provider_test.sqlite3")
end

def self.reset
OAuthProvider.create(:data_mapper)
::DataMapper.auto_migrate!
end
end

def self.setup
backend_module.setup
end

def self.reset
backend_module.reset
end

def self.provider
OAuthProvider.create(backend_name)
end

def self.backend_module
klass_name = backend_name.to_s.split('_').map {|e| e.capitalize}.join
unless const_defined?(klass_name)
$stderr.puts "There is no backend for #{backend_name.inspect}"
exit!
end
const_get(klass_name)
end

def self.backend_name
(ENV["BACKEND"] || "in_memory").to_sym
end
end
17 changes: 4 additions & 13 deletions spec/spec_helper.rb
Expand Up @@ -4,30 +4,21 @@
require 'pp'

require File.dirname(__FILE__) + '/../lib/oauth_provider'
require File.dirname(__FILE__) + '/helpers/backend_helper'

if ENV["DATAMAPPER"]
require 'dm-core'
DataMapper.setup(:default, "sqlite3:///tmp/oauth_provider_test.sqlite3")
end
OAuthBackendHelper.setup

module OAuthProviderHelper
def create_provider
if ENV["DATAMAPPER"]
OAuthProvider.create(:data_mapper)
else
OAuthProvider.create(:in_memory)
end
OAuthBackendHelper.provider
end
end

Spec::Runner.configure do |config|
config.include(OAuthProviderHelper)

config.before(:each) do
if ENV["DATAMAPPER"]
OAuthProvider.create(:data_mapper)
DataMapper.auto_migrate!
end
OAuthBackendHelper.reset
end
end

Expand Down

0 comments on commit a3ab286

Please sign in to comment.