Hiscore feature expansion (#152)
* Add remaining Hiscore parameters to HiscoreSkill * Add remaining Hiscore parameters to HiscoreResult * Add remaining Hiscore parameters to HiscoreResultBuilder * Add new Hiscore panel icons (from offical Hiscore website, so they don't match very well) and subpanel for Clue Scrolls, Bounty Hunter - Hunter, Bounty Hunter - Rogue, and Last Man Standing * Add logic to catch unranked hiscores and display them properly. Not currently checking for combat level calculations, but other cases should be covered. * Make HiscoreService and HiscoreClient aware of different hiscore endpoints * Add Spring Editor to convert path variable String to enum, add pretty versions of HiscoreEndpoint names, add new icons for endpoint selection * Fix HiscoreEndpoint.valueof failing silently and preventing lookup, update HiscoreService tests, add Hiscore endpoint selection buttons to HiscorePanel * Replace HiscorePanel skill icons with smaller versions from the official hiscore website * Fix details listing rank instead of experience * Fix details listing rank instead of experience, fix skill panels not being cleared when selecting a different hiscore category, make HiscoreService respond 404 when a Hiscore entry is not found instead of 500. * Fix skill panels not being cleared when selecting a different hiscore category, make HiscoreService respond 404 when a Hiscore entry is not found instead of 500. * Revert changing RuneliteAPI base URL, those changes should not have been committed (local testing only) * Add ClueScrollAll and ClueScrollMaster to HiscoreService tests. * Style cleanup and relocate NotFoundException to http-service package * Use relative path for small skill icons * Move Jagex Hiscore urls from HiscoreService to HiscoreEndpoint * Create new util package in http-service for common exceptions and Spring converters, clean up HiscoreService by streamlining error handling and removing methods for old unit test * Change HiscoreService unit test to use new HiscoreTestService subclass which handles setting the test URL * Change HiscoreEndpoint hiscoreUrls to HttpUrl instead of String * Cleanup formatting, remove unused http-service exception * http-api: cleanup HiscoreEndpoint
This commit is contained in:
@@ -28,6 +28,8 @@ import java.time.Instant;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import javax.naming.NamingException;
|
||||
|
||||
import net.runelite.http.service.util.InstantConverter;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
package net.runelite.http.service.hiscore;
|
||||
|
||||
import java.io.IOException;
|
||||
import net.runelite.http.api.hiscore.HiscoreEndpoint;
|
||||
import net.runelite.http.api.hiscore.HiscoreResult;
|
||||
import okhttp3.mockwebserver.MockResponse;
|
||||
import okhttp3.mockwebserver.MockWebServer;
|
||||
@@ -36,38 +37,38 @@ import org.junit.Test;
|
||||
public class HiscoreServiceTest
|
||||
{
|
||||
private static final String RESPONSE = "654683,705,1304518\n"
|
||||
+ "679419,50,107181\n"
|
||||
+ "550667,48,85764\n"
|
||||
+ "861497,50,101366\n"
|
||||
+ "891591,48,87843\n"
|
||||
+ "-1,1,4\n"
|
||||
+ "840255,27,10073\n"
|
||||
+ "1371912,10,1310\n"
|
||||
+ "432193,56,199795\n"
|
||||
+ "495638,56,198304\n"
|
||||
+ "514466,37,27502\n"
|
||||
+ "456981,54,159727\n"
|
||||
+ "459159,49,93010\n"
|
||||
+ "1028855,8,823\n"
|
||||
+ "862906,29,12749\n"
|
||||
+ "795020,31,16097\n"
|
||||
+ "673591,5,495\n"
|
||||
+ "352676,51,112259\n"
|
||||
+ "428419,40,37235\n"
|
||||
+ "461887,43,51971\n"
|
||||
+ "598582,1,10\n"
|
||||
+ "638177,1,0\n"
|
||||
+ "516239,9,1000\n"
|
||||
+ "492790,1,0\n"
|
||||
+ "-1,-1\n"
|
||||
+ "-1,-1\n"
|
||||
+ "-1,-1\n"
|
||||
+ "-1,-1\n"
|
||||
+ "-1,-1\n"
|
||||
+ "-1,-1\n"
|
||||
+ "-1,-1\n"
|
||||
+ "-1,-1\n"
|
||||
+ "-1,-1";
|
||||
+ "679419,50,107181\n"
|
||||
+ "550667,48,85764\n"
|
||||
+ "861497,50,101366\n"
|
||||
+ "891591,48,87843\n"
|
||||
+ "-1,1,4\n"
|
||||
+ "840255,27,10073\n"
|
||||
+ "1371912,10,1310\n"
|
||||
+ "432193,56,199795\n"
|
||||
+ "495638,56,198304\n"
|
||||
+ "514466,37,27502\n"
|
||||
+ "456981,54,159727\n"
|
||||
+ "459159,49,93010\n"
|
||||
+ "1028855,8,823\n"
|
||||
+ "862906,29,12749\n"
|
||||
+ "795020,31,16097\n"
|
||||
+ "673591,5,495\n"
|
||||
+ "352676,51,112259\n"
|
||||
+ "428419,40,37235\n"
|
||||
+ "461887,43,51971\n"
|
||||
+ "598582,1,10\n"
|
||||
+ "638177,1,0\n"
|
||||
+ "516239,9,1000\n"
|
||||
+ "492790,1,0\n"
|
||||
+ "-1,-1\n"
|
||||
+ "-1,-1\n"
|
||||
+ "531,1432\n"
|
||||
+ "-1,-1\n"
|
||||
+ "-1,-1\n"
|
||||
+ "-1,-1\n"
|
||||
+ "-1,-1\n"
|
||||
+ "-1,-1\n"
|
||||
+ "254,92";
|
||||
|
||||
private final MockWebServer server = new MockWebServer();
|
||||
|
||||
@@ -86,16 +87,17 @@ public class HiscoreServiceTest
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLookup() throws Exception
|
||||
public void testNormalLookup() throws Exception
|
||||
{
|
||||
HiscoreService hiscores = new HiscoreService();
|
||||
hiscores.setUrl(server.url("/"));
|
||||
HiscoreTestService hiscores = new HiscoreTestService(server.url("/"));
|
||||
|
||||
HiscoreResult result = hiscores.lookup("zezima");
|
||||
HiscoreResult result = hiscores.lookup(HiscoreEndpoint.NORMAL, "zezima");
|
||||
|
||||
Assert.assertEquals(50, result.getAttack().getLevel());
|
||||
Assert.assertEquals(159727L, result.getFishing().getExperience());
|
||||
Assert.assertEquals(492790, result.getConstruction().getRank());
|
||||
Assert.assertEquals(1432, result.getClueScrollAll().getLevel());
|
||||
Assert.assertEquals(254, result.getClueScrollMaster().getRank());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* Copyright (c) 2017, Adam <Adam@sigterm.info>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.runelite.http.service.hiscore;
|
||||
|
||||
import net.runelite.http.api.hiscore.HiscoreEndpoint;
|
||||
import okhttp3.HttpUrl;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
class HiscoreTestService extends HiscoreService
|
||||
{
|
||||
private HttpUrl testUrl;
|
||||
|
||||
HiscoreTestService(HttpUrl testUrl)
|
||||
{
|
||||
this.testUrl = testUrl;
|
||||
}
|
||||
|
||||
@Override
|
||||
HiscoreResultBuilder lookupUsername(String username, HiscoreEndpoint endpoint) throws IOException
|
||||
{
|
||||
return super.lookupUsername(username, testUrl);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user