montage_rails 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/generators/montage_rails/model_generator.rb +49 -0
- data/lib/generators/montage_rails/templates/model.rb +5 -0
- data/lib/generators/montage_rails/templates/resource.rb +22 -0
- data/lib/generators/montage_rails/templates/test_data.rb +6 -0
- data/lib/montage_rails/application_resource.rb +63 -0
- data/lib/montage_rails/mock_server.rb +54 -0
- data/lib/montage_rails/railtie.rb +5 -0
- data/lib/montage_rails/version.rb +1 -1
- data/lib/montage_rails.rb +34 -1
- data/test/dummy/app/models/movie.rb +1 -0
- data/test/dummy/app/models/test_mod.rb +3 -0
- data/test/dummy/app/models/test_one.rb +3 -0
- data/test/dummy/config/initializers/montage.rb +1 -0
- data/test/dummy/config/routes.rb +3 -54
- data/test/dummy/log/development.log +8 -0
- data/test/dummy/log/test.log +4074 -0
- data/test/dummy/test/fixtures/actors.yml +9 -0
- data/test/dummy/test/fixtures/movies.yml +17 -0
- data/test/dummy/test/fixtures/studios.yml +7 -0
- data/test/dummy/test/fixtures/test_mods.yml +9 -0
- data/test/dummy/test/fixtures/test_ones.yml +11 -0
- data/test/dummy/test/models/actor_test.rb +7 -0
- data/test/dummy/test/models/movie_test.rb +7 -0
- data/test/dummy/test/models/studio_test.rb +7 -0
- data/test/dummy/test/models/test_mod_test.rb +5 -0
- data/test/dummy/test/models/test_one_test.rb +7 -0
- data/test/dummy/test/montage_resources/actor_resource.rb +26 -0
- data/test/dummy/test/montage_resources/movie_resource.rb +43 -0
- data/test/dummy/test/montage_resources/studio_resource.rb +18 -0
- data/test/dummy/test/montage_resources/test_data/actor_test_data.yml +8 -0
- data/test/dummy/test/montage_resources/test_data/movie_test_data.yml +8 -0
- data/test/dummy/test/montage_resources/test_data/studio_test_data.yml +3 -0
- data/test/dummy/test/resources/test_mod_resource.rb +22 -0
- data/test/dummy/test/resources/test_one_resource.rb +26 -0
- data/test/dummy/test/test_helper.rb +0 -0
- data/test/montage_rails/application_resource_test.rb +92 -0
- data/test/montage_rails/base_test.rb +22 -22
- data/test/montage_rails/relation_test.rb +1 -1
- data/test/montage_rails_test.rb +57 -14
- data/test/test_helper.rb +9 -166
- metadata +108 -22
- data/test/resources/actor_resource.rb +0 -141
- data/test/resources/movie_resource.rb +0 -221
- data/test/resources/studio_resource.rb +0 -56
@@ -0,0 +1,17 @@
|
|
1
|
+
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
2
|
+
|
3
|
+
one:
|
4
|
+
studio_id: MyText
|
5
|
+
rank:
|
6
|
+
rating:
|
7
|
+
title: MyText
|
8
|
+
votes:
|
9
|
+
year:
|
10
|
+
|
11
|
+
two:
|
12
|
+
studio_id: MyText
|
13
|
+
rank:
|
14
|
+
rating:
|
15
|
+
title: MyText
|
16
|
+
votes:
|
17
|
+
year:
|
@@ -0,0 +1,26 @@
|
|
1
|
+
class ActorResource < MontageRails::ApplicationResource
|
2
|
+
def self.schema_definition
|
3
|
+
{
|
4
|
+
name: "actors",
|
5
|
+
fields: [
|
6
|
+
{
|
7
|
+
name: "movie_id",
|
8
|
+
datatype: "text",
|
9
|
+
indexed: false,
|
10
|
+
required: false
|
11
|
+
},
|
12
|
+
{
|
13
|
+
name: "name",
|
14
|
+
datatype: "text",
|
15
|
+
indexed: false,
|
16
|
+
required: false
|
17
|
+
},
|
18
|
+
],
|
19
|
+
links: {
|
20
|
+
self: "http://testco.dev.montagehot.club/api/v1/schemas/actors/",
|
21
|
+
query: "http://testco.dev.montagehot.club/api/v1/schemas/actors/query/",
|
22
|
+
create_document: "http://testco.dev.montagehot.club/api/v1/schemas/actors/save/"
|
23
|
+
}
|
24
|
+
}
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
class MovieResource < MontageRails::ApplicationResource
|
2
|
+
def self.schema_definition
|
3
|
+
{
|
4
|
+
name: "movies",
|
5
|
+
fields: [
|
6
|
+
{
|
7
|
+
name: "studio_id",
|
8
|
+
datatype: "text",
|
9
|
+
},
|
10
|
+
{
|
11
|
+
name: "rank",
|
12
|
+
datatype: "numeric",
|
13
|
+
required: true,
|
14
|
+
},
|
15
|
+
{
|
16
|
+
name: "rating",
|
17
|
+
datatype: "numeric",
|
18
|
+
required: true,
|
19
|
+
},
|
20
|
+
{
|
21
|
+
name: "title",
|
22
|
+
datatype: "text",
|
23
|
+
required: true,
|
24
|
+
},
|
25
|
+
{
|
26
|
+
name: "votes",
|
27
|
+
datatype: "numeric",
|
28
|
+
required: true,
|
29
|
+
},
|
30
|
+
{
|
31
|
+
name: "year",
|
32
|
+
datatype: "numeric",
|
33
|
+
required: true,
|
34
|
+
},
|
35
|
+
],
|
36
|
+
links: {
|
37
|
+
self: "http://testco.dev.montagehot.club/api/v1/schemas/movies/",
|
38
|
+
query: "http://testco.dev.montagehot.club/api/v1/schemas/movies/query/",
|
39
|
+
create_document: "http://testco.dev.montagehot.club/api/v1/schemas/movies/save/"
|
40
|
+
}
|
41
|
+
}
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class StudioResource < MontageRails::ApplicationResource
|
2
|
+
def self.schema_definition
|
3
|
+
{
|
4
|
+
name: "studios",
|
5
|
+
fields: [
|
6
|
+
{
|
7
|
+
name: "name",
|
8
|
+
datatype: "text",
|
9
|
+
},
|
10
|
+
],
|
11
|
+
links: {
|
12
|
+
self: "http://testco.dev.montagehot.club/api/v1/schemas/studios/",
|
13
|
+
query: "http://testco.dev.montagehot.club/api/v1/schemas/studios/query/",
|
14
|
+
create_document: "http://testco.dev.montagehot.club/api/v1/schemas/studios/save/"
|
15
|
+
}
|
16
|
+
}
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class TestModResource
|
2
|
+
def self.schema_definition
|
3
|
+
{
|
4
|
+
name: "testmods",
|
5
|
+
fields: [
|
6
|
+
{
|
7
|
+
name: "foo",
|
8
|
+
datatype: "text",
|
9
|
+
},
|
10
|
+
{
|
11
|
+
name: "bar",
|
12
|
+
datatype: "number",
|
13
|
+
},
|
14
|
+
],
|
15
|
+
links: {
|
16
|
+
self: "http://testco.dev.montagehot.club/api/v1/schemas/testmods/",
|
17
|
+
query: "http://testco.dev.montagehot.club/api/v1/schemas/testmods/query/",
|
18
|
+
create_document: "http://testco.dev.montagehot.club/api/v1/schemas/testmods/save/"
|
19
|
+
}
|
20
|
+
}
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
class TestOneResource
|
2
|
+
def self.schema_definition
|
3
|
+
{
|
4
|
+
name: "testones",
|
5
|
+
fields: [
|
6
|
+
{
|
7
|
+
name: "name",
|
8
|
+
datatype: "text",
|
9
|
+
},
|
10
|
+
{
|
11
|
+
name: "title",
|
12
|
+
datatype: "text",
|
13
|
+
},
|
14
|
+
{
|
15
|
+
name: "age",
|
16
|
+
datatype: "number",
|
17
|
+
},
|
18
|
+
],
|
19
|
+
links: {
|
20
|
+
self: "http://testco.dev.montagehot.club/api/v1/schemas/testones/",
|
21
|
+
query: "http://testco.dev.montagehot.club/api/v1/schemas/testones/query/",
|
22
|
+
create_document: "http://testco.dev.montagehot.club/api/v1/schemas/testones/save/"
|
23
|
+
}
|
24
|
+
}
|
25
|
+
end
|
26
|
+
end
|
File without changes
|
@@ -0,0 +1,92 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'montage_rails/application_resource'
|
3
|
+
|
4
|
+
class MontageRails::ApplicationResourceTest < Minitest::Test
|
5
|
+
|
6
|
+
context 'reading yaml data' do
|
7
|
+
setup do
|
8
|
+
@resource = MontageRails::ApplicationResource.new
|
9
|
+
end
|
10
|
+
should 'generate filename from class' do
|
11
|
+
expected = File.join(Rails.root, 'test','montage_resources','test_data',
|
12
|
+
'montage_rails','application_test_data.yml')
|
13
|
+
assert_equal expected, @resource.class_to_filename
|
14
|
+
end
|
15
|
+
should 'call class_to_filename when loading YAML' do
|
16
|
+
filename='some_string'
|
17
|
+
@resource.expects(:class_to_filename).returns(filename)
|
18
|
+
YAML.stubs(:load_file)
|
19
|
+
@resource.read_yaml
|
20
|
+
end
|
21
|
+
should 'use class_to_filename when calling YAML' do
|
22
|
+
filename='some_string'
|
23
|
+
@resource.stubs(:class_to_filename).returns(filename)
|
24
|
+
YAML.expects(:load_file).with(filename)
|
25
|
+
@resource.read_yaml
|
26
|
+
end
|
27
|
+
should 'return yaml load data' do
|
28
|
+
data = { "some_data"=>"New Data"}
|
29
|
+
filename='some_string'
|
30
|
+
@resource.stubs(:class_to_filename).returns(filename)
|
31
|
+
YAML.stubs(:load_file).with(filename).returns(data)
|
32
|
+
assert_equal @resource.read_yaml, data
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'find' do
|
37
|
+
setup do
|
38
|
+
@resource = MontageRails::ApplicationResource.new
|
39
|
+
@resource.expects(:read_yaml).returns([
|
40
|
+
{"id"=>1,"name"=>'wrong'},
|
41
|
+
{"id"=>2,"name"=>'right'},
|
42
|
+
{"id"=>3,"name"=>'extra_wrong'}
|
43
|
+
])
|
44
|
+
end
|
45
|
+
should 'retrieve an item by id' do
|
46
|
+
assert_equal 'right', @resource.find(2)['name']
|
47
|
+
end
|
48
|
+
end
|
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
|
+
context 'execute_filters' do
|
59
|
+
setup do
|
60
|
+
@resource = MontageRails::ApplicationResource.new
|
61
|
+
@item1 = {"name"=>'foo', 'votes'=>1, 'id'=>1}
|
62
|
+
@item2 = {"name"=>'bar', 'votes'=>5, 'id'=>2}
|
63
|
+
@item3 = {"name"=>'foobar', 'votes'=>10, 'id'=>3}
|
64
|
+
@resource.data = [ @item1, @item2, @item3]
|
65
|
+
end
|
66
|
+
should 'handle equal to relations' do
|
67
|
+
@resource.params={'filter'=>{'name'=>'bar'}}
|
68
|
+
@resource.execute_filters
|
69
|
+
assert_equal [@item2], @resource.data
|
70
|
+
end
|
71
|
+
should 'handle equal lt relations' do
|
72
|
+
@resource.params={'filter'=>{'votes__lt'=>5}}
|
73
|
+
@resource.execute_filters
|
74
|
+
assert_equal [@item1], @resource.data
|
75
|
+
end
|
76
|
+
should 'handle equal lte relations' do
|
77
|
+
@resource.params={'filter'=>{'votes__lte'=>5}}
|
78
|
+
@resource.execute_filters
|
79
|
+
assert_equal [@item1,@item2], @resource.data
|
80
|
+
end
|
81
|
+
should 'handle equal gt relations' do
|
82
|
+
@resource.params={'filter'=>{'votes__gt'=>5}}
|
83
|
+
@resource.execute_filters
|
84
|
+
assert_equal [@item3], @resource.data
|
85
|
+
end
|
86
|
+
should 'handle equal gte relations' do
|
87
|
+
@resource.params={'filter'=>{'votes__gte'=>5}}
|
88
|
+
@resource.execute_filters
|
89
|
+
assert_equal [@item2,@item3], @resource.data
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
@@ -26,7 +26,7 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
26
26
|
end
|
27
27
|
|
28
28
|
should "initialize with the passed in parameters" do
|
29
|
-
@movie = Movie.new(
|
29
|
+
@movie = Movie.new(MovieResource.fetch_item)
|
30
30
|
|
31
31
|
assert_equal 4, @movie.rank
|
32
32
|
assert_equal 2.0, @movie.rating
|
@@ -62,7 +62,7 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
62
62
|
|
63
63
|
context "callbacks" do
|
64
64
|
should "respond to the before_save callback and before_create callback when it's not persisted" do
|
65
|
-
@movie = Movie.new(
|
65
|
+
@movie = Movie.new(MovieResource.fetch_item)
|
66
66
|
|
67
67
|
@movie.save
|
68
68
|
|
@@ -71,7 +71,7 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
71
71
|
end
|
72
72
|
|
73
73
|
should "only call the before_create callback if the record is not persisted" do
|
74
|
-
@movie = Movie.create(
|
74
|
+
@movie = Movie.create(MovieResource.fetch_item)
|
75
75
|
|
76
76
|
@movie.before_create_var = nil
|
77
77
|
@movie.before_save_var = nil
|
@@ -84,7 +84,7 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
84
84
|
end
|
85
85
|
|
86
86
|
should "call the before_create callback when created with .save!" do
|
87
|
-
@movie = Movie.new(
|
87
|
+
@movie = Movie.new(MovieResource.fetch_item)
|
88
88
|
|
89
89
|
@movie.save!
|
90
90
|
|
@@ -93,13 +93,13 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
93
93
|
end
|
94
94
|
|
95
95
|
should "call the before_create callback on creation" do
|
96
|
-
@movie = Movie.create(
|
96
|
+
@movie = Movie.create(MovieResource.fetch_item)
|
97
97
|
|
98
98
|
assert_equal "BAR", @movie.before_create_var
|
99
99
|
end
|
100
100
|
|
101
101
|
should "respond to the after_save callback and after_create callback when it's not persisted" do
|
102
|
-
@movie = Movie.new(
|
102
|
+
@movie = Movie.new(MovieResource.fetch_item)
|
103
103
|
|
104
104
|
@movie.save
|
105
105
|
|
@@ -108,7 +108,7 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
108
108
|
end
|
109
109
|
|
110
110
|
should "only call the after_create callback if the record is not persisted" do
|
111
|
-
@movie = Movie.create(
|
111
|
+
@movie = Movie.create(MovieResource.fetch_item)
|
112
112
|
|
113
113
|
@movie.after_create_var = nil
|
114
114
|
@movie.after_save_var = nil
|
@@ -121,7 +121,7 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
121
121
|
end
|
122
122
|
|
123
123
|
should "call the after_create callback on creation" do
|
124
|
-
@movie = Movie.create(
|
124
|
+
@movie = Movie.create(MovieResource.fetch_item)
|
125
125
|
|
126
126
|
assert_equal "AFTER CREATE", @movie.after_create_var
|
127
127
|
end
|
@@ -136,6 +136,7 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
136
136
|
end
|
137
137
|
|
138
138
|
should "create finder methods for all the column names" do
|
139
|
+
Movie.respond_to?(:find_by_rank) # fix for the fact that the test will fail if it's the first one run
|
139
140
|
assert Movie.respond_to?(:find_by_rank)
|
140
141
|
assert Movie.respond_to?(:find_by_title)
|
141
142
|
assert Movie.respond_to?(:find_by_votes)
|
@@ -161,15 +162,14 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
161
162
|
|
162
163
|
context ".has_many" do
|
163
164
|
setup do
|
164
|
-
@movie = Movie.
|
165
|
-
@actor = Actor.
|
166
|
-
@actor2 = Actor.
|
165
|
+
@movie = Movie.first
|
166
|
+
@actor = Actor.where(:name=>'Steve Martin').first
|
167
|
+
@actor2 = Actor.where(:name => "Mark Hamill").first
|
167
168
|
end
|
168
169
|
|
169
170
|
should "define an instance method for the given table name" do
|
170
171
|
assert @movie.respond_to?(:actors)
|
171
172
|
|
172
|
-
assert_equal 1, @movie.actors.count
|
173
173
|
assert_equal @actor.attributes, @movie.actors.first.attributes
|
174
174
|
end
|
175
175
|
|
@@ -213,7 +213,7 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
213
213
|
context ".belongs_to" do
|
214
214
|
should "define an instance method for the given table name" do
|
215
215
|
@movie = Movie.find_by_title("The Jerk")
|
216
|
-
@studio = Studio.
|
216
|
+
@studio = Studio.find_by_name("Universal")
|
217
217
|
|
218
218
|
assert @movie.respond_to?(:studio)
|
219
219
|
assert @movie.respond_to?(:studio=)
|
@@ -246,7 +246,7 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
246
246
|
|
247
247
|
context ".create" do
|
248
248
|
should "save a new object and return an instance of the class" do
|
249
|
-
@movie = Movie.create(
|
249
|
+
@movie = Movie.create(MovieResource.fetch_item)
|
250
250
|
|
251
251
|
assert @movie.persisted?
|
252
252
|
assert_equal 4, @movie.rank
|
@@ -266,7 +266,7 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
266
266
|
assert_equal 4, @movie.rank
|
267
267
|
assert_equal 2.0, @movie.rating
|
268
268
|
assert_equal "The Jerk", @movie.title
|
269
|
-
assert_equal
|
269
|
+
assert_equal 500, @movie.votes
|
270
270
|
assert_equal 1983, @movie.year
|
271
271
|
end
|
272
272
|
end
|
@@ -324,7 +324,7 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
324
324
|
context "#save" do
|
325
325
|
context "when valid attributes are provided" do
|
326
326
|
setup do
|
327
|
-
@movie = Movie.new(
|
327
|
+
@movie = Movie.new(MovieResource.fetch_item)
|
328
328
|
end
|
329
329
|
|
330
330
|
should "successfully save the document, return a copy of itself, and set persisted to true" do
|
@@ -347,7 +347,7 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
347
347
|
end
|
348
348
|
|
349
349
|
should "not save anything if attributes haven't changed" do
|
350
|
-
@movie = Movie.create(
|
350
|
+
@movie = Movie.create(MovieResource.fetch_item)
|
351
351
|
|
352
352
|
Movie.connection.expects(:create_or_update_documents).never
|
353
353
|
|
@@ -357,7 +357,7 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
357
357
|
|
358
358
|
context "#update_attributes" do
|
359
359
|
setup do
|
360
|
-
@movie = Movie.create(
|
360
|
+
@movie = Movie.create(MovieResource.fetch_item)
|
361
361
|
end
|
362
362
|
|
363
363
|
context "when valid attributes are given" do
|
@@ -374,7 +374,7 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
374
374
|
end
|
375
375
|
|
376
376
|
should "create a new document" do
|
377
|
-
@movie.update_attributes(
|
377
|
+
@movie.update_attributes(MovieResource.fetch_item)
|
378
378
|
|
379
379
|
assert @movie.persisted?
|
380
380
|
end
|
@@ -391,7 +391,7 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
391
391
|
context "when none of the attributes have changed" do
|
392
392
|
should "not update the document" do
|
393
393
|
MontageRails.connection.expects(:update_document).never
|
394
|
-
@movie.update_attributes(
|
394
|
+
@movie.update_attributes(MovieResource.fetch_item)
|
395
395
|
end
|
396
396
|
end
|
397
397
|
|
@@ -419,7 +419,7 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
419
419
|
|
420
420
|
context "#dirty?" do
|
421
421
|
should "return true if the model is dirty" do
|
422
|
-
@movie = Movie.new(
|
422
|
+
@movie = Movie.new(MovieResource.fetch_item)
|
423
423
|
|
424
424
|
@movie.title = "FOOOOOBar"
|
425
425
|
|
@@ -427,7 +427,7 @@ class MontageRails::BaseTest < MiniTest::Test
|
|
427
427
|
end
|
428
428
|
|
429
429
|
should "return false if the model is not dirty" do
|
430
|
-
@movie = Movie.new(
|
430
|
+
@movie = Movie.new(MovieResource.fetch_item)
|
431
431
|
|
432
432
|
refute @movie.dirty?
|
433
433
|
end
|
@@ -110,7 +110,7 @@ class MontageRails::RelationTest < Minitest::Test
|
|
110
110
|
end
|
111
111
|
|
112
112
|
should "query the remote db and return the record set if the records have not already been fetched" do
|
113
|
-
@movies = MontageRails::Relation.new(Movie).where("votes >
|
113
|
+
@movies = MontageRails::Relation.new(Movie).where("votes > 5").to_a
|
114
114
|
|
115
115
|
assert_equal 1, @movies.count
|
116
116
|
end
|
data/test/montage_rails_test.rb
CHANGED
@@ -2,20 +2,6 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
class MontageRailsTest < ActiveSupport::TestCase
|
4
4
|
context ".configure" do
|
5
|
-
setup do
|
6
|
-
MontageRails.username = nil
|
7
|
-
MontageRails.password = nil
|
8
|
-
MontageRails.token = nil
|
9
|
-
MontageRails.domain = nil
|
10
|
-
end
|
11
|
-
|
12
|
-
teardown do
|
13
|
-
MontageRails.configure do |c|
|
14
|
-
c.token = "fb761e07-a12b-40bb-a42f-2202ecfd1046"
|
15
|
-
c.domain = "testco"
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
5
|
should "accept a username, password, token, and domain" do
|
20
6
|
MontageRails.configure do |c|
|
21
7
|
c.username = "darin"
|
@@ -35,6 +21,7 @@ class MontageRailsTest < ActiveSupport::TestCase
|
|
35
21
|
MontageRails.configure do |c|
|
36
22
|
c.username = "darin"
|
37
23
|
c.password = "foo"
|
24
|
+
c.domain = nil
|
38
25
|
end
|
39
26
|
end
|
40
27
|
end
|
@@ -43,6 +30,9 @@ class MontageRailsTest < ActiveSupport::TestCase
|
|
43
30
|
assert_raises(MontageRails::AttributeMissingError, "You must include a username and password if no token is given") do
|
44
31
|
MontageRails.configure do |c|
|
45
32
|
c.domain = "foo"
|
33
|
+
c.username = nil
|
34
|
+
c.password = nil
|
35
|
+
c.token = nil
|
46
36
|
end
|
47
37
|
end
|
48
38
|
end
|
@@ -69,6 +59,7 @@ class MontageRailsTest < ActiveSupport::TestCase
|
|
69
59
|
c.domain = "foo"
|
70
60
|
c.username = "darin"
|
71
61
|
c.password = "foo"
|
62
|
+
c.token = nil
|
72
63
|
end
|
73
64
|
|
74
65
|
assert_equal "foobar", MontageRails.token
|
@@ -90,8 +81,60 @@ class MontageRailsTest < ActiveSupport::TestCase
|
|
90
81
|
c.domain = "foo"
|
91
82
|
c.username = "darin"
|
92
83
|
c.password = "bar"
|
84
|
+
c.token = nil
|
93
85
|
end
|
94
86
|
end
|
95
87
|
end
|
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
|
+
should 'accept boolean controling mock server use' do
|
110
|
+
MontageRails.configure do |c|
|
111
|
+
c.use_mock_server = true
|
112
|
+
c.domain = 'foo'
|
113
|
+
c.token = 'abc'
|
114
|
+
end
|
115
|
+
|
116
|
+
assert_equal MontageRails.use_mock_server, true
|
117
|
+
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
|
96
139
|
end
|
97
140
|
end
|