2017-03-08 16:32:31 +08:00
|
|
|
# frozen_string_literal: true
|
2017-03-28 17:15:33 +08:00
|
|
|
|
2016-05-07 09:12:26 +08:00
|
|
|
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
|
|
|
|
|
2016-05-18 01:32:39 +08:00
|
|
|
describe 'should be empty if no registered parsers' do
|
2016-05-07 09:12:26 +08:00
|
|
|
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
|
|
|
|
|
2016-05-18 01:32:39 +08:00
|
|
|
describe 'SomeModelParser2 should be inserted anyway if SomeModelParser not registered' do
|
2016-05-07 09:12:26 +08:00
|
|
|
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
|
|
|
|
|
2016-05-18 01:32:39 +08:00
|
|
|
describe 'SomeModelParser2 should be inserted anyway if SomeModelParser not registered' do
|
2016-05-07 09:12:26 +08:00
|
|
|
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
|