Files
Sightstone/spec/league_spec.rb
2014-03-24 12:14:31 +01:00

108 lines
5.8 KiB
Ruby

require 'spec_helper'
require 'json'
module Sightstone
describe League do
before :all do
json_mockup = JSON.parse('{"queue": "RANKED_SOLO_5x5","name": "Vladimirs Maulers","participantId": "5908","entries":
[{"isHotStreak": false,"isFreshBlood": false,"leagueName": "Vladimirs Maulers","isVeteran": true,"tier": "DIAMOND","lastPlayed": -1,
"playerOrTeamId": "27280077","leaguePoints": 0,"rank": "V","isInactive": false,"queueType": "RANKED_SOLO_5x5","playerOrTeamName": "TLP fierce1","wins": 210},
{"isHotStreak": false,"isFreshBlood": false,"leagueName": "Vladimirs Maulers","isVeteran": true,"tier": "DIAMOND","lastPlayed": -1,"playerOrTeamId": "19571444","leaguePoints": 84,
"rank": "IV","isInactive": false,"queueType": "RANKED_SOLO_5x5","playerOrTeamName": "KINGSTON PLEASE","wins": 111},{"isHotStreak": false,"isFreshBlood": false,
"leagueName": "Vladimirs Maulers","isVeteran": false,"tier": "DIAMOND","lastPlayed": -1,"playerOrTeamId": "77988","leaguePoints": 42,
"rank": "V","isInactive": false,"queueType": "RANKED_SOLO_5x5","playerOrTeamName": "Pluripotential","wins": 69},{"isHotStreak": false,
"isFreshBlood": false,"leagueName": "Vladimirs Maulers","isVeteran": false,"tier": "DIAMOND","lastPlayed": -1,"playerOrTeamId": "24717856",
"leaguePoints": 22,"rank": "IV","isInactive": false,"queueType": "RANKED_SOLO_5x5","playerOrTeamName": "Red X Hero","wins": 66},
{"isHotStreak": false,"isFreshBlood": false,"leagueName": "Vladimirs Maulers","isVeteran": true,"tier": "DIAMOND","lastPlayed": -1,
"playerOrTeamId": "477045","leaguePoints": 68,"rank": "III","isInactive": false,"queueType": "RANKED_SOLO_5x5",
"playerOrTeamName": "SmashGizmo","wins": 130},{"isHotStreak": true,"isFreshBlood": false,"leagueName": "Vladimirs Maulers",
"isVeteran": true,"tier": "DIAMOND","lastPlayed": -1,"playerOrTeamId": "21466580","leaguePoints": 69,"rank": "IV",
"isInactive": false,"queueType": "RANKED_SOLO_5x5","playerOrTeamName": "TLP TerminaTop","wins": 103},
{"isHotStreak": false,"isFreshBlood": false,"leagueName": "Vladimirs Maulers","isVeteran": false,
"tier": "DIAMOND","lastPlayed": -1,"playerOrTeamId": "19033574","leaguePoints": 0,"rank": "V",
"isInactive": false,"queueType": "RANKED_SOLO_5x5","playerOrTeamName": "NeiLy","wins": 155},
{"isHotStreak": false,"isFreshBlood": false,"leagueName": "Vladimirs Maulers",
"isVeteran": false,"tier": "DIAMOND","lastPlayed": -1,"playerOrTeamId": "30753436","leaguePoints": 26,"rank": "III","isInactive": false,
"queueType": "RANKED_SOLO_5x5","playerOrTeamName": "HellFire114N","wins": 39},{"isHotStreak": false,"isFreshBlood": false,"leagueName": "Vladimirs Maulers",
"isVeteran": true,"tier": "DIAMOND","lastPlayed": -1,"playerOrTeamId": "19322489","leaguePoints": 27,"rank": "I","isInactive": false,
"queueType": "RANKED_SOLO_5x5","playerOrTeamName": "EyeMtheStron9est","wins": 86},{"isHotStreak": false,"isFreshBlood": false,
"leagueName": "Vladimirs Maulers","isVeteran": true,"tier": "DIAMOND","lastPlayed": -1,"playerOrTeamId": "21020883",
"leaguePoints": 28,"rank": "I","isInactive": false,"queueType": "RANKED_SOLO_5x5","playerOrTeamName": "Bobo the Builder","wins": 75}],
"tier": "DIAMOND"}')
@league = League.new(json_mockup)
end
describe "#new" do
it "should initialize a league object" do
@league.should be_an_instance_of League
end
it "should initialize with correct params" do
@league.name.should be_a_kind_of String
@league.queue.should be_a_kind_of String
@league.tier.should be_a_kind_of String
@league.entries.should be_an_instance_of Array
end
end
describe "#entries" do
it "should return a list of league entries" do
@league.entries.each {|e| e.should be_an_instance_of LeagueItem}
end
end
end
describe LeagueItem do
before :all do
json_mockup = JSON.parse('{"isHotStreak": true,"isFreshBlood": false,"leagueName": "Vladimirs Maulers","miniSeries": {"progress": "WNN","target": 2,"losses": 0,"timeLeftToPlayMillis": -1,"wins": 1},"isVeteran": false,"tier": "DIAMOND","lastPlayed": -1,"playerOrTeamId": "19046003","leaguePoints": 100,"rank": "IV","isInactive": false,"queueType": "RANKED_SOLO_5x5","playerOrTeamName": "Taishi Masamune","wins": 55}')
@le = LeagueItem.new(json_mockup)
end
describe "#new" do
it "should initialize a LeagueItem" do
@le.should be_an_instance_of LeagueItem
end
it "should initiliaze with correct params" do
@le.isHotStreak.should satisfy {|s| [true, false].include? s}
@le.isFreshBlood.should satisfy {|s| [true, false].include? s}
@le.isVeteran.should satisfy {|s| [true, false].include? s}
@le.isInactive.should satisfy {|s| [true, false].include? s}
@le.leagueName.should be_a_kind_of String
@le.tier.should be_a_kind_of String
@le.lastPlayed.should be_a_kind_of Fixnum
@le.playerOrTeamId.should be_a_kind_of String
@le.leaguePoints.should be_a_kind_of Fixnum
@le.rank.should be_a_kind_of String
@le.queueType.should be_a_kind_of String
@le.playerOrTeamName.should be_a_kind_of String
@le.wins.should be_a_kind_of Fixnum
@le.miniSeries.should be_an_instance_of MiniSeries
end
end
end
describe MiniSeries do
before :all do
json_mockup = JSON.parse('{"progress": "WNN","target": 2,"losses": 0,"timeLeftToPlayMillis": -1,"wins": 1}')
@ms = MiniSeries.new(json_mockup)
end
describe "#new" do
it "should initilaize a miniSeries object" do
@ms.should be_an_instance_of MiniSeries
end
it "should initialize with correct params" do
@ms.progress.should be_a_kind_of String
@ms.target.should be_a_kind_of Fixnum
@ms.losses.should be_a_kind_of Fixnum
@ms.wins.should be_a_kind_of Fixnum
@ms.timeLeftToPlayMillis.should be_a_kind_of Fixnum
end
end
end
end