marver 0.0.6 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -14
- data/lib/marver.rb +16 -2
- data/lib/marver/api.rb +9 -1
- data/lib/marver/api/client.rb +9 -6
- data/lib/marver/api/credentials.rb +1 -1
- data/lib/marver/api/errors.rb +33 -0
- data/lib/marver/client.rb +3 -1
- data/lib/marver/entities/character.rb +11 -23
- data/lib/marver/entities/comic.rb +19 -35
- data/lib/marver/entities/creator.rb +5 -26
- data/lib/marver/entities/event.rb +17 -26
- data/lib/marver/entities/serie.rb +15 -29
- data/lib/marver/entities/story.rb +11 -23
- data/lib/marver/entities/summary/character.rb +2 -2
- data/lib/marver/entities/summary/comic.rb +4 -4
- data/lib/marver/entities/summary/creator.rb +4 -2
- data/lib/marver/entities/summary/event.rb +2 -2
- data/lib/marver/entities/summary/serie.rb +3 -3
- data/lib/marver/entities/summary/story.rb +2 -2
- data/lib/marver/entities/url.rb +3 -3
- data/lib/marver/factories/character.rb +28 -0
- data/lib/marver/factories/comic.rb +27 -0
- data/lib/marver/factories/creator.rb +28 -0
- data/lib/marver/factories/date.rb +15 -0
- data/lib/marver/factories/event.rb +28 -0
- data/lib/marver/factories/factory.rb +20 -0
- data/lib/marver/factories/image.rb +15 -0
- data/lib/marver/factories/price.rb +15 -0
- data/lib/marver/factories/serie.rb +28 -0
- data/lib/marver/factories/story.rb +28 -0
- data/lib/marver/factories/summary/character.rb +23 -0
- data/lib/marver/factories/summary/comic.rb +23 -0
- data/lib/marver/factories/summary/creator.rb +23 -0
- data/lib/marver/factories/summary/event.rb +23 -0
- data/lib/marver/factories/summary/serie.rb +23 -0
- data/lib/marver/factories/summary/story.rb +23 -0
- data/lib/marver/factories/summary/summary.rb +12 -0
- data/lib/marver/factories/text_object.rb +16 -0
- data/lib/marver/factories/url.rb +15 -0
- data/lib/marver/finders/character_finder.rb +16 -2
- data/lib/marver/finders/comic_finder.rb +17 -1
- data/lib/marver/finders/creator_finder.rb +26 -0
- data/lib/marver/finders/event_finder.rb +16 -2
- data/lib/marver/finders/serie_finder.rb +16 -2
- data/lib/marver/finders/story_finder.rb +15 -2
- data/lib/marver/mappers/character_attributes_mapper.rb +25 -0
- data/lib/marver/mappers/comic_attributes_mapper.rb +40 -0
- data/lib/marver/mappers/creator_attributes_mapper.rb +29 -0
- data/lib/marver/mappers/event_attributes_mapper.rb +29 -0
- data/lib/marver/mappers/mappable.rb +86 -0
- data/lib/marver/mappers/serie_attributes_mapper.rb +32 -0
- data/lib/marver/mappers/story_attributes_mapper.rb +26 -0
- data/lib/marver/utils/finder_param_filter.rb +13 -0
- data/lib/marver/utils/string_helper.rb +7 -0
- data/lib/marver/version.rb +1 -1
- data/spec/marver/.DS_Store +0 -0
- data/spec/marver/api/client_spec.rb +1 -1
- data/spec/marver/api/credentials_spec.rb +2 -2
- data/spec/marver/api/error_spec.rb +9 -9
- data/spec/marver/client_spec.rb +8 -0
- data/spec/marver/entities/character_spec.rb +1 -1
- data/spec/marver/entities/comic_spec.rb +1 -1
- data/spec/marver/entities/creator_spec.rb +2 -2
- data/spec/marver/entities/event_spec.rb +1 -1
- data/spec/marver/entities/serie_spec.rb +2 -2
- data/spec/marver/entities/story_spec.rb +2 -2
- data/spec/marver/entities/summary/comic_spec.rb +9 -1
- data/spec/marver/factories/character_spec.rb +12 -0
- data/spec/marver/factories/comic_spec.rb +12 -0
- data/spec/marver/factories/creator_spec.rb +12 -0
- data/spec/marver/factories/date_spec.rb +13 -0
- data/spec/marver/factories/event_spec.rb +12 -0
- data/spec/marver/factories/image_spec.rb +13 -0
- data/spec/marver/factories/price_spec.rb +13 -0
- data/spec/marver/factories/serie_spec.rb +12 -0
- data/spec/marver/factories/story_spec.rb +12 -0
- data/spec/marver/factories/summary/character_spec.rb +13 -0
- data/spec/marver/factories/summary/comic_spec.rb +13 -0
- data/spec/marver/factories/summary/creator_spec.rb +13 -0
- data/spec/marver/factories/summary/event_spec.rb +13 -0
- data/spec/marver/factories/summary/serie_spec.rb +13 -0
- data/spec/marver/factories/summary/story_spec.rb +13 -0
- data/spec/marver/factories/text_object_spec.rb +13 -0
- data/spec/marver/factories/url_spec.rb +13 -0
- data/spec/marver/finders/character_finder_spec.rb +17 -9
- data/spec/marver/finders/comic_finder_spec.rb +11 -2
- data/spec/marver/finders/creator_finder_spec.rb +27 -0
- data/spec/marver/finders/event_finder_spec.rb +11 -2
- data/spec/marver/finders/serie_finder_spec.rb +10 -2
- data/spec/marver/finders/story_finder_spec.rb +11 -3
- data/spec/marver/mappers/character_attributes_mapper_spec.rb +14 -0
- data/spec/marver/mappers/comic_attributes_mapper_spec.rb +17 -0
- data/spec/marver/mappers/creator_attributes_mapper_spec.rb +15 -0
- data/spec/marver/mappers/event_attributes_mapper_spec.rb +14 -0
- data/spec/marver/mappers/serie_attributes_mapper_spec.rb +17 -0
- data/spec/marver/mappers/story_attributes_mapper_spec.rb +15 -0
- data/spec/marver/utils/finder_param_filter_spec.rb +17 -0
- data/spec/marver/utils/string_helper_spec.rb +7 -0
- metadata +86 -7
- data/TODO +0 -3
- data/lib/marver/api/error.rb +0 -13
- data/lib/marver/entities/commonable.rb +0 -37
- data/lib/marver/entities/queryable.rb +0 -12
- data/lib/marver/entities/summarizable.rb +0 -54
@@ -0,0 +1,32 @@
|
|
1
|
+
module Marver
|
2
|
+
class SerieAttributesMapper
|
3
|
+
|
4
|
+
include Marver::Mappable
|
5
|
+
|
6
|
+
def initialize(results)
|
7
|
+
@results = results
|
8
|
+
end
|
9
|
+
|
10
|
+
def map
|
11
|
+
{
|
12
|
+
title: @results['title'],
|
13
|
+
resource_uri: @results['resourceURI'],
|
14
|
+
description: @results['description'],
|
15
|
+
id: @results['id'].to_i,
|
16
|
+
type: @results['type'],
|
17
|
+
start_year: @results['startYear'],
|
18
|
+
end_year: @results['endYear'],
|
19
|
+
rating: @results['rating'],
|
20
|
+
comics: comics,
|
21
|
+
stories: stories,
|
22
|
+
events: events,
|
23
|
+
creators: creators,
|
24
|
+
characters: characters,
|
25
|
+
next: next_serie.first,
|
26
|
+
previous: prev_serie.first,
|
27
|
+
urls: urls,
|
28
|
+
thumbnail: thumbnail
|
29
|
+
}
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Marver
|
2
|
+
class StoryAttributesMapper
|
3
|
+
|
4
|
+
include Marver::Mappable
|
5
|
+
|
6
|
+
def initialize(results)
|
7
|
+
@results = results
|
8
|
+
end
|
9
|
+
|
10
|
+
def map
|
11
|
+
{
|
12
|
+
title: @results['title'],
|
13
|
+
resource_uri: @results['resourceURI'],
|
14
|
+
description: @results['description'],
|
15
|
+
id: @results['id'].to_i,
|
16
|
+
type: @results['type'],
|
17
|
+
characters: characters,
|
18
|
+
creators: creators,
|
19
|
+
events: events,
|
20
|
+
series: series,
|
21
|
+
comics: comics,
|
22
|
+
original_issue: original_issue
|
23
|
+
}
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Marver
|
2
|
+
class FinderParamFilter
|
3
|
+
class << self
|
4
|
+
def filter!(params, allowed_params)
|
5
|
+
unallowed = params.keys - allowed_params
|
6
|
+
raise UnallowedParamsError.new("Unallowed params: #{unallowed}") unless unallowed.empty?
|
7
|
+
return true
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class UnallowedParamsError < Exception; end
|
13
|
+
end
|
data/lib/marver/version.rb
CHANGED
Binary file
|
@@ -11,7 +11,7 @@ describe Marver::API::Credentials do
|
|
11
11
|
|
12
12
|
end
|
13
13
|
|
14
|
-
it "returns api credentials as
|
15
|
-
expect(Marver::API::Credentials.get).to eq "
|
14
|
+
it "returns api credentials as hash" do
|
15
|
+
expect(Marver::API::Credentials.get).to eq({ ts: "1", apikey: "pub_key", hash: "3d4ce88a477c7e4a5accbf6cd2c8b819" })
|
16
16
|
end
|
17
17
|
end
|
@@ -1,14 +1,14 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Marver::API::Error do
|
4
|
-
let(:error) { Marver::API::Error.new({ "code" => "404", "status" => "Not found."}) }
|
3
|
+
# describe Marver::API::Error do
|
4
|
+
# let(:error) { Marver::API::Error.new({ "code" => "404", "status" => "Not found."}) }
|
5
5
|
|
6
|
-
it '#code - the http status code of the error' do
|
7
|
-
|
8
|
-
end
|
6
|
+
# it '#code - the http status code of the error' do
|
7
|
+
# expect(error.code).to eq 404
|
8
|
+
# end
|
9
9
|
|
10
|
-
it '#status - description of the error' do
|
11
|
-
|
12
|
-
end
|
10
|
+
# it '#status - description of the error' do
|
11
|
+
# expect(error.status).to eq "Not found."
|
12
|
+
# end
|
13
13
|
|
14
|
-
end
|
14
|
+
# end
|
data/spec/marver/client_spec.rb
CHANGED
@@ -25,4 +25,12 @@ describe Marver::Client do
|
|
25
25
|
it 'has a story finder' do
|
26
26
|
expect(@client.stories.class).to eq Marver::StoryFinder
|
27
27
|
end
|
28
|
+
|
29
|
+
it 'has a creator finder' do
|
30
|
+
expect(@client.creators.class).to eq Marver::CreatorFinder
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'has a event finder' do
|
34
|
+
expect(@client.events.class).to eq Marver::EventFinder
|
35
|
+
end
|
28
36
|
end
|
@@ -6,7 +6,7 @@ describe Marver::Character do
|
|
6
6
|
let(:json) { fixture('character.json').read }
|
7
7
|
let(:response) { Marver::API::Response.new(json) }
|
8
8
|
let(:data_container) { Marver::DataContainer.new(response) }
|
9
|
-
let(:character) { Marver::Character.new(data_container.results) }
|
9
|
+
let(:character) { Marver::Factory::Character.new(data_container.results).build }
|
10
10
|
|
11
11
|
it '#id - The unique ID of the character resource' do
|
12
12
|
expect(character.id).to eq 1009220
|
@@ -5,7 +5,7 @@ describe Marver::Comic do
|
|
5
5
|
let(:json) { fixture('comic.json').read }
|
6
6
|
let(:response) { Marver::API::Response.new(json) }
|
7
7
|
let(:data_container) { Marver::DataContainer.new(response) }
|
8
|
-
let(:comic) { Marver::Comic.new(data_container.results) }
|
8
|
+
let(:comic) { Marver::Factory::Comic.new(data_container.results).build }
|
9
9
|
|
10
10
|
it '#id - The unique ID of the comic resource' do
|
11
11
|
expect(comic.id).to eq 38524
|
@@ -5,8 +5,8 @@ describe Marver::Creator do
|
|
5
5
|
|
6
6
|
let(:json) { fixture('creator.json').read }
|
7
7
|
let(:response) { Marver::API::Response.new(json) }
|
8
|
-
let(:
|
9
|
-
let(:creator) { Marver::Creator.new(
|
8
|
+
let(:results) { Marver::DataContainer.new(response).results }
|
9
|
+
let(:creator) { Marver::Factory::Creator.new(results).build }
|
10
10
|
|
11
11
|
it '#id - The unique ID of the creator resource.' do
|
12
12
|
expect(creator.id).to eq 648
|
@@ -5,7 +5,7 @@ describe Marver::Event do
|
|
5
5
|
let(:json) { fixture('event.json').read }
|
6
6
|
let(:response) { Marver::API::Response.new(json) }
|
7
7
|
let(:data_container) { Marver::DataContainer.new(response) }
|
8
|
-
let(:event) { Marver::Event.new(data_container.results) }
|
8
|
+
let(:event) { Marver::Factory::Event.new(data_container.results).build }
|
9
9
|
|
10
10
|
it "#title - The title of the event." do
|
11
11
|
expect(event.title).to eq "Fall of the Mutants"
|
@@ -5,8 +5,8 @@ describe Marver::Serie do
|
|
5
5
|
|
6
6
|
let(:json) { fixture('serie.json').read }
|
7
7
|
let(:response) { Marver::API::Response.new(json) }
|
8
|
-
let(:
|
9
|
-
let(:serie) { Marver::Serie.new(
|
8
|
+
let(:results) { Marver::DataContainer.new(response).results }
|
9
|
+
let(:serie) { Marver::Factory::Serie.new(results).build }
|
10
10
|
|
11
11
|
it '#id - The unique ID of the series resource.' do
|
12
12
|
expect(serie.id).to eq 2002
|
@@ -4,8 +4,8 @@ describe Marver::Story do
|
|
4
4
|
describe "Attributes" do
|
5
5
|
let(:json) { fixture('story.json').read }
|
6
6
|
let(:response) { Marver::API::Response.new(json) }
|
7
|
-
let(:
|
8
|
-
let(:story) { Marver::Story.new(
|
7
|
+
let(:results) { Marver::DataContainer.new(response).results }
|
8
|
+
let(:story) { Marver::Factory::Story.new(results).build }
|
9
9
|
|
10
10
|
it "#title - The story title." do
|
11
11
|
expect(story.title).to eq "Cover #892"
|
@@ -1,6 +1,14 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Marver::Summary::Comic do
|
4
|
+
|
5
|
+
before do
|
6
|
+
Marver.configure do |config|
|
7
|
+
config.public_key = "pub_key"
|
8
|
+
config.private_key = "priv_key"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
4
12
|
let(:comic_summary) { Marver::Summary::Comic.new({ "id" => "123", "resourceURI" => "http://example.net", "name" => "Hulk" }) }
|
5
13
|
|
6
14
|
it '#id' do
|
@@ -23,7 +31,7 @@ describe Marver::Summary::Comic do
|
|
23
31
|
describe '#full' do
|
24
32
|
before :each do
|
25
33
|
Time.stub_chain(:now, :to_i, :to_s).and_return "1"
|
26
|
-
stub_get(comic_summary.resource_uri).to_return(:body => fixture('comic.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
|
34
|
+
stub_get(comic_summary.resource_uri + "?apikey=pub_key&hash=3d4ce88a477c7e4a5accbf6cd2c8b819&ts=1").to_return(:body => fixture('comic.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
|
27
35
|
@full_comic = comic_summary.full
|
28
36
|
end
|
29
37
|
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Marver::Factory::Character do
|
4
|
+
let(:json) { fixture('character.json').read }
|
5
|
+
let(:response) { Marver::API::Response.new(json) }
|
6
|
+
let(:results) { Marver::DataContainer.new(response).results }
|
7
|
+
let(:factory) { described_class.new(results) }
|
8
|
+
|
9
|
+
it 'builds a character out of api results' do
|
10
|
+
expect(factory.build).to be_kind_of Marver::Character
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Marver::Factory::Comic do
|
4
|
+
let(:json) { fixture('comic.json').read }
|
5
|
+
let(:response) { Marver::API::Response.new(json) }
|
6
|
+
let(:results) { Marver::DataContainer.new(response).results }
|
7
|
+
let(:factory) { described_class.new(results) }
|
8
|
+
|
9
|
+
it 'builds a comic out of api results' do
|
10
|
+
expect(factory.build).to be_kind_of Marver::Comic
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Marver::Factory::Creator do
|
4
|
+
let(:json) { fixture('creator.json').read }
|
5
|
+
let(:response) { Marver::API::Response.new(json) }
|
6
|
+
let(:results) { Marver::DataContainer.new(response).results }
|
7
|
+
let(:factory) { described_class.new(results) }
|
8
|
+
|
9
|
+
it 'builds a creator out of api results' do
|
10
|
+
expect(factory.build).to be_kind_of Marver::Creator
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Marver::Factory::Date do
|
4
|
+
let(:json) { fixture('comic.json').read }
|
5
|
+
let(:response) { Marver::API::Response.new(json) }
|
6
|
+
let(:results) { Marver::DataContainer.new(response).results }
|
7
|
+
let(:factory) { described_class.new(results['dates']) }
|
8
|
+
|
9
|
+
it 'builds a list of dates from api results' do
|
10
|
+
expect(factory.build).to be_kind_of Array
|
11
|
+
expect(factory.build.first).to be_kind_of Marver::KeyDate
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Marver::Factory::Event do
|
4
|
+
let(:json) { fixture('event.json').read }
|
5
|
+
let(:response) { Marver::API::Response.new(json) }
|
6
|
+
let(:results) { Marver::DataContainer.new(response).results }
|
7
|
+
let(:factory) { described_class.new(results) }
|
8
|
+
|
9
|
+
it 'builds an event out of api results' do
|
10
|
+
expect(factory.build).to be_kind_of Marver::Event
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Marver::Factory::Image do
|
4
|
+
let(:json) { fixture('comic.json').read }
|
5
|
+
let(:response) { Marver::API::Response.new(json) }
|
6
|
+
let(:results) { Marver::DataContainer.new(response).results }
|
7
|
+
let(:factory) { described_class.new(results['images']) }
|
8
|
+
|
9
|
+
it 'builds a list of images from api results' do
|
10
|
+
expect(factory.build).to be_kind_of Array
|
11
|
+
expect(factory.build.first).to be_kind_of Marver::Image
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Marver::Factory::Price do
|
4
|
+
let(:json) { fixture('comic.json').read }
|
5
|
+
let(:response) { Marver::API::Response.new(json) }
|
6
|
+
let(:results) { Marver::DataContainer.new(response).results }
|
7
|
+
let(:factory) { described_class.new(results['prices']) }
|
8
|
+
|
9
|
+
it 'builds a list of prices from api results' do
|
10
|
+
expect(factory.build).to be_kind_of Array
|
11
|
+
expect(factory.build.first).to be_kind_of Marver::Price
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Marver::Factory::Serie do
|
4
|
+
let(:json) { fixture('serie.json').read }
|
5
|
+
let(:response) { Marver::API::Response.new(json) }
|
6
|
+
let(:results) { Marver::DataContainer.new(response).results }
|
7
|
+
let(:factory) { described_class.new(results) }
|
8
|
+
|
9
|
+
it 'builds a serie out of api results' do
|
10
|
+
expect(factory.build).to be_kind_of Marver::Serie
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Marver::Factory::Story do
|
4
|
+
let(:json) { fixture('story.json').read }
|
5
|
+
let(:response) { Marver::API::Response.new(json) }
|
6
|
+
let(:results) { Marver::DataContainer.new(response).results }
|
7
|
+
let(:factory) { described_class.new(results) }
|
8
|
+
|
9
|
+
it 'builds a story out of api results' do
|
10
|
+
expect(factory.build).to be_kind_of Marver::Story
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Marver::Factory::Summary::Character do
|
4
|
+
let(:json) { fixture('event.json').read }
|
5
|
+
let(:response) { Marver::API::Response.new(json) }
|
6
|
+
let(:results) { Marver::DataContainer.new(response).results }
|
7
|
+
let(:factory) { described_class.new(results['series']['items']) }
|
8
|
+
|
9
|
+
it 'builds a character summary out of api results' do
|
10
|
+
expect(factory.build).to be_kind_of Array
|
11
|
+
expect(factory.build.first).to be_kind_of Marver::Summary::Character
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Marver::Factory::Summary::Comic do
|
4
|
+
let(:json) { fixture('character.json').read }
|
5
|
+
let(:response) { Marver::API::Response.new(json) }
|
6
|
+
let(:results) { Marver::DataContainer.new(response).results }
|
7
|
+
let(:factory) { described_class.new(results['comics']['items']) }
|
8
|
+
|
9
|
+
it 'builds a comic summary out of api results' do
|
10
|
+
expect(factory.build).to be_kind_of Array
|
11
|
+
expect(factory.build.first).to be_kind_of Marver::Summary::Comic
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Marver::Factory::Summary::Creator do
|
4
|
+
let(:json) { fixture('comic.json').read }
|
5
|
+
let(:response) { Marver::API::Response.new(json) }
|
6
|
+
let(:results) { Marver::DataContainer.new(response).results }
|
7
|
+
let(:factory) { described_class.new(results['creators']['items']) }
|
8
|
+
|
9
|
+
it 'builds a creator summary out of api results' do
|
10
|
+
expect(factory.build).to be_kind_of Array
|
11
|
+
expect(factory.build.first).to be_kind_of Marver::Summary::Creator
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Marver::Factory::Summary::Event do
|
4
|
+
let(:json) { fixture('character.json').read }
|
5
|
+
let(:response) { Marver::API::Response.new(json) }
|
6
|
+
let(:results) { Marver::DataContainer.new(response).results }
|
7
|
+
let(:factory) { described_class.new(results['events']['items']) }
|
8
|
+
|
9
|
+
it 'builds an event summary out of api results' do
|
10
|
+
expect(factory.build).to be_kind_of Array
|
11
|
+
expect(factory.build.first).to be_kind_of Marver::Summary::Event
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Marver::Factory::Summary::Serie do
|
4
|
+
let(:json) { fixture('character.json').read }
|
5
|
+
let(:response) { Marver::API::Response.new(json) }
|
6
|
+
let(:results) { Marver::DataContainer.new(response).results }
|
7
|
+
let(:factory) { described_class.new(results['series']['items']) }
|
8
|
+
|
9
|
+
it 'builds a serie summary out of api results' do
|
10
|
+
expect(factory.build).to be_kind_of Array
|
11
|
+
expect(factory.build.first).to be_kind_of Marver::Summary::Serie
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Marver::Factory::Summary::Story do
|
4
|
+
let(:json) { fixture('event.json').read }
|
5
|
+
let(:response) { Marver::API::Response.new(json) }
|
6
|
+
let(:results) { Marver::DataContainer.new(response).results }
|
7
|
+
let(:factory) { described_class.new(results['stories']['items']) }
|
8
|
+
|
9
|
+
it 'builds a story summary out of api results' do
|
10
|
+
expect(factory.build).to be_kind_of Array
|
11
|
+
expect(factory.build.first).to be_kind_of Marver::Summary::Story
|
12
|
+
end
|
13
|
+
end
|