Skip to content
This repository has been archived by the owner on Jun 3, 2020. It is now read-only.

Commit

Permalink
Merge pull request #66 from jaebradley/scoreboard-translator
Browse files Browse the repository at this point in the history
Scoreboard translator tests
  • Loading branch information
jaebradley committed May 23, 2016
2 parents 301f214 + c873114 commit e053cd5
Show file tree
Hide file tree
Showing 2 changed files with 199 additions and 2 deletions.
27 changes: 25 additions & 2 deletions test/ScoreboardDataTranslator.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
'use es6';

import {expect} from 'chai';
import {expect, assert} from 'chai';
import ScoreboardDataTranslator from '../src/translators/data/ScoreboardDataTranslator';

import firstQuarterScoreboard from './data/scoreboard/first-quarter.json';

describe('Translate scoreboard data', function() {

const firstQuarterFirstGameData = firstQuarterScoreboard.sports_content.games.game[0];

it('Indicates if recap is available', function() {
expect(ScoreboardDataTranslator.isRecapAvailable(1)).to.equal(true);
expect(ScoreboardDataTranslator.isRecapAvailable(0)).to.equal(false);
Expand All @@ -19,5 +23,24 @@ describe('Translate scoreboard data', function() {
expect(ScoreboardDataTranslator.isPreviewAvailable(2)).to.equal(false);
});


it('Calculates unix millisecond start time', function() {
expect(ScoreboardDataTranslator.getUnixMillisecondsStartTime('201512311900'), 1451606400000); // 2016-01-01 00:00:00
});

it('Identifies game status', function() {
expect(ScoreboardDataTranslator.getGameStatus('Halftime', 1)).to.equal('Halftime');
expect(ScoreboardDataTranslator.getGameStatus('Jae', 1)).to.equal('PREGAME');
expect(ScoreboardDataTranslator.getGameStatus('Jae', 2)).to.equal('LIVE');
expect(ScoreboardDataTranslator.getGameStatus('Jae', 3)).to.equal('FINAL');
});

it('Identifies tv broadcasts', function() {
const broadcasters = firstQuarterFirstGameData.broadcasters;
expect(ScoreboardDataTranslator.getBroadcasts(broadcasters)).to.eql(['TNT', 'Sportsnet One']);
});

it('Identifiers if first period', function() {
const firstQuarterPeriod = firstQuarterFirstGameData.visitor.linescores.period;
assert.isOk(ScoreboardDataTranslator.hasOnlyOneLinescorePeriod(firstQuarterPeriod));
});
});
174 changes: 174 additions & 0 deletions test/data/scoreboard/first-quarter.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
{
"sports_content": {
"sports_meta": {
"date_time": "20160516 2108",
"season_meta": {
"calendar_date": "20160516",
"season_year": "2015",
"stats_season_year": "2015",
"stats_season_id": "42015",
"stats_season_stage": "4",
"roster_season_year": "2015",
"schedule_season_year": "2015",
"standings_season_year": "2015",
"season_id": "42015",
"display_year": "2015-16",
"display_season": "Post Season",
"season_stage": "4"
},
"next": {
"url": "http://data.nba.com/data/5s/json/cms/noseason/scoreboard/20160516/games.json"
}
},
"games": {
"game": [
{
"id": "0041500311",
"game_url": "20160516/OKCGSW",
"season_id": "42015",
"date": "20160516",
"time": "2100",
"arena": "ORACLE Arena",
"city": "Oakland",
"state": "CA",
"country": "",
"home_start_date": "20160516",
"home_start_time": "1800",
"visitor_start_date": "20160516",
"visitor_start_time": "2000",
"previewAvailable": "1",
"recapAvailable": "0",
"notebookAvailable": "0",
"tnt_ot": "0",
"buzzerBeater": "0",
"ticket": {
"ticket_link": ""
},
"period_time": {
"period_value": "1",
"period_status": "1st Qtr",
"game_status": "2",
"game_clock": "9:16",
"total_periods": "4",
"period_name": "Qtr"
},
"lp": {
"lp_video": "false",
"condensed_bb": "false",
"visitor": {
"audio": {
"ENG": "true",
"SPA": "false"
},
"video": {
"avl": "false",
"onAir": "false",
"archBB": "false"
}
},
"home": {
"audio": {
"ENG": "true",
"SPA": "false"
},
"video": {
"avl": "true",
"onAir": "false",
"archBB": "false"
}
}
},
"dl": {
"link": [
{
"name": "TNT",
"long_nm": "",
"code": "tnt",
"url": "http://www.tntdrama.com/watchtnt/",
"mobile_url": "",
"home_visitor": "natl"
}
]
},
"broadcasters": {
"radio": {
"broadcaster": [
{
"scope": "local",
"home_visitor": "visitor",
"display_name": "WWLS 98.1FM OKC / 930AM (ESP)"
},
{
"scope": "local",
"home_visitor": "home",
"display_name": "KNBR 680 AM"
}
]
},
"tv": {
"broadcaster": [
{
"scope": "natl",
"home_visitor": "natl",
"display_name": "TNT"
},
{
"scope": "can",
"home_visitor": "can",
"display_name": "Sportsnet One"
}
]
}
},
"playoffs": {
"round": "3",
"conference": "West",
"series": "1",
"gameId": "0041500311",
"gameStatus": "2",
"game_number": "1",
"game_necessary_flag": "0",
"home_seed": "1",
"visitor_seed": "3",
"home_wins": "0",
"visitor_wins": "0"
},
"visitor": {
"id": "1610612760",
"team_key": "OKC",
"city": "Oklahoma City",
"abbreviation": "OKC",
"nickname": "Thunder",
"url_name": "thunder",
"team_code": "thunder",
"score": "6",
"linescores": {
"period": {
"period_value": "1",
"period_name": "Q1",
"score": "6"
}
}
},
"home": {
"id": "1610612744",
"team_key": "GSW",
"city": "Golden State",
"abbreviation": "GSW",
"nickname": "Warriors",
"url_name": "warriors",
"team_code": "warriors",
"score": "7",
"linescores": {
"period": {
"period_value": "1",
"period_name": "Q1",
"score": "7"
}
}
}
}
]
}
}
}

0 comments on commit e053cd5

Please sign in to comment.