appoxy-simple_record 1.1.3 → 1.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/results_array.rb +1 -1
- data/lib/simple_record.rb +1 -0
- data/lib/stats.rb +7 -1
- data/test/test_simple_record.rb +153 -1
- metadata +1 -1
data/lib/results_array.rb
CHANGED
@@ -7,7 +7,6 @@ module SimpleRecord
|
|
7
7
|
@clz = clz
|
8
8
|
#puts 'class=' + clz.inspect
|
9
9
|
@params = params
|
10
|
-
#puts 'params in ra=' + params.inspect
|
11
10
|
@items = items
|
12
11
|
@next_token = next_token
|
13
12
|
@i = 0
|
@@ -26,6 +25,7 @@ module SimpleRecord
|
|
26
25
|
return @count if @count
|
27
26
|
params_for_count = params.dup
|
28
27
|
params_for_count[0] = :count
|
28
|
+
#puts 'params_for_count=' + params_for_count.inspect
|
29
29
|
@count = clz.find(*params_for_count)
|
30
30
|
# puts '@count=' + @count.to_s
|
31
31
|
@count
|
data/lib/simple_record.rb
CHANGED
data/lib/stats.rb
CHANGED
data/test/test_simple_record.rb
CHANGED
@@ -12,7 +12,6 @@ class TestSimpleRecord < Test::Unit::TestCase
|
|
12
12
|
#puts @config.inspect
|
13
13
|
SimpleRecord.establish_connection(@config['amazon']['access_key'], @config['amazon']['secret_key'], :port=>80, :protocol=>"http")
|
14
14
|
SimpleRecord::Base.set_domain_prefix("simplerecord_tests_")
|
15
|
-
SimpleRecord.stats.clear
|
16
15
|
end
|
17
16
|
|
18
17
|
def teardown
|
@@ -20,7 +19,160 @@ class TestSimpleRecord < Test::Unit::TestCase
|
|
20
19
|
end
|
21
20
|
|
22
21
|
|
22
|
+
def test_save_get
|
23
|
+
mm = MyModel.new
|
24
|
+
mm.name = "Travis"
|
25
|
+
mm.age = 32
|
26
|
+
mm.cool = true
|
27
|
+
mm.save
|
28
|
+
|
29
|
+
assert !mm.created.nil?
|
30
|
+
assert !mm.updated.nil?
|
31
|
+
assert !mm.id.nil?
|
32
|
+
assert mm.age == 32
|
33
|
+
assert mm.cool = true
|
34
|
+
assert mm.name = "Travis"
|
35
|
+
|
36
|
+
id = mm.id
|
37
|
+
puts 'id=' + id.to_s
|
38
|
+
# Get the object back
|
39
|
+
mm2 = MyModel.find(id)
|
40
|
+
#puts 'got=' + mm2.name + ' and he/she is ' + mm2.age.to_s + ' years old and he/she is cool? ' + mm2.cool.to_s
|
41
|
+
#puts mm2.cool.class.name
|
42
|
+
assert mm2.id == mm.id
|
43
|
+
assert mm2.age == mm.age
|
44
|
+
assert mm2.cool == mm.cool
|
45
|
+
assert mm2.age == 32
|
46
|
+
assert mm2.cool = true
|
47
|
+
assert mm2.name = "Travis"
|
48
|
+
assert mm2.created.is_a? DateTime
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_bad_query
|
52
|
+
assert_raise RightAws::AwsError do
|
53
|
+
mm2 = MyModel.find(:all, :conditions=>["name =4?", "1"])
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_batch_save
|
58
|
+
items = []
|
59
|
+
mm = MyModel.new
|
60
|
+
mm.name = "Travis"
|
61
|
+
mm.age = 32
|
62
|
+
mm.cool = true
|
63
|
+
items << mm
|
64
|
+
mm = MyModel.new
|
65
|
+
mm.name = "Tritt"
|
66
|
+
mm.age = 44
|
67
|
+
mm.cool = false
|
68
|
+
items << mm
|
69
|
+
MyModel.batch_save(items)
|
70
|
+
items.each do |item|
|
71
|
+
puts 'id=' + item.id
|
72
|
+
new_item = MyModel.find(item.id)
|
73
|
+
#puts 'new=' + new_item.inspect
|
74
|
+
assert item.id == new_item.id
|
75
|
+
assert item.name == new_item.name
|
76
|
+
assert item.cool == new_item.cool
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
# Testing getting the association ID without materializing the obejct
|
81
|
+
def test_get_belongs_to_id
|
82
|
+
mm = MyModel.new
|
83
|
+
mm.name = "Parent"
|
84
|
+
mm.age = 55
|
85
|
+
mm.cool = true
|
86
|
+
mm.save
|
87
|
+
|
88
|
+
child = MyChildModel.new
|
89
|
+
child.name = "Child"
|
90
|
+
child.my_model = mm
|
91
|
+
child.save
|
92
|
+
|
93
|
+
child = MyChildModel.find(child.id)
|
94
|
+
puts child.my_model_id
|
95
|
+
assert child.my_model_id == mm.id
|
96
|
+
end
|
97
|
+
|
98
|
+
def test_callbacks
|
99
|
+
|
100
|
+
|
101
|
+
mm = MyModel.new
|
102
|
+
assert !mm.save
|
103
|
+
assert mm.errors.count == 1 # name is required
|
104
|
+
|
105
|
+
# test queued callback before_create
|
106
|
+
mm.name = "Travis"
|
107
|
+
assert mm.save
|
108
|
+
# now nickname should be set on before_create
|
109
|
+
assert mm.nickname == mm.name
|
110
|
+
|
111
|
+
mm2 = MyModel.find(mm.id)
|
112
|
+
assert mm2.nickname = mm.nickname
|
113
|
+
assert mm2.name = mm.name
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
end
|
118
|
+
|
119
|
+
def test_dirty
|
120
|
+
mm = MyModel.new
|
121
|
+
mm.name = "Travis"
|
122
|
+
mm.age = 32
|
123
|
+
mm.cool = true
|
124
|
+
mm.save
|
125
|
+
id = mm.id
|
126
|
+
puts 'id=' + id.to_s
|
127
|
+
# Get the object back
|
128
|
+
mm2 = MyModel.find(id)
|
129
|
+
puts 'got=' + mm2.name + ' and he/she is ' + mm2.age.to_s + ' years old and he/she is cool? ' + mm2.cool.to_s
|
130
|
+
assert mm2.id == mm.id
|
131
|
+
assert mm2.age == mm.age
|
132
|
+
assert mm2.cool == mm.cool
|
133
|
+
|
134
|
+
mm2.name = "Travis 2"
|
135
|
+
mm2.save(:dirty=>true)
|
136
|
+
|
137
|
+
# todo: how do we assert this?
|
138
|
+
|
139
|
+
end
|
140
|
+
|
141
|
+
# http://api.rubyonrails.org/classes/ActiveRecord/Dirty.html#M002136
|
142
|
+
def test_changed
|
143
|
+
mm = MyModel.new
|
144
|
+
mm.name = "Travis"
|
145
|
+
mm.age = 32
|
146
|
+
mm.cool = true
|
147
|
+
mm.save
|
148
|
+
|
149
|
+
puts 'changed?=' + mm.changed?.to_s
|
150
|
+
assert !mm.changed?
|
151
|
+
assert mm.changed.size == 0
|
152
|
+
assert mm.changes.size == 0
|
153
|
+
assert !mm.name_changed?
|
154
|
+
|
155
|
+
mm.name = "Jim"
|
156
|
+
assert mm.changed?
|
157
|
+
assert mm.changed.size == 1
|
158
|
+
assert mm.changed[0] == "name"
|
159
|
+
|
160
|
+
assert mm.changes.size == 1
|
161
|
+
puts 'CHANGES=' + mm.changes.inspect
|
162
|
+
assert mm.changes["name"][0] == "Travis"
|
163
|
+
assert mm.changes["name"][1] == "Jim"
|
164
|
+
|
165
|
+
assert mm.name_changed?
|
166
|
+
assert mm.name_was == "Travis"
|
167
|
+
assert mm.name_change[0] == "Travis"
|
168
|
+
assert mm.name_change[1] == "Jim"
|
169
|
+
|
170
|
+
end
|
171
|
+
|
23
172
|
def test_count
|
173
|
+
|
174
|
+
SimpleRecord.stats.clear
|
175
|
+
|
24
176
|
count = MyModel.find(:count) # select 1
|
25
177
|
assert count > 0
|
26
178
|
|