forked from mongodb/mongoid
-
Notifications
You must be signed in to change notification settings - Fork 22
/
spec_helper.rb
139 lines (116 loc) · 2.63 KB
/
spec_helper.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
$LOAD_PATH.unshift(File.dirname(__FILE__))
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
require 'rubygems'
gem "mocha", "0.9.8"
require "mocha"
require "mongoid"
require "spec"
Mongoid.connect_to("mongoid_test")
Spec::Runner.configure do |config|
config.mock_with :mocha
Mocha::Configuration.prevent(:stubbing_non_existent_method)
end
class MixedDrink < Mongoid::Document
field :name
end
class Person < Mongoid::Document
include Mongoid::Timestamps
field :title
field :terms, :type => Boolean
field :age, :type => Integer, :default => 100
field :dob, :type => Date
field :mixed_drink, :type => MixedDrink
field :employer_id
field :lunch_time, :type => Time
has_many :addresses
has_many :phone_numbers, :class_name => "Phone"
has_one :name
has_one :pet, :class_name => "Animal"
def update_addresses
addresses.each_with_index do |address, i|
address.street = "Updated #{i}"
end
end
def employer=(emp)
self.employer_id = emp.id
end
end
class Employer
def id
"1"
end
end
class CountryCode < Mongoid::Document
field :code, :type => Integer
key :code
belongs_to :phone_number, :inverse_of => :country_codes
end
class Phone < Mongoid::Document
field :number
key :number
belongs_to :person, :inverse_of => :phone_numbers
has_one :country_code
end
class Animal < Mongoid::Document
field :name
key :name
belongs_to :person, :inverse_of => :pet
end
class PetOwner < Mongoid::Document
field :title
has_one :pet
end
class Pet < Mongoid::Document
field :name
field :weight, :type => Float, :default => 0.0
has_many :vet_visits
belongs_to :pet_owner, :inverse_of => :pet
end
class VetVisit < Mongoid::Document
field :date, :type => Date
belongs_to :pet, :inverse_of => :vet_visits
end
class Address < Mongoid::Document
field :street
field :city
field :state
field :post_code
key :street
belongs_to :addressable, :inverse_of => :addresses
end
class Name < Mongoid::Document
field :first_name
field :last_name
key :first_name, :last_name
belongs_to :person, :inverse_of => :name
end
class Comment < Mongoid::Document
include Mongoid::Versioning
field :text
end
class Decorated
include Mongoid::Associations::Decorator
def initialize(doc)
@document = doc
end
end
class Post < Mongoid::Document
include Mongoid::Versioning
field :title
end
class Game < Mongoid::Document
field :high_score, :default => 500
field :score, :default => 0
end
if RUBY_VERSION == '1.8.6'
class Array
alias :count :size
end
end
class Object
def tapp
tap do
puts "#{File.basename caller[2]}: #{self.inspect}"
end
end
end