test_class.declarator: 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"
  			+ "2,2460\n" // leagues
  			+ "-1,-1\n"
  			+ "73,1738\n"
  			+ "531,1432\n"
  			+ "324,212\n"
  			+ "8008,131\n"
  			+ "1337,911\n"
  			+ "42,14113\n"
  			+ "1,777\n"
  			+ "254,92\n"
  			+ "-1,-1\n" // lms
  			+ "24870,37\n"
  			+ "15020,388\n"
  			+ "50463,147\n"
  			+ "-1,-1\n"
  			+ "92357,1\n"
  			+ "22758,637\n"
  			+ "22744,107\n"
  			+ "-1,-1\n"
  			+ "20150,17\n"
  			+ "29400,18\n"
  			+ "13465,172\n"
  			+ "1889,581\n"
  			+ "42891,11\n"
  			+ "1624,1957\n"
  			+ "1243,2465\n"
  			+ "1548,2020\n"
  			+ "-1,-1\n"
  			+ "16781,327\n"
  			+ "19004,149\n"
  			+ "-1,-1\n"
  			+ "72046,5\n"
  			+ "5158,374\n"
  			+ "20902,279\n"
  			+ "702,6495\n"
  			+ "10170,184\n"
  			+ "8064,202\n"
  			+ "6936,2\n"
  			+ "2335,9\n"
  			+ "-1,-1\n"
  			+ "-1,-1\n"
  			+ "19779,22\n"
  			+ "58283,10\n"
  			+ "-1,-1\n"
  			+ "-1,-1\n"
  			+ "-1,-1\n"
  			+ "29347,130\n"
  			+ "723,4\n"
  			+ "1264,38\n"
  			+ "44595,4\n"
  			+ "24820,4\n"
  			+ "12116,782\n"
  			+ "2299,724\n"
  			+ "19301,62\n"
  			+ "1498,5847\n"
test_class.modifier: private static final
test_class.original_string: 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"
  			+ "2,2460\n" // leagues
  			+ "-1,-1\n"
  			+ "73,1738\n"
  			+ "531,1432\n"
  			+ "324,212\n"
  			+ "8008,131\n"
  			+ "1337,911\n"
  			+ "42,14113\n"
  			+ "1,777\n"
  			+ "254,92\n"
  			+ "-1,-1\n" // lms
  			+ "24870,37\n"
  			+ "15020,388\n"
  			+ "50463,147\n"
  			+ "-1,-1\n"
  			+ "92357,1\n"
  			+ "22758,637\n"
  			+ "22744,107\n"
  			+ "-1,-1\n"
  			+ "20150,17\n"
  			+ "29400,18\n"
  			+ "13465,172\n"
  			+ "1889,581\n"
  			+ "42891,11\n"
  			+ "1624,1957\n"
  			+ "1243,2465\n"
  			+ "1548,2020\n"
  			+ "-1,-1\n"
  			+ "16781,327\n"
  			+ "19004,149\n"
  			+ "-1,-1\n"
  			+ "72046,5\n"
  			+ "5158,374\n"
  			+ "20902,279\n"
  			+ "702,6495\n"
  			+ "10170,184\n"
  			+ "8064,202\n"
  			+ "6936,2\n"
  			+ "2335,9\n"
  			+ "-1,-1\n"
  			+ "-1,-1\n"
  			+ "19779,22\n"
  			+ "58283,10\n"
  			+ "-1,-1\n"
  			+ "-1,-1\n"
  			+ "-1,-1\n"
  			+ "29347,130\n"
  			+ "723,4\n"
  			+ "1264,38\n"
  			+ "44595,4\n"
  			+ "24820,4\n"
  			+ "12116,782\n"
  			+ "2299,724\n"
  			+ "19301,62\n"
  			+ "1498,5847\n";
test_class.type: String
test_class.var_name: RESPONSE
test_class.declarator: server = new MockWebServer()
test_class.modifier: private final
test_class.original_string: private final MockWebServer server = new MockWebServer();
test_class.type: MockWebServer
test_class.var_name: server
test_class.file: http-service/src/test/java/net/runelite/http/service/hiscore/HiscoreServiceTest.java
test_class.identifier: HiscoreServiceTest
test_case.body: @Test
  	public void testNormalLookup() throws Exception
  	{
  		HiscoreTestService hiscores = new HiscoreTestService(server.url("/"));
  
  		HiscoreResult result = hiscores.lookupUsername("zezima", HiscoreEndpoint.NORMAL.getHiscoreURL());
  
  		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(324, result.getClueScrollBeginner().getRank());
  		Assert.assertEquals(8008, result.getClueScrollEasy().getRank());
  		Assert.assertEquals(911, result.getClueScrollMedium().getLevel());
  		Assert.assertEquals(42, result.getClueScrollHard().getRank());
  		Assert.assertEquals(777, result.getClueScrollElite().getLevel());
  		Assert.assertEquals(254, result.getClueScrollMaster().getRank());
  		Assert.assertEquals(-1, result.getLastManStanding().getLevel());
  		Assert.assertEquals(2460, result.getLeaguePoints().getLevel());
  		Assert.assertEquals(37, result.getAbyssalSire().getLevel());
  		Assert.assertEquals(92357, result.getCallisto().getRank());
  		Assert.assertEquals(5847, result.getZulrah().getLevel());
  	}
