103 lines
2.8 KiB
Ruby
103 lines
2.8 KiB
Ruby
|
require 'spec_helper'
|
||
|
|
||
|
describe GrapeSwagger::ModelParsers do
|
||
|
let(:model_parsers) { described_class.new }
|
||
|
let(:parser) { Class.new }
|
||
|
let(:parser2) { Class.new }
|
||
|
let(:parser3) { Class.new }
|
||
|
|
||
|
describe '#register' do
|
||
|
describe 'successfully register new parser' do
|
||
|
before do
|
||
|
model_parsers.register(parser, Class)
|
||
|
end
|
||
|
|
||
|
specify do
|
||
|
expect(model_parsers.to_a).to eq([[parser, 'Class']])
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe 'should be empty if no registred parsers' do
|
||
|
specify do
|
||
|
expect(model_parsers.to_a).to be_empty
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe '#insert_before' do
|
||
|
describe 'SomeModelParser2 should be first parser' do
|
||
|
before do
|
||
|
model_parsers.register(parser, Class)
|
||
|
model_parsers.register(parser3, Class)
|
||
|
model_parsers.insert_before(parser, parser2, Class)
|
||
|
end
|
||
|
|
||
|
specify do
|
||
|
expect(model_parsers.count).to eq(3)
|
||
|
expect(model_parsers.to_a.first).to eq([parser2, Class])
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe 'SomeModelParser2 should be inserted anyway if SomeModelParser not registred' do
|
||
|
before do
|
||
|
model_parsers.register(parser3, Class)
|
||
|
model_parsers.insert_before(parser, parser2, Class)
|
||
|
end
|
||
|
|
||
|
specify do
|
||
|
expect(model_parsers.count).to eq(2)
|
||
|
expect(model_parsers.to_a).to include([parser2, Class])
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe 'SomeModelParser2 should be inserted anyway if model parsers is empty' do
|
||
|
before do
|
||
|
model_parsers.insert_before(parser, parser2, Class)
|
||
|
end
|
||
|
|
||
|
specify do
|
||
|
expect(model_parsers.count).to eq(1)
|
||
|
expect(model_parsers.to_a).to include([parser2, Class])
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe '#insert_after' do
|
||
|
describe 'SomeModelParser2 should be second parser' do
|
||
|
before do
|
||
|
model_parsers.register(parser, Class)
|
||
|
model_parsers.register(parser3, Class)
|
||
|
model_parsers.insert_after(parser, parser2, Class)
|
||
|
end
|
||
|
|
||
|
specify do
|
||
|
expect(model_parsers.count).to eq(3)
|
||
|
expect(model_parsers.to_a[1]).to eq([parser2, Class])
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe 'SomeModelParser2 should be inserted anyway if SomeModelParser not registred' do
|
||
|
before do
|
||
|
model_parsers.register(parser3, Class)
|
||
|
model_parsers.insert_after(parser, parser2, Class)
|
||
|
end
|
||
|
|
||
|
specify do
|
||
|
expect(model_parsers.count).to eq(2)
|
||
|
expect(model_parsers.to_a).to include([parser2, Class])
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe 'SomeModelParser2 should be inserted anyway if model parsers is empty' do
|
||
|
before do
|
||
|
model_parsers.insert_after(parser, parser2, Class)
|
||
|
end
|
||
|
|
||
|
specify do
|
||
|
expect(model_parsers.count).to eq(1)
|
||
|
expect(model_parsers.to_a).to include([parser2, Class])
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|