appoxy-simple_record 1.1.3 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
|