Fix: App ranking TDD

This commit is contained in:
2019-06-04 22:52:01 +09:00
parent 26fb8bbf57
commit 27bde43cae
2 changed files with 153 additions and 97 deletions
+138 -97
View File
@@ -1,3 +1,113 @@
//////////////////////////////////////////////////
// DateUtil
QUnit.test( "DateUtil", function( assert ) {
var datetime = new Date("2019-06-04T16:15:00");
var date = datetime.getFullYear() + "-"
+ ("0" + (datetime.getMonth() + 1)).slice(-2) + "-"
+ ("0" + datetime.getDate()).slice(-2);
var time = ("0" + datetime.getHours()).slice(-2) + ":"
+ ("0" + datetime.getMinutes()).slice(-2) + ":"
+ ("0" + datetime.getSeconds()).slice(-2);
assert.equal(DateUtil.getYYYYMMDD(datetime), date, "DateUtil - getYYYYMMDD");
assert.equal(DateUtil.getHHMMSS(datetime), time, "DateUtil - getHHMMSS");
});
//////////////////////////////////////////////////
// App ranking
QUnit.test( "App ranking", function( assert ) {
sessionStorageManager.setMaestroID(3); // jisangs
sessionStorageManager.setPlayingAppID(1);
var dbConnectManager = new DBConnectManager();
// #1 Hour 15:00
let date = "2018-08-23";
let time = "15:53:00";
let done = assert.async();
setTimeout(function() {
dbConnectManager.requestRanking(
DBConnectManager.TYPE_MY_RANKING_HOUR,
sessionStorageManager.getMaestroID(),
date,
time,
(type, rankingRecordManager) => {
assert.equal(rankingRecordManager.getRankAt(0), 1, "hour - rank #1");
assert.equal(rankingRecordManager.getBestRecordAt(0), 97.33, "hour - best record");
assert.equal(rankingRecordManager.getPlayerIDAt(0), 49, "hour - player ID");
assert.equal(rankingRecordManager.getPlayerNameAt(0), "마가연", "hour - player name");
assert.equal(rankingRecordManager.getRankAt(5), 6, "hour - rank");
assert.equal(rankingRecordManager.getBestRecordAt(5), 85.44, "hour - best record");
assert.equal(rankingRecordManager.getPlayerIDAt(5), 79, "hour - player ID");
assert.equal(rankingRecordManager.getPlayerNameAt(5), "박선수", "hour - player name");
done();
}
);
});
// #2 Hour 16:00
let date2 = "2018-08-23";
let time2 = "16:53:00";
let done2 = assert.async();
setTimeout(function() {
dbConnectManager.requestRanking(
DBConnectManager.TYPE_MY_RANKING_HOUR,
sessionStorageManager.getMaestroID(),
date2,
time2,
(type, rankingRecordManager) => {
assert.equal(rankingRecordManager.getRankAt(0), 1, "hour - rank #2");
assert.equal(rankingRecordManager.getBestRecordAt(0), 97.87, "hour - best record");
assert.equal(rankingRecordManager.getPlayerIDAt(0), 51, "hour - player ID");
assert.equal(rankingRecordManager.getPlayerNameAt(0), "김민재", "hour - player name");
assert.equal(rankingRecordManager.getRankAt(5), 6, "hour - rank");
assert.equal(rankingRecordManager.getBestRecordAt(5), 87.64, "hour - best record");
assert.equal(rankingRecordManager.getPlayerIDAt(5), 60, "hour - player ID");
assert.equal(rankingRecordManager.getPlayerNameAt(5), "이서영", "hour - player name");
done2();
}
);
});
// #3 Day 2018-08-23
let date3 = "2018-08-23";
let time3 = "16:53:00";
let done3 = assert.async();
setTimeout(function() {
dbConnectManager.requestRanking(
DBConnectManager.TYPE_MY_RANKING_DAY,
sessionStorageManager.getMaestroID(),
date3,
time3,
(type, rankingRecordManager) => {
assert.equal(rankingRecordManager.getRankAt(0), 1, "day - rank #3");
assert.equal(rankingRecordManager.getBestRecordAt(0), 99.18, "day - best record");
assert.equal(rankingRecordManager.getPlayerIDAt(0), 46, "day - player ID");
assert.equal(rankingRecordManager.getPlayerNameAt(0), "강예원", "day - player name");
assert.equal(rankingRecordManager.getRankAt(5), 6, "day - rank");
assert.equal(rankingRecordManager.getBestRecordAt(5), 94.48, "day - best record");
assert.equal(rankingRecordManager.getPlayerIDAt(5), 57, "day - player ID");
assert.equal(rankingRecordManager.getPlayerNameAt(5), "고울", "day - player name");
done3();
}
);
});
});
//////////////////////////////////////////////////
// AccountValidator
@@ -178,12 +288,18 @@ QUnit.test( "TypingTextManager - slice", function( assert ) {
});
QUnit.test( "TypingTextManager - makePracticeContents", function( assert ) {
typingTextMan.makePracticeContents(testContent, 2);
var repeatCount = 2;
typingTextMan.makePracticeContents(testContent, repeatCount);
let contents = typingTextMan.getContents();
var countTestContent = testContent.length * (repeatCount + 1) * 2;
// repeatCount + 1 : original list + (shuffled list * 2)
// *2 : chosung + jungsung
assert.equal(contents[0], "ㅃ", "makePracticeContents - ㅃ");
assert.equal(contents[8], "", "makePracticeContents - ");
assert.equal(contents.length, testContent.length * 3, "makePracticeContents - length");
assert.equal(contents[1], "", "makePracticeContents - ");
assert.equal(contents[(testContent.length - 1) * 2], "ㅅ", "makePracticeContents - ");
assert.equal(contents.length, countTestContent, "makePracticeContents - length");
});
QUnit.test( "TypingTextManager - makeTestContents", function( assert ) {
@@ -336,86 +452,11 @@ QUnit.test( "DBConnectManager - Player history", function( assert ) {
);
});
});
QUnit.test( "DBConnectManager - Player ranking", function( assert ) {
sessionStorageManager.maestroID = 1; // jisangs
sessionStorageManager.playingAppID = 29;
let date = "2018-05-16";
let time = "14:50:00";
let done = assert.async(3);
setTimeout(function() {
dbConnectManager.requestRanking(
DBConnectManager.TYPE_MY_RANKING_HOUR,
1, // maestroID for jisangs
date,
time,
(type, rankingRecordManager) => {
assert.equal(rankingRecordManager.getRankAt(0), 1, "hour");
assert.equal(rankingRecordManager.getBestRecordAt(0), 302.921, "hour");
assert.equal(rankingRecordManager.getPlayerIDAt(0), 5, "hour");
assert.equal(rankingRecordManager.getPlayerNameAt(0), "김지유", "hour");
assert.equal(rankingRecordManager.getRankAt(5), 6, "hour");
assert.equal(rankingRecordManager.getBestRecordAt(5), 128.436, "hour");
assert.equal(rankingRecordManager.getPlayerIDAt(5), 22, "hour");
assert.equal(rankingRecordManager.getPlayerNameAt(5), "모윤건", "hour");
done();
}
);
});
setTimeout(function() {
dbConnectManager.requestRanking(
DBConnectManager.TYPE_MY_RANKING_DAY,
1, // maestroID for jisangs
date,
time,
(type, rankingRecordManager) => {
assert.equal(rankingRecordManager.getRankAt(0), 1, "day");
assert.equal(rankingRecordManager.getBestRecordAt(0), 313.304, "day");
assert.equal(rankingRecordManager.getPlayerIDAt(0), 19, "day");
assert.equal(rankingRecordManager.getPlayerNameAt(0), "오지운", "day");
assert.equal(rankingRecordManager.getRankAt(17), 18, "day");
assert.equal(rankingRecordManager.getBestRecordAt(17), 65.337, "day");
assert.equal(rankingRecordManager.getPlayerIDAt(17), 20, "day");
assert.equal(rankingRecordManager.getPlayerNameAt(17), "김민성", "day");
done();
}
);
});
setTimeout(function() {
dbConnectManager.requestRanking(
DBConnectManager.TYPE_MY_RANKING_MONTH,
1, // maestroID for jisangs
date,
time,
(type, rankingRecordManager) => {
assert.equal(rankingRecordManager.getRankAt(0), 1, "month");
assert.equal(rankingRecordManager.getBestRecordAt(0), 617.231, "month");
assert.equal(rankingRecordManager.getPlayerIDAt(0), 50, "month");
assert.equal(rankingRecordManager.getPlayerNameAt(0), "강민준", "month");
assert.equal(rankingRecordManager.getRankAt(17), 18, "month");
assert.equal(rankingRecordManager.getBestRecordAt(17), 216.279, "month");
assert.equal(rankingRecordManager.getPlayerIDAt(17), 9, "month");
assert.equal(rankingRecordManager.getPlayerNameAt(17), "신예성", "month");
done();
}
);
});
});
*/
QUnit.test( "DBConnectManager - HowToPlay", function( assert ) {
let howToPlayForSpaceInvaders = "외계인이 나타났다!\\n마우스 왼쪽 버튼으로\\n외계인을 클릭해서 물리쳐 주세요.";
let howToPlayForSpaceInvaders = "외계인이 나타났다!\\n마우스 왼쪽 버튼을 클릭해서\\n외계인이 사라지기 전에 물리쳐 주세요.";
var howToPlayForTyping = "왼손 검지를 [F] 자판위에,\\n오른손 검지를 [J] 자판위에 올린채\\n손을 움직이지 말고 글자를 입력하세요.";
let done = assert.async(2);
@@ -437,7 +478,7 @@ QUnit.test( "DBConnectManager - HowToPlay", function( assert ) {
1, // korean basic typing
(jsonData) => {
let howToPlay = jsonData["HowToPlay"];
assert.equal(howToPlay, "");
assert.equal(howToPlay, howToPlayForTyping);
done();
},
(jsonData) => {
@@ -579,7 +620,7 @@ historyRecordManager.push(new HistoryRecord("05/13", "typing_english_basic", 200
historyRecordManager.push(new HistoryRecord("05/14", "test", 10000));
QUnit.test( "HistoryRecordManager - push", function( assert ) {
assert.equal(historyRecordManager.count, 5);
assert.equal(historyRecordManager.historyRecords.length, 5);
});
QUnit.test( "HistoryRecordManager - getAt", function( assert ) {
@@ -595,7 +636,7 @@ QUnit.test( "HistoryRecordManager - clear", function( assert ) {
historyRecordManagerForClear.push(new HistoryRecord("05/10", "space_invaders", 1));
historyRecordManagerForClear.clear();
assert.equal(historyRecordManagerForClear.count, 0);
assert.equal(historyRecordManagerForClear.historyRecords.length, 0);
});
QUnit.test( "HistoryRecordManager - underValueForGraph", function( assert ) {
@@ -642,7 +683,7 @@ rankingRecordManager.push(new RankingRecord(7, 4, "박지상", 700));
rankingRecordManager.push(new RankingRecord(8, 5, "신현주", 600));
QUnit.test( "RankingRecordManager - push", function( assert ) {
assert.equal(rankingRecordManager.count, 5);
assert.equal(rankingRecordManager.rankingRecords.length, 5);
});
QUnit.test( "RankingRecordManager - getAt", function( assert ) {
@@ -664,7 +705,7 @@ QUnit.test( "RankingRecordManager - clear", function( assert ) {
rankingRecordManagerForClear.push(new RankingRecord(8, "신현주", 600));
rankingRecordManagerForClear.clear();
assert.equal(rankingRecordManagerForClear.count, 0);
assert.equal(rankingRecordManagerForClear.rankingRecords.length, 0);
});
@@ -687,35 +728,35 @@ QUnit.test( "ScoreManager - plusScore", function( assert ) {
QUnit.test( "SessionStorageManager - PlayerName", function( assert ) {
sessionStorageManager.clear();
assert.equal(sessionStorageManager.playerName, null, "playerName");
assert.equal(sessionStorageManager.getPlayerName(), null, "playerName");
sessionStorageManager.playerName = "박지상";
assert.equal(sessionStorageManager.playerName, "박지상", "playerName");
sessionStorageManager.setPlayerName("박지상");
assert.equal(sessionStorageManager.getPlayerName(), "박지상", "playerName");
sessionStorageManager.removeItem("playerName");
assert.equal(sessionStorageManager.playerName, null, "playerName");
assert.equal(sessionStorageManager.getPlayerName(), null, "playerName");
});
QUnit.test( "SessionStorageManager - playerPlayerID", function( assert ) {
sessionStorageManager.clear();
assert.equal(sessionStorageManager.playerID, null, "playerID");
assert.equal(sessionStorageManager.getPlayerID(), null, "playerID");
sessionStorageManager.playerID = 1;
assert.equal(sessionStorageManager.playerID, 1, "playerID");
sessionStorageManager.setPlayerID(1);
assert.equal(sessionStorageManager.getPlayerID(), 1, "playerID");
sessionStorageManager.removeItem("playerID");
assert.equal(sessionStorageManager.playerID, null, "playerID");
assert.equal(sessionStorageManager.getPlayerID(), null, "playerID");
});
QUnit.test( "SessionStorageManager - playingAppName", function( assert ) {
sessionStorageManager.clear();
assert.equal(sessionStorageManager.playingAppName, null, "playingAppName");
assert.equal(sessionStorageManager.getPlayingAppName(), null, "playingAppName");
sessionStorageManager.playingAppName = "space_invaders";
assert.equal(sessionStorageManager.playingAppName, "space_invaders", "playingAppName");
sessionStorageManager.setPlayingAppName("space_invaders");
assert.equal(sessionStorageManager.getPlayingAppName(), "space_invaders", "playingAppName");
sessionStorageManager.removeItem("playingAppName");
assert.equal(sessionStorageManager.playingAppName, null, "playingAppName");
assert.equal(sessionStorageManager.getPlayingAppName(), null, "playingAppName");
});