Added example of a non-working 'has 1, :through =>' association.
[merb_mart.git] / spec / spec_helper.rb
blob2da9f3f016cf282cf44d55b12fad6bd145f22be1
1 require 'rubygems'
2 require 'merb-core'
3 require 'spec'
4 require 'data_mapper'
5 require 'can_has_fixtures'
7 # Add the dependency in a before_app_loads hook
8 Merb::BootLoader.before_app_loads { require(File.join(File.dirname(__FILE__), '..', 'lib', 'merb-E-mart')) }
10 DataMapper.setup(:default, 'sqlite3::memory:')
12 # Using Merb.root below makes sure that the correct root is set for
13 # - testing standalone, without being installed as a gem and no host application
14 # - testing from within the host application; its root will be used
15 Merb.start_environment(
16   :testing => true, 
17   :adapter => 'runner', 
18   :environment => ENV['MERB_ENV'] || 'test',
19   :merb_root => Merb.root
22 module Merb
23   module Test
24     module SliceHelper
25       
26       # The absolute path to the current slice
27       def current_slice_root
28         @current_slice_root ||= File.expand_path(File.join(File.dirname(__FILE__), '..'))
29       end
30       
31       # Whether the specs are being run from a host application or standalone
32       def standalone?
33         not $SLICED_APP
34       end
35       
36     end
37   end
38 end
40 Spec::Runner.configure do |config|
41   config.include(Merb::Test::ViewHelper)
42   config.include(Merb::Test::RouteHelper)
43   config.include(Merb::Test::ControllerHelper)
44   config.include(Merb::Test::SliceHelper)
45 end
47 require File.join(File.dirname(__FILE__), 'spec_fixtures')
49 class Random
50   def country_code(options = {:used => true, :unique => true})
51     code = 2.of {('a'..'z').random}.to_s until satisfies?(code, options)
52     
53     @@used << code if options[:used]
54     code
55   end
56   
57   def address
58     "#{rand(100_000)} #{word(:max => 75)} #{%w[st rd ln ave pkwy].random}"
59   end
61   def phone_number
62     "#{(100..999).random}-#{(100..999).random}-#{(0..9999).random}"
63   end
64 end
66 module MockUploadProcessor
67   def process; end
68 end
70 Upload.send :include, MockUploadProcessor