fars 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,77 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Fars::BaseModelSerializer do
4
- before :all do
5
- ActiveSupport::Inflector.inflections do |inflect|
6
- inflect.irregular 'slave', 'slaves'
7
- end
8
-
9
- class Master < ActiveRecord::Base
10
- has_many :slaves
11
- end
12
- class Slave < ActiveRecord::Base
13
- belongs_to :master
14
- end
15
-
16
- module V1
17
- class MasterSerializer < Fars::BaseModelSerializer
18
- attributes :id, :name, :data, # attrs
19
- :slaves
20
-
21
- def meta
22
- {'metadata' => :present}
23
- end
24
- end
25
- class SlaveSerializer < Fars::BaseModelSerializer
26
- attributes :id, :name, :data # attrs
27
- end
28
-
29
- class MastersSerializer < Fars::BaseCollectionSerializer ; end
30
- class SlavesSerializer < Fars::BaseCollectionSerializer ; end
31
- end
32
- end
33
-
34
- context '#to_json' do
35
- before :each do
36
- @object = Master.create(id: 1, name: 'Object1', data: '123')
37
- 2.times.each {|i| Slave.create(id: i+1, master_id: @object.id, name: "Slave #{i+1}") }
38
- end
39
-
40
- it 'returns all fields with metadata' do
41
- json_data = {
42
- master: {id: 1, name: 'Object1', data: '123'},
43
- _metadata: {metadata: :present}
44
- }.to_json
45
-
46
- V1::MasterSerializer.new(
47
- @object,
48
- add_metadata: true,
49
- fields: [:id, :name, :data]
50
- ).to_json.should == json_data
51
- end
52
-
53
- it 'returns not all field, whithout metadata' do
54
- json_data = {master: {id: 1, name: 'Object1'}}.to_json
55
-
56
- V1::MasterSerializer.new(
57
- @object,
58
- add_metadata: false,
59
- fields: [:id, :name]
60
- ).to_json.should == json_data
61
- end
62
-
63
- it 'returns all field with slaves' do
64
- json_data = {master: {id: 1, name: 'Object1', data: '123',
65
- slaves: [
66
- {slave: {id: 1, name: 'Slave 1', data: nil}},
67
- {slave: {id: 2, name: 'Slave 2', data: nil}},
68
- ]}}.to_json
69
-
70
- V1::MasterSerializer.new(
71
- @object,
72
- add_metadata: false,
73
- fields: [:id, :name, :data, :slaves]
74
- ).to_json.should == json_data
75
- end
76
- end
77
- end
@@ -1,75 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Fars::BaseModelSerializer do
4
- before :all do
5
- ActiveSupport::Inflector.inflections do |inflect|
6
- inflect.irregular 'slave', 'slaves'
7
- end
8
-
9
- class Master < ActiveRecord::Base
10
- has_many :slaves
11
- end
12
- class Slave < ActiveRecord::Base
13
- belongs_to :master
14
- end
15
-
16
- class MasterSerializer < Fars::BaseModelSerializer
17
- attributes :id, :name, :data, # attrs
18
- :slaves
19
-
20
- def meta
21
- {'metadata' => :present}
22
- end
23
- end
24
- class SlaveSerializer < Fars::BaseModelSerializer
25
- attributes :id, :name, :data # attrs
26
- end
27
-
28
- class MastersSerializer < Fars::BaseCollectionSerializer ; end
29
- class SlavesSerializer < Fars::BaseCollectionSerializer ; end
30
- end
31
-
32
- context '#to_json' do
33
- before :each do
34
- @object = Master.create(id: 1, name: 'Object1', data: '123')
35
- 2.times.each {|i| Slave.create(id: i+1, master_id: @object.id, name: "Slave #{i+1}") }
36
- end
37
-
38
- it 'returns all fields with metadata' do
39
- json_data = {
40
- master: {id: 1, name: 'Object1', data: '123'},
41
- _metadata: {metadata: :present}
42
- }.to_json
43
-
44
- MasterSerializer.new(
45
- @object,
46
- add_metadata: true,
47
- fields: [:id, :name, :data]
48
- ).to_json.should == json_data
49
- end
50
-
51
- it 'returns not all field, whithout metadata' do
52
- json_data = {master: {id: 1, name: 'Object1'}}.to_json
53
-
54
- MasterSerializer.new(
55
- @object,
56
- add_metadata: false,
57
- fields: [:id, :name]
58
- ).to_json.should == json_data
59
- end
60
-
61
- it 'returns all field with slaves' do
62
- json_data = {master: {id: 1, name: 'Object1', data: '123',
63
- slaves: [
64
- {slave: {id: 1, name: 'Slave 1', data: nil}},
65
- {slave: {id: 2, name: 'Slave 2', data: nil}},
66
- ]}}.to_json
67
-
68
- MasterSerializer.new(
69
- @object,
70
- add_metadata: false,
71
- fields: [:id, :name, :data, :slaves]
72
- ).to_json.should == json_data
73
- end
74
- end
75
- end