test_case.class_method_signature: HiscoreServiceTest.testNormalLookup()
test_case.full_signature: @Test public void testNormalLookup()
test_case.identifier: testNormalLookup
test_case.invocations: url lookupUsername getHiscoreURL assertEquals getLevel getAttack assertEquals getExperience getFishing assertEquals getRank getConstruction assertEquals getLevel getClueScrollAll assertEquals getRank getClueScrollBeginner assertEquals getRank getClueScrollEasy assertEquals getLevel getClueScrollMedium assertEquals getRank getClueScrollHard assertEquals getLevel getClueScrollElite assertEquals getRank getClueScrollMaster assertEquals getLevel getLastManStanding assertEquals getLevel getLeaguePoints assertEquals getLevel getAbyssalSire assertEquals getRank getCallisto assertEquals getLevel getZulrah
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testNormalLookup()
focal_class.declarator: hiscoreClient = new HiscoreClient(RuneLiteAPI.CLIENT)
focal_class.modifier: private final
focal_class.original_string: private final HiscoreClient hiscoreClient = new HiscoreClient(RuneLiteAPI.CLIENT);
focal_class.type: HiscoreClient
focal_class.var_name: hiscoreClient
focal_class.declarator: hiscoreCache = CacheBuilder.newBuilder()
  		.maximumSize(128)
  		.expireAfterWrite(1, TimeUnit.MINUTES)
  		.build(
  			new CacheLoader<HiscoreKey, HiscoreResult>()
  			{
  				@Override
  				public HiscoreResult load(HiscoreKey key) throws IOException
  				{
  					return hiscoreClient.lookup(key.getUsername(), key.getEndpoint());
  				}
  			})
focal_class.modifier: private final
focal_class.original_string: private final LoadingCache<HiscoreKey, HiscoreResult> hiscoreCache = CacheBuilder.newBuilder()
  		.maximumSize(128)
  		.expireAfterWrite(1, TimeUnit.MINUTES)
  		.build(
  			new CacheLoader<HiscoreKey, HiscoreResult>()
  			{
  				@Override
  				public HiscoreResult load(HiscoreKey key) throws IOException
  				{
  					return hiscoreClient.lookup(key.getUsername(), key.getEndpoint());
  				}
  			});
focal_class.type: LoadingCache<HiscoreKey, HiscoreResult>
focal_class.var_name: hiscoreCache
focal_class.file: http-service/src/main/java/net/runelite/http/service/hiscore/HiscoreService.java
focal_class.identifier: HiscoreService
focal_class.class_method_signature: HiscoreService.lookupUsername(String username, HttpUrl httpUrl)
focal_class.full_signature: @VisibleForTesting HiscoreResult lookupUsername(String username, HttpUrl httpUrl)
focal_class.identifier: lookupUsername
focal_class.modifiers: @VisibleForTesting
focal_class.parameters: (String username, HttpUrl httpUrl)
focal_class.return: HiscoreResult
focal_class.signature: HiscoreResult lookupUsername(String username, HttpUrl httpUrl)
focal_class.class_method_signature: HiscoreService.lookupUsername(String username, HiscoreEndpoint endpoint)
focal_class.full_signature: public HiscoreResult lookupUsername(String username, HiscoreEndpoint endpoint)
focal_class.identifier: lookupUsername
focal_class.modifiers: public
focal_class.parameters: (String username, HiscoreEndpoint endpoint)
focal_class.return: HiscoreResult
focal_class.signature: HiscoreResult lookupUsername(String username, HiscoreEndpoint endpoint)
focal_method.body: @VisibleForTesting
  	HiscoreResult lookupUsername(String username, HttpUrl httpUrl) throws IOException
  	{
  		return hiscoreClient.lookup(username, httpUrl);
  	}
focal_method.class_method_signature: HiscoreService.lookupUsername(String username, HttpUrl httpUrl)
focal_method.full_signature: @VisibleForTesting HiscoreResult lookupUsername(String username, HttpUrl httpUrl)
focal_method.identifier: lookupUsername
focal_method.invocations: lookup
focal_method.modifiers: @VisibleForTesting
focal_method.parameters: (String username, HttpUrl httpUrl)
focal_method.return: HiscoreResult
focal_method.signature: HiscoreResult lookupUsername(String username, HttpUrl httpUrl)