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 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
@@ -872,6 +872,7 @@ This is done on getters now
872
872
  results = q_type == :all ? [] : nil
873
873
  begin
874
874
  results=super(*params)
875
+ #puts 'params3=' + params.inspect
875
876
  SimpleRecord.stats.selects += 1
876
877
  if q_type != :count
877
878
  cache_results(results)
data/lib/stats.rb CHANGED
@@ -2,9 +2,15 @@ module SimpleRecord
2
2
  class Stats
3
3
  attr_accessor :selects, :puts
4
4
 
5
+ def initialize
6
+ @selects = 0
7
+ @puts = 0
8
+ end
9
+
5
10
  def clear
6
11
  self.selects = 0
7
12
  self.puts = 0
8
13
  end
9
14
  end
10
- end
15
+ end
16
+
@@ -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
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appoxy-simple_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Travis Reeder