parse_resource 1.7.2 → 1.7.3
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/.travis.yml +6 -0
- data/Gemfile +5 -1
- data/Gemfile.lock +11 -1
- data/README.md +21 -8
- data/VERSION +1 -1
- data/fixtures/vcr_cassettes/test_all.yml +161 -0
- data/fixtures/vcr_cassettes/test_attribute_getters.yml +57 -0
- data/fixtures/vcr_cassettes/test_attribute_setters.yml +57 -0
- data/fixtures/vcr_cassettes/test_authenticate.yml +155 -0
- data/fixtures/vcr_cassettes/test_chained_wheres.yml +161 -0
- data/fixtures/vcr_cassettes/test_count.yml +411 -0
- data/fixtures/vcr_cassettes/test_create.yml +57 -0
- data/fixtures/vcr_cassettes/test_created_at.yml +57 -0
- data/fixtures/vcr_cassettes/test_destroy.yml +157 -0
- data/fixtures/vcr_cassettes/test_destroy_all.yml +207 -0
- data/fixtures/vcr_cassettes/test_each.yml +269 -0
- data/fixtures/vcr_cassettes/test_find.yml +107 -0
- data/fixtures/vcr_cassettes/test_find_all_by.yml +157 -0
- data/fixtures/vcr_cassettes/test_find_by.yml +157 -0
- data/fixtures/vcr_cassettes/test_first.yml +107 -0
- data/fixtures/vcr_cassettes/test_id.yml +57 -0
- data/fixtures/vcr_cassettes/test_limit.yml +864 -0
- data/fixtures/vcr_cassettes/test_map.yml +269 -0
- data/fixtures/vcr_cassettes/test_save.yml +111 -0
- data/fixtures/vcr_cassettes/test_skip.yml +843 -0
- data/fixtures/vcr_cassettes/test_update.yml +111 -0
- data/fixtures/vcr_cassettes/test_updated_at.yml +111 -0
- data/fixtures/vcr_cassettes/test_username_should_be_unique.yml +109 -0
- data/fixtures/vcr_cassettes/test_where.yml +107 -0
- data/lib/parse_resource/base.rb +66 -69
- data/lib/parse_resource/parse_user.rb +1 -1
- data/lib/parse_resource/query.rb +9 -9
- data/parse_resource.gemspec +41 -7
- data/parse_resource.yml +12 -0
- data/test/active_model_lint_test.rb +5 -6
- data/test/helper.rb +8 -0
- data/test/test_parse_resource.rb +183 -117
- data/test/test_parse_user.rb +39 -32
- data/test/test_query_options.rb +43 -17
- metadata +149 -26
- data/test/test_associations.rb +0 -105
@@ -52,7 +52,7 @@ class ParseUser < ParseResource::Base
|
|
52
52
|
resource = RestClient::Resource.new(base_uri, app_id, master_key)
|
53
53
|
|
54
54
|
begin
|
55
|
-
resp = resource.post(:email => email)
|
55
|
+
resp = resource.post({:email => email}.to_json, :content_type => 'application/json')
|
56
56
|
true
|
57
57
|
rescue
|
58
58
|
false
|
data/lib/parse_resource/query.rb
CHANGED
@@ -23,18 +23,18 @@ class Query
|
|
23
23
|
self
|
24
24
|
end
|
25
25
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
end
|
31
|
-
|
32
|
-
#TODO: make this work
|
33
|
-
#def skip(skip)
|
34
|
-
# criteria[:skip] = skip
|
26
|
+
# deprecating until it works
|
27
|
+
#def order(attribute)
|
28
|
+
# attribute = attribute.to_sym if attribute.is_a?(String)
|
29
|
+
# criteria[:order] = attribute
|
35
30
|
# self
|
36
31
|
#end
|
37
32
|
|
33
|
+
def skip(skip)
|
34
|
+
criteria[:skip] = skip
|
35
|
+
self
|
36
|
+
end
|
37
|
+
|
38
38
|
def count(count=1)
|
39
39
|
criteria[:count] = count
|
40
40
|
#self
|
data/parse_resource.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "parse_resource"
|
8
|
-
s.version = "1.7.
|
8
|
+
s.version = "1.7.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Alan deLevie"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-09-20"
|
13
13
|
s.description = ""
|
14
14
|
s.email = "adelevie@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -18,12 +18,37 @@ Gem::Specification.new do |s|
|
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
|
+
".travis.yml",
|
21
22
|
"Gemfile",
|
22
23
|
"Gemfile.lock",
|
23
24
|
"LICENSE.txt",
|
24
25
|
"README.md",
|
25
26
|
"Rakefile",
|
26
27
|
"VERSION",
|
28
|
+
"fixtures/vcr_cassettes/test_all.yml",
|
29
|
+
"fixtures/vcr_cassettes/test_attribute_getters.yml",
|
30
|
+
"fixtures/vcr_cassettes/test_attribute_setters.yml",
|
31
|
+
"fixtures/vcr_cassettes/test_authenticate.yml",
|
32
|
+
"fixtures/vcr_cassettes/test_chained_wheres.yml",
|
33
|
+
"fixtures/vcr_cassettes/test_count.yml",
|
34
|
+
"fixtures/vcr_cassettes/test_create.yml",
|
35
|
+
"fixtures/vcr_cassettes/test_created_at.yml",
|
36
|
+
"fixtures/vcr_cassettes/test_destroy.yml",
|
37
|
+
"fixtures/vcr_cassettes/test_destroy_all.yml",
|
38
|
+
"fixtures/vcr_cassettes/test_each.yml",
|
39
|
+
"fixtures/vcr_cassettes/test_find.yml",
|
40
|
+
"fixtures/vcr_cassettes/test_find_all_by.yml",
|
41
|
+
"fixtures/vcr_cassettes/test_find_by.yml",
|
42
|
+
"fixtures/vcr_cassettes/test_first.yml",
|
43
|
+
"fixtures/vcr_cassettes/test_id.yml",
|
44
|
+
"fixtures/vcr_cassettes/test_limit.yml",
|
45
|
+
"fixtures/vcr_cassettes/test_map.yml",
|
46
|
+
"fixtures/vcr_cassettes/test_save.yml",
|
47
|
+
"fixtures/vcr_cassettes/test_skip.yml",
|
48
|
+
"fixtures/vcr_cassettes/test_update.yml",
|
49
|
+
"fixtures/vcr_cassettes/test_updated_at.yml",
|
50
|
+
"fixtures/vcr_cassettes/test_username_should_be_unique.yml",
|
51
|
+
"fixtures/vcr_cassettes/test_where.yml",
|
27
52
|
"lib/.DS_Store",
|
28
53
|
"lib/parse_resource.rb",
|
29
54
|
"lib/parse_resource/base.rb",
|
@@ -33,6 +58,7 @@ Gem::Specification.new do |s|
|
|
33
58
|
"lib/parse_resource/parse_user_validator.rb",
|
34
59
|
"lib/parse_resource/query.rb",
|
35
60
|
"parse_resource.gemspec",
|
61
|
+
"parse_resource.yml",
|
36
62
|
"rdoc/ParseResource.html",
|
37
63
|
"rdoc/created.rid",
|
38
64
|
"rdoc/index.html",
|
@@ -40,7 +66,6 @@ Gem::Specification.new do |s|
|
|
40
66
|
"rdoc/rdoc.css",
|
41
67
|
"test/active_model_lint_test.rb",
|
42
68
|
"test/helper.rb",
|
43
|
-
"test/test_associations.rb",
|
44
69
|
"test/test_parse_resource.rb",
|
45
70
|
"test/test_parse_user.rb",
|
46
71
|
"test/test_query.rb",
|
@@ -49,7 +74,7 @@ Gem::Specification.new do |s|
|
|
49
74
|
s.homepage = "http://github.com/adelevie/parse_resource"
|
50
75
|
s.licenses = ["MIT"]
|
51
76
|
s.require_paths = ["lib"]
|
52
|
-
s.rubygems_version = "1.8.
|
77
|
+
s.rubygems_version = "1.8.24"
|
53
78
|
s.summary = "An ActiveResource-like wrapper for the Parse REST api."
|
54
79
|
|
55
80
|
if s.respond_to? :specification_version then
|
@@ -59,36 +84,45 @@ Gem::Specification.new do |s|
|
|
59
84
|
s.add_runtime_dependency(%q<rest-client>, [">= 0"])
|
60
85
|
s.add_runtime_dependency(%q<activesupport>, [">= 0"])
|
61
86
|
s.add_runtime_dependency(%q<activemodel>, [">= 0"])
|
62
|
-
s.
|
87
|
+
s.add_runtime_dependency(%q<json>, [">= 0"])
|
88
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.1.5"])
|
63
89
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
64
90
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
65
91
|
s.add_development_dependency(%q<reek>, ["~> 1.2.8"])
|
66
92
|
s.add_development_dependency(%q<rest-client>, [">= 0"])
|
67
93
|
s.add_development_dependency(%q<activesupport>, [">= 0"])
|
68
94
|
s.add_development_dependency(%q<activemodel>, [">= 0"])
|
95
|
+
s.add_development_dependency(%q<vcr>, [">= 0"])
|
96
|
+
s.add_development_dependency(%q<webmock>, [">= 0"])
|
69
97
|
else
|
70
98
|
s.add_dependency(%q<rest-client>, [">= 0"])
|
71
99
|
s.add_dependency(%q<activesupport>, [">= 0"])
|
72
100
|
s.add_dependency(%q<activemodel>, [">= 0"])
|
73
|
-
s.add_dependency(%q<
|
101
|
+
s.add_dependency(%q<json>, [">= 0"])
|
102
|
+
s.add_dependency(%q<bundler>, ["~> 1.1.5"])
|
74
103
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
75
104
|
s.add_dependency(%q<rcov>, [">= 0"])
|
76
105
|
s.add_dependency(%q<reek>, ["~> 1.2.8"])
|
77
106
|
s.add_dependency(%q<rest-client>, [">= 0"])
|
78
107
|
s.add_dependency(%q<activesupport>, [">= 0"])
|
79
108
|
s.add_dependency(%q<activemodel>, [">= 0"])
|
109
|
+
s.add_dependency(%q<vcr>, [">= 0"])
|
110
|
+
s.add_dependency(%q<webmock>, [">= 0"])
|
80
111
|
end
|
81
112
|
else
|
82
113
|
s.add_dependency(%q<rest-client>, [">= 0"])
|
83
114
|
s.add_dependency(%q<activesupport>, [">= 0"])
|
84
115
|
s.add_dependency(%q<activemodel>, [">= 0"])
|
85
|
-
s.add_dependency(%q<
|
116
|
+
s.add_dependency(%q<json>, [">= 0"])
|
117
|
+
s.add_dependency(%q<bundler>, ["~> 1.1.5"])
|
86
118
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
87
119
|
s.add_dependency(%q<rcov>, [">= 0"])
|
88
120
|
s.add_dependency(%q<reek>, ["~> 1.2.8"])
|
89
121
|
s.add_dependency(%q<rest-client>, [">= 0"])
|
90
122
|
s.add_dependency(%q<activesupport>, [">= 0"])
|
91
123
|
s.add_dependency(%q<activemodel>, [">= 0"])
|
124
|
+
s.add_dependency(%q<vcr>, [">= 0"])
|
125
|
+
s.add_dependency(%q<webmock>, [">= 0"])
|
92
126
|
end
|
93
127
|
end
|
94
128
|
|
data/parse_resource.yml
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
development:
|
2
|
+
app_id: <%= ENV["PARSE_RESOURCE_APPLICATION_ID"] %>
|
3
|
+
master_key: <%= ENV["PARSE_RESOURCE_MASTER_KEY"] %>
|
4
|
+
|
5
|
+
test:
|
6
|
+
app_id: <%= ENV["PARSE_RESOURCE_APPLICATION_ID"] %>
|
7
|
+
master_key: <%= ENV["PARSE_RESOURCE_MASTER_KEY"] %>
|
8
|
+
|
9
|
+
|
10
|
+
production:
|
11
|
+
app_id: <%= ENV["PARSE_RESOURCE_APPLICATION_ID"] %>
|
12
|
+
master_key: <%= ENV["PARSE_RESOURCE_MASTER_KEY"] %>
|
@@ -1,12 +1,11 @@
|
|
1
1
|
require 'helper'
|
2
2
|
require 'parse_resource'
|
3
3
|
|
4
|
-
path = "parse_resource.yml"
|
5
|
-
settings = YAML.load(ERB.new(File.new(path).read).result)['test']
|
4
|
+
#path = "parse_resource.yml"
|
5
|
+
#settings = YAML.load(ERB.new(File.new(path).read).result)['test']
|
6
|
+
ParseResource::Base.load!(ENV["PARSE_RESOURCE_APPLICATION_ID"], ENV["PARSE_RESOURCE_MASTER_KEY"])
|
6
7
|
|
7
|
-
ParseResource
|
8
|
-
|
9
|
-
class Post < ParseResource
|
8
|
+
class Bowl < ParseResource
|
10
9
|
fields :title, :body, :author
|
11
10
|
validates_presence_of :title
|
12
11
|
end
|
@@ -14,6 +13,6 @@ class ActiveModelLintTest < ActiveModel::TestCase
|
|
14
13
|
include ActiveModel::Lint::Tests
|
15
14
|
|
16
15
|
def setup
|
17
|
-
@model =
|
16
|
+
@model = Bowl.new
|
18
17
|
end
|
19
18
|
end
|
data/test/helper.rb
CHANGED
@@ -8,6 +8,14 @@ rescue Bundler::BundlerError => e
|
|
8
8
|
exit e.status_code
|
9
9
|
end
|
10
10
|
require 'test/unit'
|
11
|
+
require 'vcr'
|
12
|
+
require 'webmock/test_unit'
|
13
|
+
|
14
|
+
VCR.configure do |c|
|
15
|
+
c.cassette_library_dir = 'fixtures/vcr_cassettes'
|
16
|
+
c.hook_into :webmock # or :fakeweb
|
17
|
+
c.allow_http_connections_when_no_cassette = true
|
18
|
+
end
|
11
19
|
|
12
20
|
#$LOAD_PATH.unshift(File.dirname(__FILE__))
|
13
21
|
#$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
data/test/test_parse_resource.rb
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
require 'helper'
|
2
2
|
require 'parse_resource'
|
3
3
|
|
4
|
-
path = "parse_resource.yml"
|
5
|
-
settings = YAML.load(ERB.new(File.new(path).read).result)['test']
|
4
|
+
#path = "parse_resource.yml"
|
5
|
+
#settings = YAML.load(ERB.new(File.new(path).read).result)['test']
|
6
|
+
#ParseResource::Base.load!(settings['app_id'], settings['master_key'])
|
6
7
|
|
7
|
-
ParseResource::Base.load!(
|
8
|
+
ParseResource::Base.load!(ENV["PARSE_RESOURCE_APPLICATION_ID"], ENV["PARSE_RESOURCE_MASTER_KEY"])
|
8
9
|
|
9
10
|
class Post < ParseResource::Base
|
10
11
|
fields :title, :body, :author
|
@@ -12,113 +13,156 @@ class Post < ParseResource::Base
|
|
12
13
|
end
|
13
14
|
|
14
15
|
class Author < ParseResource::Base
|
15
|
-
has_many :posts
|
16
16
|
field :name
|
17
17
|
end
|
18
18
|
|
19
|
+
class Spoon < ParseResource::Base
|
20
|
+
fields :width, :length
|
21
|
+
end
|
22
|
+
|
23
|
+
class Fork < ParseResource::Base
|
24
|
+
fields :points
|
25
|
+
end
|
26
|
+
|
27
|
+
class Knife < ParseResource::Base
|
28
|
+
fields :is_shiny
|
29
|
+
end
|
30
|
+
|
31
|
+
class Straw < ParseResource::Base
|
32
|
+
fields :title, :body
|
33
|
+
end
|
34
|
+
|
19
35
|
class TestParseResource < Test::Unit::TestCase
|
20
36
|
|
21
|
-
def setup
|
22
|
-
|
23
|
-
|
24
|
-
|
37
|
+
#def setup
|
38
|
+
# Post.destroy_all
|
39
|
+
# Author.destroy_all
|
40
|
+
# Spoon.destroy_all
|
41
|
+
# Fork.destroy_all
|
42
|
+
# Straw.destroy_all
|
43
|
+
#end
|
25
44
|
|
26
|
-
def teardown
|
27
|
-
|
28
|
-
|
29
|
-
|
45
|
+
#def teardown
|
46
|
+
# Post.destroy_all
|
47
|
+
# Author.destroy_all
|
48
|
+
# Spoon.destroy_all
|
49
|
+
# Fork.destroy_all
|
50
|
+
# Straw.destroy_all
|
51
|
+
#end
|
30
52
|
|
31
53
|
def test_initialize_without_args
|
32
54
|
assert Post.new.is_a?(Post)
|
33
55
|
end
|
34
56
|
|
35
57
|
def test_count
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
58
|
+
VCR.use_cassette('test_count', :record => :new_episodes) do
|
59
|
+
Author.destroy_all
|
60
|
+
p1 = Author.create(:name => "bar")
|
61
|
+
p2 = Author.create(:name => "jab")
|
62
|
+
assert_equal Author.count, 2
|
63
|
+
assert_equal Author.where(:name => "jab").count, 1
|
64
|
+
p1.destroy
|
65
|
+
p2.destroy
|
66
|
+
assert_equal Author.count, 0
|
67
|
+
end
|
44
68
|
end
|
45
69
|
|
46
70
|
def test_initialize_with_args
|
47
|
-
@
|
48
|
-
assert @
|
49
|
-
assert_equal @
|
50
|
-
assert_equal @
|
71
|
+
@spoon = Spoon.new(:length => "title1", :width => "ipso")
|
72
|
+
assert @spoon.is_a?(Spoon)
|
73
|
+
assert_equal @spoon.length, "title1"
|
74
|
+
assert_equal @spoon.width, "ipso"
|
51
75
|
end
|
52
76
|
|
53
77
|
def test_create
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
78
|
+
VCR.use_cassette('test_create', :record => :new_episodes) do
|
79
|
+
s = Spoon.create(:length => "1234567890created!")
|
80
|
+
assert s.is_a?(Spoon)
|
81
|
+
assert s.id
|
82
|
+
assert s.created_at
|
83
|
+
end
|
59
84
|
end
|
60
85
|
|
61
86
|
def test_find
|
62
|
-
|
63
|
-
|
64
|
-
|
87
|
+
VCR.use_cassette('test_find', :record => :new_episodes) do
|
88
|
+
p1 = Spoon.create(:length => "Welcome")
|
89
|
+
p2 = Spoon.find(p1.id)
|
90
|
+
assert_equal p2.id, p2.id
|
91
|
+
end
|
65
92
|
end
|
66
93
|
|
67
94
|
def test_find_should_throw_an_exception_if_object_is_nil
|
68
|
-
|
69
|
-
|
70
|
-
|
95
|
+
VCR.use_cassette('test_find_should_throw_an_exception_if_object_is_nil', :record => :new_episodes) do
|
96
|
+
assert_raise RecordNotFound do
|
97
|
+
Post.find("")
|
98
|
+
end
|
99
|
+
end
|
71
100
|
end
|
72
101
|
|
73
102
|
def test_first
|
74
|
-
|
75
|
-
|
76
|
-
|
103
|
+
VCR.use_cassette('test_first', :record => :new_episodes) do
|
104
|
+
f = Fork.create(:points => "firsttt")
|
105
|
+
p = Fork.first
|
106
|
+
assert p.is_a?(Fork)
|
107
|
+
assert f.id, p.id
|
108
|
+
assert f.points, p.points
|
109
|
+
end
|
77
110
|
end
|
78
111
|
|
79
112
|
def test_find_by
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
113
|
+
VCR.use_cassette('test_find_by', :record => :new_episodes) do
|
114
|
+
p1 = Post.create(:title => "Welcome111")
|
115
|
+
where = Post.where(:title => "Welcome111").first
|
116
|
+
find = Post.find_by_title("Welcome111")
|
117
|
+
assert_equal where.id, find.id
|
118
|
+
end
|
84
119
|
end
|
85
120
|
|
86
121
|
def test_find_all_by
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
122
|
+
VCR.use_cassette('test_find_all_by', :record => :new_episodes) do
|
123
|
+
p1 = Post.create(:title => "Welcome111")
|
124
|
+
where = Post.where(:title => "Welcome111").all
|
125
|
+
find = Post.find_all_by_title("Welcome111")
|
126
|
+
assert_equal where.first.id, find.first.id
|
127
|
+
assert_equal find.class, Array
|
128
|
+
end
|
92
129
|
end
|
93
130
|
|
94
131
|
def test_where
|
95
|
-
|
96
|
-
|
97
|
-
|
132
|
+
VCR.use_cassette('test_where', :record => :new_episodes) do
|
133
|
+
p1 = Post.create(:title => "Welcome111")
|
134
|
+
p2 = Post.where(:title => "Welcome111").first
|
135
|
+
assert_equal p2.title, p1.title
|
136
|
+
end
|
98
137
|
end
|
99
138
|
|
100
139
|
def test_destroy_all
|
101
|
-
|
102
|
-
|
103
|
-
|
140
|
+
VCR.use_cassette('test_destroy_all', :record => :new_episodes) do
|
141
|
+
p = Knife.create(:is_shiny => "arbitrary")
|
142
|
+
Knife.destroy_all
|
143
|
+
assert_equal Knife.count, 0
|
144
|
+
end
|
104
145
|
end
|
105
146
|
|
106
147
|
def test_chained_wheres
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
148
|
+
VCR.use_cassette('test_chained_wheres', :record => :new_episodes) do
|
149
|
+
p1 = Straw.create(:title => "chained_wheres", :body => "testing")
|
150
|
+
p2 = Straw.create(:title => "chained_wheres", :body => "testing_2")
|
151
|
+
query = Straw.where(:title => "chained_wheres").where(:body => "testing")
|
152
|
+
p3 = query.first
|
153
|
+
|
154
|
+
assert_equal p3.id, p1.id
|
155
|
+
end
|
114
156
|
end
|
115
157
|
|
116
158
|
def test_limit
|
117
|
-
|
118
|
-
|
159
|
+
VCR.use_cassette('test_limit', :record => :new_episodes) do
|
160
|
+
15.times do |i|
|
161
|
+
Post.create(:title => "foo_"+i.to_s)
|
162
|
+
end
|
163
|
+
posts = Post.limit(5).all
|
164
|
+
assert_equal posts.length, 5
|
119
165
|
end
|
120
|
-
posts = Post.limit(5).all
|
121
|
-
assert_equal posts.length, 5
|
122
166
|
end
|
123
167
|
|
124
168
|
#def test_skip
|
@@ -130,91 +174,113 @@ class TestParseResource < Test::Unit::TestCase
|
|
130
174
|
#end
|
131
175
|
|
132
176
|
def test_all
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
177
|
+
VCR.use_cassette('test_all', :record => :new_episodes) do
|
178
|
+
Post.create(:title => "11222")
|
179
|
+
Post.create(:title => "112ssd22")
|
180
|
+
posts = Post.all
|
181
|
+
assert posts.is_a?(Array)
|
182
|
+
assert posts[0].is_a?(Post)
|
183
|
+
end
|
138
184
|
end
|
139
185
|
|
140
186
|
def test_attribute_getters
|
141
|
-
|
142
|
-
|
143
|
-
|
187
|
+
VCR.use_cassette('test_attribute_getters', :record => :new_episodes) do
|
188
|
+
@post = Post.create(:title => "title1")
|
189
|
+
assert_equal @post.attributes['title'], "title1"
|
190
|
+
assert_equal @post.attributes['title'], @post.title
|
191
|
+
end
|
144
192
|
end
|
145
193
|
|
146
194
|
def test_attribute_setters
|
147
|
-
|
148
|
-
|
149
|
-
|
195
|
+
VCR.use_cassette('test_attribute_setters', :record => :new_episodes) do
|
196
|
+
@post = Post.create(:title => "1")
|
197
|
+
@post.body = "newerbody"
|
198
|
+
assert_equal @post.body, "newerbody"
|
199
|
+
end
|
150
200
|
end
|
151
201
|
|
152
202
|
def test_save
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
203
|
+
VCR.use_cassette('test_save', :record => :new_episodes) do
|
204
|
+
@post = Post.create(:title => "testing save")
|
205
|
+
@post.save
|
206
|
+
assert @post.attributes['objectId']
|
207
|
+
assert @post.attributes['updatedAt']
|
208
|
+
assert @post.attributes['createdAt']
|
209
|
+
end
|
158
210
|
end
|
159
211
|
|
160
212
|
def test_each
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
213
|
+
VCR.use_cassette('test_each', :record => :new_episodes) do
|
214
|
+
#Post.destroy_all
|
215
|
+
4.times do |i|
|
216
|
+
#Post.create(:title => "each", :author => i.to_s)
|
217
|
+
Post.create(:title => "each")
|
218
|
+
end
|
219
|
+
posts = Post.where(:title => "each")
|
220
|
+
posts.each do |p|
|
221
|
+
assert_equal p.title, "each"
|
222
|
+
end
|
169
223
|
end
|
170
224
|
end
|
171
225
|
|
172
226
|
def test_map
|
173
|
-
|
174
|
-
|
175
|
-
|
227
|
+
VCR.use_cassette('test_map', :record => :new_episodes) do
|
228
|
+
#Post.destroy_all
|
229
|
+
4.times do |i|
|
230
|
+
Post.create(:title => "map")
|
231
|
+
end
|
232
|
+
posts = Post.where(:title => "map")
|
233
|
+
assert_equal posts.map {|p| p}.class, Array
|
176
234
|
end
|
177
|
-
posts = Post.where(:title => "map")
|
178
|
-
assert_equal posts.map {|p| p}.class, Array
|
179
235
|
end
|
180
236
|
|
181
237
|
def test_id
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
238
|
+
VCR.use_cassette('test_id', :record => :new_episodes) do
|
239
|
+
@post = Post.create(:title => "testing id")
|
240
|
+
assert @post.respond_to?(:id)
|
241
|
+
assert @post.id
|
242
|
+
assert @post.attributes['objectId'] = @post.id
|
243
|
+
end
|
186
244
|
end
|
187
245
|
|
188
246
|
def test_created_at
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
247
|
+
VCR.use_cassette('test_created_at', :record => :new_episodes) do
|
248
|
+
@post = Post.create(:title => "testing created_at")
|
249
|
+
assert @post.respond_to?(:created_at)
|
250
|
+
assert @post.created_at
|
251
|
+
assert @post.attributes['createdAt']
|
252
|
+
end
|
193
253
|
end
|
194
254
|
|
195
255
|
def test_updated_at
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
256
|
+
VCR.use_cassette('test_updated_at', :record => :new_episodes) do
|
257
|
+
@post = Post.create(:title => "testing updated_at")
|
258
|
+
@post.title = "something else"
|
259
|
+
@post.save
|
260
|
+
assert @post.updated_at
|
261
|
+
end
|
200
262
|
end
|
201
263
|
|
202
264
|
def test_update
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
265
|
+
VCR.use_cassette('test_update', :record => :new_episodes) do
|
266
|
+
@post = Post.create(:title => "stale title")
|
267
|
+
updated_once = @post.updated_at
|
268
|
+
@post.update(:title => "updated title")
|
269
|
+
assert_equal @post.title, "updated title"
|
270
|
+
@post.title = "updated from setter"
|
271
|
+
assert_equal @post.title, "updated from setter"
|
272
|
+
assert_not_equal @post.updated_at, updated_once
|
273
|
+
end
|
210
274
|
end
|
211
275
|
|
212
276
|
def test_destroy
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
277
|
+
VCR.use_cassette('test_destroy', :record => :new_episodes) do
|
278
|
+
p = Post.create(:title => "hello1234567890abc!")
|
279
|
+
id = p.id
|
280
|
+
p.destroy
|
281
|
+
assert_equal p.title, nil
|
282
|
+
assert_equal 0, Post.where(:title => "hello1234567890abc!", :objectId => id).length
|
283
|
+
end
|
218
284
|
end
|
219
285
|
|
220
286
|
def test_validation
|