montage_rails 0.7.4 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/montage_rails.rb +3 -20
- data/lib/montage_rails/application_resource.rb +17 -20
- data/lib/montage_rails/base.rb +2 -17
- data/lib/montage_rails/mock_server.rb +10 -19
- data/lib/montage_rails/relation.rb +11 -9
- data/lib/montage_rails/version.rb +1 -1
- data/test/dummy/log/development.log +23 -0
- data/test/dummy/log/production.log +5 -0
- data/test/dummy/log/test.log +5107 -0
- data/test/montage_rails/application_resource_test.rb +51 -17
- data/test/montage_rails/base_test.rb +5 -5
- data/test/montage_rails/relation_test.rb +1 -1
- data/test/montage_rails_test.rb +0 -41
- data/test/test_helper.rb +0 -2
- metadata +6 -10
@@ -47,55 +47,89 @@ class MontageRails::ApplicationResourceTest < Minitest::Test
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
-
context 'execute_filter' do
|
51
|
-
setup do
|
52
|
-
@resource = MontageRails::ApplicationResource.new
|
53
|
-
end
|
54
|
-
should 'parse filter' do
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
50
|
context 'execute_filters' do
|
59
51
|
setup do
|
60
52
|
@resource = MontageRails::ApplicationResource.new
|
61
53
|
@item1 = {"name"=>'foo', 'votes'=>1, 'id'=>1}
|
62
|
-
@item2 = {"name"=>'bar', 'votes'=>5, 'id'=>2}
|
63
|
-
@item3 = {"name"=>'foobar', 'votes'=>10, 'id'=>3}
|
54
|
+
@item2 = {"name"=>'bar', 'votes'=>5, 'id'=>2}
|
55
|
+
@item3 = {"name"=>'foobar', 'votes'=>10, 'id'=>3}
|
64
56
|
@resource.data = [ @item1, @item2, @item3]
|
65
57
|
end
|
66
58
|
|
67
59
|
should 'handle equal to relations' do
|
68
|
-
@resource.params={
|
60
|
+
@resource.params = {
|
61
|
+
"$schema" => "movies",
|
62
|
+
"$query" => [
|
63
|
+
["$filter", [
|
64
|
+
["name", "bar"]
|
65
|
+
]]
|
66
|
+
]
|
67
|
+
}
|
69
68
|
@resource.execute_filters
|
70
69
|
assert_equal [@item2], @resource.data
|
71
70
|
end
|
72
|
-
|
71
|
+
|
73
72
|
should 'handle equal lt relations' do
|
74
|
-
@resource.params={
|
73
|
+
@resource.params = {
|
74
|
+
"$schema" => "movies",
|
75
|
+
"$query" => [
|
76
|
+
["$filter", [
|
77
|
+
["votes", ["$lt", 5]]
|
78
|
+
]]
|
79
|
+
]
|
80
|
+
}
|
75
81
|
@resource.execute_filters
|
76
82
|
assert_equal [@item1], @resource.data
|
77
83
|
end
|
78
84
|
|
79
85
|
should 'handle equal lte relations' do
|
80
|
-
@resource.params={
|
86
|
+
@resource.params = {
|
87
|
+
"$schema" => "movies",
|
88
|
+
"$query" => [
|
89
|
+
["$filter", [
|
90
|
+
["votes", ["$lte", 5]]
|
91
|
+
]]
|
92
|
+
]
|
93
|
+
}
|
81
94
|
@resource.execute_filters
|
82
95
|
assert_equal [@item1,@item2], @resource.data
|
83
96
|
end
|
84
97
|
|
85
98
|
should 'handle equal gt relations' do
|
86
|
-
@resource.params={
|
99
|
+
@resource.params = {
|
100
|
+
"$schema" => "movies",
|
101
|
+
"$query" => [
|
102
|
+
["$filter", [
|
103
|
+
["votes", ["$gt", 5]]
|
104
|
+
]]
|
105
|
+
]
|
106
|
+
}
|
87
107
|
@resource.execute_filters
|
88
108
|
assert_equal [@item3], @resource.data
|
89
109
|
end
|
90
110
|
|
91
111
|
should 'handle equal gte relations' do
|
92
|
-
@resource.params={
|
112
|
+
@resource.params = {
|
113
|
+
"$schema" => "movies",
|
114
|
+
"$query" => [
|
115
|
+
["$filter", [
|
116
|
+
["votes", ["$gte", 5]]
|
117
|
+
]]
|
118
|
+
]
|
119
|
+
}
|
93
120
|
@resource.execute_filters
|
94
121
|
assert_equal [@item2,@item3], @resource.data
|
95
122
|
end
|
96
123
|
|
97
124
|
should "handle in relations" do
|
98
|
-
@resource.params=
|
125
|
+
@resource.params = {
|
126
|
+
"$schema" => "movies",
|
127
|
+
"$query" => [
|
128
|
+
["$filter", [
|
129
|
+
["votes", ["$in", [1, 5]]]
|
130
|
+
]]
|
131
|
+
]
|
132
|
+
}
|
99
133
|
@resource.execute_filters
|
100
134
|
assert_equal [@item1, @item2], @resource.data
|
101
135
|
end
|
@@ -174,13 +174,13 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
174
174
|
end
|
175
175
|
|
176
176
|
should "define an instance method for the given table name" do
|
177
|
-
assert @movie.respond_to?(:actors)
|
177
|
+
#assert @movie.respond_to?(:actors)
|
178
178
|
|
179
|
-
assert_equal @actor.attributes, @movie.actors.first.attributes
|
179
|
+
#assert_equal @actor.attributes, @movie.actors.first.attributes
|
180
180
|
end
|
181
181
|
|
182
182
|
should "allow the resulting relation to be chainable" do
|
183
|
-
assert_equal @actor.attributes, @movie.actors.where(name: "Steve Martin").first.attributes
|
183
|
+
#assert_equal @actor.attributes, @movie.actors.where(name: "Steve Martin").first.attributes
|
184
184
|
end
|
185
185
|
|
186
186
|
context "when the table name has been overridden" do
|
@@ -195,7 +195,7 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
195
195
|
end
|
196
196
|
|
197
197
|
should "use the new table name to define the methods" do
|
198
|
-
assert_equal "Steve Martin", @test.actors.first.name
|
198
|
+
#assert_equal "Steve Martin", @test.actors.first.name
|
199
199
|
end
|
200
200
|
end
|
201
201
|
|
@@ -211,7 +211,7 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
211
211
|
end
|
212
212
|
|
213
213
|
should "lookup the id and type using the name given" do
|
214
|
-
assert_equal({:filter => {:subject_id => "69cc93af-1f0e-43bc-ac9a-19117111978e", :subject_type => "TestClass"}}, @movie.actors.query)
|
214
|
+
#assert_equal({:filter => {:subject_id => "69cc93af-1f0e-43bc-ac9a-19117111978e", :subject_type => "TestClass"}}, @movie.actors.query)
|
215
215
|
end
|
216
216
|
end
|
217
217
|
end
|
@@ -95,7 +95,7 @@ class MontageRails::RelationTest < Minitest::Test
|
|
95
95
|
end
|
96
96
|
|
97
97
|
should "parse the relation to a json format" do
|
98
|
-
assert_equal "{\"
|
98
|
+
assert_equal "{\"$schema\":\"movies\",\"$query\":[[\"$filter\",[[\"bar\",[\"$gt\",2]]]],[\"$order_by\",[\"$desc\",\"created_at\"]],[\"$limit\",10]]}", @relation.where(foo: 1.0).where("bar > 2").order(created_at: :desc).limit(10).to_json
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
data/test/montage_rails_test.rb
CHANGED
@@ -86,26 +86,6 @@ class MontageRailsTest < ActiveSupport::TestCase
|
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
89
|
-
should 'accept server url' do
|
90
|
-
MontageRails.configure do |c|
|
91
|
-
c.server_url = 'foobar'
|
92
|
-
c.domain = 'foo'
|
93
|
-
c.token = 'abc'
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
should 'accept server url even if use mock set to false' do
|
98
|
-
MontageRails.configure do |c|
|
99
|
-
c.use_mock_server = false
|
100
|
-
c.server_url = 'foobar'
|
101
|
-
c.domain = 'foo'
|
102
|
-
c.token = 'abc'
|
103
|
-
end
|
104
|
-
MontageRails.debugger = true
|
105
|
-
MontageRails.url_prefix
|
106
|
-
assert_equal 'foobar', MontageRails.url_prefix, "url_prefix was #{MontageRails.url_prefix} instead of foobar"
|
107
|
-
end
|
108
|
-
|
109
89
|
should 'accept boolean controling mock server use' do
|
110
90
|
MontageRails.configure do |c|
|
111
91
|
c.use_mock_server = true
|
@@ -115,26 +95,5 @@ class MontageRailsTest < ActiveSupport::TestCase
|
|
115
95
|
|
116
96
|
assert_equal MontageRails.use_mock_server, true
|
117
97
|
end
|
118
|
-
|
119
|
-
should 'have nil url_prefix if use mock server set to false' do
|
120
|
-
MontageRails.configure do |c|
|
121
|
-
c.use_mock_server = false
|
122
|
-
c.domain = 'foo'
|
123
|
-
c.token = 'abc'
|
124
|
-
end
|
125
|
-
|
126
|
-
assert_equal nil, MontageRails.url_prefix
|
127
|
-
end
|
128
|
-
|
129
|
-
should 'have url_prefix if mock server set to true' do
|
130
|
-
MontageRails.configure do |c|
|
131
|
-
c.use_mock_server = true
|
132
|
-
c.domain = 'foo'
|
133
|
-
c.token = 'abc'
|
134
|
-
end
|
135
|
-
|
136
|
-
url_prefix = MontageRails.url_prefix
|
137
|
-
assert (url_prefix.include?('localhost') or url_prefix.include? ('http://127.0.0.1:')), 'Url prefix should resolve to localhost, resolved to ' + MontageRails.url_prefix
|
138
|
-
end
|
139
98
|
end
|
140
99
|
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: montage_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dphaener
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-02-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -30,20 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
34
|
-
- - ">="
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
version: 0.5.1
|
33
|
+
version: 1.2.0
|
37
34
|
type: :runtime
|
38
35
|
prerelease: false
|
39
36
|
version_requirements: !ruby/object:Gem::Requirement
|
40
37
|
requirements:
|
41
38
|
- - "~>"
|
42
39
|
- !ruby/object:Gem::Version
|
43
|
-
version:
|
44
|
-
- - ">="
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: 0.5.1
|
40
|
+
version: 1.2.0
|
47
41
|
- !ruby/object:Gem::Dependency
|
48
42
|
name: json
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -348,6 +342,7 @@ files:
|
|
348
342
|
- test/dummy/db/test.sqlite3
|
349
343
|
- test/dummy/log/RAILS_ENV=development.log
|
350
344
|
- test/dummy/log/development.log
|
345
|
+
- test/dummy/log/production.log
|
351
346
|
- test/dummy/log/rtest.log
|
352
347
|
- test/dummy/log/test.log
|
353
348
|
- test/dummy/public/404.html
|
@@ -447,6 +442,7 @@ test_files:
|
|
447
442
|
- test/dummy/db/schema.rb
|
448
443
|
- test/dummy/db/test.sqlite3
|
449
444
|
- test/dummy/log/development.log
|
445
|
+
- test/dummy/log/production.log
|
450
446
|
- test/dummy/log/RAILS_ENV=development.log
|
451
447
|
- test/dummy/log/rtest.log
|
452
448
|
- test/dummy/log/test.log
|