public async Task <IWorldsEndMusicGetResponse> GetWorldsEndMusicAsync(IWorldsEndMusicGetRequest request)
        {
            if (WebBrowserNavigator.WebBrowser.Url?.AbsoluteUri != ChunithmNetUrl.WorldsEndMusic)
            {
                await WebBrowserNavigator.NavigateAsync(ChunithmNetUrl.WorldsEndMusic);
            }

            var response = new WorldsEndMusicGetResponse(WebBrowserNavigator.WebBrowser);

            if (response.Success)
            {
                var worldsEndMusicParser = new WorldsEndMusicParser();
                response.WorldsEndMusic = worldsEndMusicParser.Parse(WebBrowserNavigator.WebBrowser.DocumentText);
            }
            return(response);
        }
        public void WorldsEndMusicParser_Test1()
        {
            var worldsEndMusic = new WorldsEndMusicParser().Parse(TestUtility.LoadResource("WorldsEndMusic/html_test_case_1.html"));

            Assert.IsNotNull(worldsEndMusic, "パースチェック");

            var units = worldsEndMusic.Units;

            Assert.AreEqual(55, units.Length, "件数チェック");
            {
                var unit = units[0];
                Assert.IsNotNull(unit);
                Assert.AreEqual(8108, unit.Id, "楽曲ID");
                Assert.AreEqual("G e n g a o z o", unit.Name, "楽曲名");
                Assert.AreEqual(Difficulty.WorldsEnd, unit.Difficulty, "難易度");
                Assert.AreEqual(9, unit.WorldsEndLevel, "WEレベル");
                Assert.AreEqual(WorldsEndType.狂, unit.WorldsEndType, "WEタイプ");
                Assert.AreEqual(205950, unit.Score, "スコア");
                Assert.AreEqual(Rank.D, unit.Rank, "ランク");
                Assert.AreEqual(false, unit.IsClear, "クリア");
                Assert.AreEqual(ComboStatus.None, unit.ComboStatus, "コンボランプ");
                Assert.AreEqual(ChainStatus.None, unit.ChainStatus, "チェインランプ");
            }
            {
                var unit = units[1];
                Assert.IsNotNull(unit);
                Assert.AreEqual(8104, unit.Id, "楽曲ID");
                Assert.AreEqual("玩具狂奏曲 -終焉-", unit.Name, "楽曲名");
                Assert.AreEqual(Difficulty.WorldsEnd, unit.Difficulty, "難易度");
                Assert.AreEqual(9, unit.WorldsEndLevel, "WEレベル");
                Assert.AreEqual(WorldsEndType.蔵, unit.WorldsEndType, "WEタイプ");
                Assert.AreEqual(988665, unit.Score, "スコア");
                Assert.AreEqual(Rank.S, unit.Rank, "ランク");
                Assert.AreEqual(true, unit.IsClear, "クリア");
                Assert.AreEqual(ComboStatus.None, unit.ComboStatus, "コンボランプ");
                Assert.AreEqual(ChainStatus.None, unit.ChainStatus, "チェインランプ");
            }
        }
        public void WorldsEndMusicParser_Test2()
        {
            var worldsEndMusic = new WorldsEndMusicParser().Parse(TestUtility.LoadResource("WorldsEndMusic/html_test_case_2.html"));

            Assert.IsNotNull(worldsEndMusic, "パースチェック");

            var units = worldsEndMusic.Units;

            Assert.AreEqual(59, units.Length, "件数チェック");
            {
                var unit = units[1];
                Assert.IsNotNull(unit);
                Assert.AreEqual(8112, unit.Id, "楽曲ID");
                Assert.AreEqual("HAELEQUIN (Original Remaster)", unit.Name, "楽曲名");
                Assert.AreEqual(Difficulty.WorldsEnd, unit.Difficulty, "難易度");
                Assert.AreEqual(7, unit.WorldsEndLevel, "WEレベル");
                Assert.AreEqual(WorldsEndType.両, unit.WorldsEndType, "WEタイプ");
                Assert.AreEqual(0, unit.Score, "スコア");
                Assert.AreEqual(Rank.None, unit.Rank, "ランク");
                Assert.AreEqual(false, unit.IsClear, "クリア");
                Assert.AreEqual(ComboStatus.None, unit.ComboStatus, "コンボランプ");
                Assert.AreEqual(ChainStatus.None, unit.ChainStatus, "チェインランプ");
            }
            {
                var unit = units[2];
                Assert.IsNotNull(unit);
                Assert.AreEqual(8113, unit.Id, "楽曲ID");
                Assert.AreEqual("Theme of SeelischTact", unit.Name, "楽曲名");
                Assert.AreEqual(Difficulty.WorldsEnd, unit.Difficulty, "難易度");
                Assert.AreEqual(5, unit.WorldsEndLevel, "WEレベル");
                Assert.AreEqual(WorldsEndType.弾, unit.WorldsEndType, "WEタイプ");
                Assert.AreEqual(0, unit.Score, "スコア");
                Assert.AreEqual(Rank.None, unit.Rank, "ランク");
                Assert.AreEqual(false, unit.IsClear, "クリア");
                Assert.AreEqual(ComboStatus.None, unit.ComboStatus, "コンボランプ");
                Assert.AreEqual(ChainStatus.None, unit.ChainStatus, "チェインランプ");
            }
        }
Exemple #4
0
        public async Task <IWorldsEndMusicGetResponse> GetWorldsEndMusicAsync(IWorldsEndMusicGetRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            if (WebBrowserNavigator.WebBrowser.Address != ChunithmNetUrl.WorldsEndMusic)
            {
                await WebBrowserNavigator.LoadAsync(ChunithmNetUrl.WorldsEndMusic);
            }

            var   responseAsync = WorldsEndMusicGetResponse.CreateResponseAsync(WebBrowserNavigator.WebBrowser);
            await responseAsync;
            var   response = responseAsync.Result;

            if (response.Success)
            {
                var worldsEndMusicParser = new WorldsEndMusicParser();
                response.WorldsEndMusic = worldsEndMusicParser.Parse(response.DocumentText);
            }
            return(response);
        }
        public void WorldsEndMusicParser_Error_Test1()
        {
            var worldsEndMusic = new WorldsEndMusicParser().Parse(TestUtility.LoadResource("WorldsEndMusic/html_test_case_error_1.html"));

            Assert.IsNull(worldsEndMusic);
        }