Files
Sightstone/spec/match_history_spec.rb
2014-03-24 16:31:43 +01:00

88 lines
5.4 KiB
Ruby

require 'spec_helper'
require 'json'
module Sightstone
describe MatchHistory do
before :all do
json_mockup = JSON.parse('{"games":[{"gameType": "MATCHED_GAME","fellowPlayers": [{"championId": 102,"teamId": 100,"summonerId": 19440603},{"championId": 51,"teamId": 200,"summonerId": 26261198},{"championId": 79,"teamId": 100,"summonerId": 22151489},{"championId": 13,"teamId": 200,"summonerId": 23429462},{"championId": 106,"teamId": 200,"summonerId": 30818765},{"championId": 48,"teamId": 200,"summonerId": 25932666},{"championId": 24,"teamId": 100,"summonerId": 22906613},{"championId": 89,"teamId": 200,"summonerId": 33288326},{"championId": 16,"teamId": 100,"summonerId": 238666}],"stats": {"totalDamageDealtToChampions": 26806,"item2": 3252,"goldEarned": 12738,"item1": 3031,"wardPlaced": 9,"totalDamageTaken": 25573,"item0": 1055,"trueDamageDealtPlayer": 10713,"physicalDamageDealtPlayer": 129104,"trueDamageDealtToChampions": 5597,"killingSprees": 2,"totalUnitsHealed": 1,"largestCriticalStrike": 696,"level": 16,"doubleKills": 1,"neutralMinionsKilledYourJungle": 8,"neutralMinionsKilledEnemyJungle": 7,"assists": 5,"magicDamageTaken": 9216,"numDeaths": 9,"totalTimeCrowdControlDealt": 604,"largestMultiKill": 2,"physicalDamageTaken": 15714,"sightWardsBought": 2,"win": false,"team": 100,"totalDamageDealt": 139818,"largestKillingSpree": 4,"totalHeal": 1004,"item4": 3072,"item3": 3046,"item6": 3340,"minionsKilled": 171,"timePlayed": 2124,"physicalDamageDealtToChampions": 21208,"championsKilled": 10,"trueDamageTaken": 642,"goldSpent": 14620,"neutralMinionsKilled": 15},"gameId": 1390514911,"spell1": 4,"teamId": 100,"spell2": 21,"gameMode": "CLASSIC","mapId": 1,"level": 30,"invalid": false,"subType": "RANKED_SOLO_5x5","championId": 29,"createDate": 1395672014277}], "summonerId": 12345}')
@mh = MatchHistory.new(json_mockup)
end
describe "#new" do
it "should init a match hisotry object" do
@mh.should be_instance_of MatchHistory
end
it "should init with correct params" do
@mh.summonerId.should be_instance_of Fixnum
@mh.games.should be_instance_of Array
@mh.games.each do |game|
game.should be_instance_of HistoryGame
end
end
end
end
describe HistoryGame do
before :all do
json_mockup = JSON.parse('{"gameType": "MATCHED_GAME","fellowPlayers": [{"championId": 102,"teamId": 100,"summonerId": 19440603},{"championId": 51,"teamId": 200,"summonerId": 26261198},{"championId": 79,"teamId": 100,"summonerId": 22151489},{"championId": 13,"teamId": 200,"summonerId": 23429462},{"championId": 106,"teamId": 200,"summonerId": 30818765},{"championId": 48,"teamId": 200,"summonerId": 25932666},{"championId": 24,"teamId": 100,"summonerId": 22906613},{"championId": 89,"teamId": 200,"summonerId": 33288326},{"championId": 16,"teamId": 100,"summonerId": 238666}],"stats": {"totalDamageDealtToChampions": 26806,"item2": 3252,"goldEarned": 12738,"item1": 3031,"wardPlaced": 9,"totalDamageTaken": 25573,"item0": 1055,"trueDamageDealtPlayer": 10713,"physicalDamageDealtPlayer": 129104,"trueDamageDealtToChampions": 5597,"killingSprees": 2,"totalUnitsHealed": 1,"largestCriticalStrike": 696,"level": 16,"doubleKills": 1,"neutralMinionsKilledYourJungle": 8,"neutralMinionsKilledEnemyJungle": 7,"assists": 5,"magicDamageTaken": 9216,"numDeaths": 9,"totalTimeCrowdControlDealt": 604,"largestMultiKill": 2,"physicalDamageTaken": 15714,"sightWardsBought": 2,"win": false,"team": 100,"totalDamageDealt": 139818,"largestKillingSpree": 4,"totalHeal": 1004,"item4": 3072,"item3": 3046,"item6": 3340,"minionsKilled": 171,"timePlayed": 2124,"physicalDamageDealtToChampions": 21208,"championsKilled": 10,"trueDamageTaken": 642,"goldSpent": 14620,"neutralMinionsKilled": 15},"gameId": 1390514911,"spell1": 4,"teamId": 100,"spell2": 21,"gameMode": "CLASSIC","mapId": 1,"level": 30,"invalid": false,"subType": "RANKED_SOLO_5x5","championId": 29,"createDate": 1395672014277}')
@hg = HistoryGame.new(json_mockup)
end
describe "#new" do
it "should init a history game" do
@hg.should be_instance_of HistoryGame
end
it "should init with correct params" do
@hg.championId.should be_instance_of Fixnum
@hg.createDate.should be_instance_of Fixnum
@hg.fellowPlayers.should be_instance_of Array
@hg.fellowPlayers.each do |p|
p.should be_instance_of Player
end
@hg.gameId.should be_instance_of Fixnum
@hg.gameMode.should be_instance_of String
@hg.gameType.should be_instance_of String
@hg.invalid.should satisfy {|s| [true, false].include? s}
@hg.level.should be_instance_of Fixnum
@hg.mapId.should be_instance_of Fixnum
@hg.spell1.should be_instance_of Fixnum
@hg.spell2.should be_instance_of Fixnum
@hg.statistics.should be_instance_of Hash
@hg.statistics.each do |key, stat|
key.should be_instance_of String
stat.should satisfy {|s| ([true, false].include?(s) or s.is_a?(Fixnum))}
end
@hg.subType.should be_instance_of String
@hg.teamId.should be_instance_of Fixnum
end
end
end
describe Player do
before :all do
mockup_json = JSON.parse('{"championId": 79,"teamId": 100,"summonerId": 22151489}')
@player = Player.new(mockup_json)
end
describe "#new" do
it "should init a player" do
@player.should be_instance_of Player
end
it "should init with correct params" do
@player.championId.should be_instance_of Fixnum
@player.summonerId.should be_instance_of Fixnum
@player.teamId.should be_instance_of Fixnum
end
end
end
end