From 662c7816afe14cf3a17aa6aa001291d6e32caf53 Mon Sep 17 00:00:00 2001 From: Peter Reid Date: Sun, 12 May 2019 09:34:42 +0100 Subject: [PATCH 1/5] Setup Azure Pipelines --- azure-pipelines.yml | 38 ++++++++++++++++++++++++++++++++++++++ config_example.xml | 2 +- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 azure-pipelines.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000..13db2d0 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,38 @@ + # Starter pipeline +# Start with a minimal pipeline that you can customize to build and deploy your code. +# Add steps that build, run tests, deploy, and more: +# https://aka.ms/yaml + + +pool: + vmImage: 'ubuntu-16.04' + +steps: +- task: Maven@3 + displayName: 'Build' + inputs: + mavenPomFile: 'pom.xml' + mavenOptions: '-Xmx3072m' + javaHomeOption: 'JDKVersion' + jdkVersionOption: '1.8' + jdkArchitectureOption: 'x64' + publishJUnitResults: false + testResultsFiles: '**/TEST-*.xml' + goals: 'package' + +- script: | + cp config_example.xml config.xml + sed -i -e "s/mysql:\/\/localhost:3306/$(hostUri)/" -e "s/value/$(password)/" -e "s/xivstats/$(username)/" -e "s/dbplayers/$(database)/" config.xml + displayName: 'Prepare for test' + +- task: Maven@3 + displayName: 'Test' + inputs: + mavenPomFile: 'pom.xml' + mavenOptions: '-Xmx3072m' + javaHomeOption: 'JDKVersion' + jdkVersionOption: '1.8' + jdkArchitectureOption: 'x64' + publishJUnitResults: true + testResultsFiles: '**/TEST-*.xml' + goals: 'verify' diff --git a/config_example.xml b/config_example.xml index eaefe79..e1c7e8d 100644 --- a/config_example.xml +++ b/config_example.xml @@ -4,7 +4,7 @@ mysql://localhost:3306 dbplayers xivstats - password + value 32 From 9a8ee379e092b3b4e5becfff3a2ba8a1e373e532 Mon Sep 17 00:00:00 2001 From: Peter Reid Date: Sun, 12 May 2019 11:56:21 +0100 Subject: [PATCH 2/5] Add publishing step --- azure-pipelines.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 13db2d0..64517df 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -20,6 +20,18 @@ steps: testResultsFiles: '**/TEST-*.xml' goals: 'package' +- script: | + mkdir - p target/release + cp target/*.jar target/release/XIVStats-Gatherer-Java.jar + cp config_example.xml target/release + zip -r XIVStats-Gatherer-Java.zip target/release/ + displayName: zip + +- task: PublishBuildArtifacts@1 + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)/XIVStats-Gatherer-Java.zip' + ArtifactName: 'artifacts' + - script: | cp config_example.xml config.xml sed -i -e "s/mysql:\/\/localhost:3306/$(hostUri)/" -e "s/value/$(password)/" -e "s/xivstats/$(username)/" -e "s/dbplayers/$(database)/" config.xml From bfb141c91250aae372ec1931cc5b3b9dd18e4645 Mon Sep 17 00:00:00 2001 From: Peter Reid Date: Sun, 12 May 2019 12:00:04 +0100 Subject: [PATCH 3/5] Fix publishing path --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 64517df..9810a62 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -29,7 +29,7 @@ steps: - task: PublishBuildArtifacts@1 inputs: - PathtoPublish: '$(Build.ArtifactStagingDirectory)/XIVStats-Gatherer-Java.zip' + PathtoPublish: '$(Build.SourcesDirectory)/XIVStats-Gatherer-Java.zip' ArtifactName: 'artifacts' - script: | From e55b4448ad1c241c0c5180d582ab1e1a5d6b842e Mon Sep 17 00:00:00 2001 From: Matt Hillier Date: Fri, 17 May 2019 19:36:18 +0800 Subject: [PATCH 4/5] Fixed addition of DC name into World filed (#50) - Updated Unit Tests to match - Fixed Unit Test failures from updated character info --- .../gatherer/player/PlayerBuilder.java | 8 +- .../gatherer/player/PlayerBuilderIT.java | 2 +- .../gatherer/player/PlayerBuilderTest.java | 14 +- .../data/lodestone/Character-2256025.html | 869 ++++++++++++------ .../data/lodestone/Character-22763008.html | 852 +++++++++++------ 5 files changed, 1201 insertions(+), 544 deletions(-) diff --git a/src/main/java/com/ffxivcensus/gatherer/player/PlayerBuilder.java b/src/main/java/com/ffxivcensus/gatherer/player/PlayerBuilder.java index 7395e20..5929814 100644 --- a/src/main/java/com/ffxivcensus/gatherer/player/PlayerBuilder.java +++ b/src/main/java/com/ffxivcensus/gatherer/player/PlayerBuilder.java @@ -10,6 +10,7 @@ import java.util.List; import java.util.regex.Pattern; +import org.apache.commons.lang.StringUtils; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; @@ -252,7 +253,12 @@ private String getNameFromPage(final Document doc) { */ private String getRealmFromPage(final Document doc) { // Get elements in the player name area, and return the Realm name (contained in the span) - return doc.getElementsByClass(LAYOUT_FRAME_CHARA_WORLD).get(0).text().replace("(", "").replace(")", ""); + String realmAndDatacenter = doc.getElementsByClass(LAYOUT_FRAME_CHARA_WORLD).get(0).text(); + String realm = null; + if(!StringUtils.isEmpty(realmAndDatacenter)) { + realm = realmAndDatacenter.substring(0, realmAndDatacenter.indexOf("(") - 1); + } + return realm; } /** diff --git a/src/test/java/com/ffxivcensus/gatherer/player/PlayerBuilderIT.java b/src/test/java/com/ffxivcensus/gatherer/player/PlayerBuilderIT.java index 1871c43..cdb0017 100644 --- a/src/test/java/com/ffxivcensus/gatherer/player/PlayerBuilderIT.java +++ b/src/test/java/com/ffxivcensus/gatherer/player/PlayerBuilderIT.java @@ -92,7 +92,7 @@ public void testGetPlayer() throws Exception { assertTrue(playerOne.getLevelFisher() >= 60); // The Forbidden Land, Eureka - assertTrue(playerOne.getLevelEureka() == 0); + assertTrue(playerOne.getLevelEureka() == 20); // Test boolean values // Subscription periods diff --git a/src/test/java/com/ffxivcensus/gatherer/player/PlayerBuilderTest.java b/src/test/java/com/ffxivcensus/gatherer/player/PlayerBuilderTest.java index 4e3c51a..1ddbef7 100644 --- a/src/test/java/com/ffxivcensus/gatherer/player/PlayerBuilderTest.java +++ b/src/test/java/com/ffxivcensus/gatherer/player/PlayerBuilderTest.java @@ -45,9 +45,9 @@ public void testLoadFrom2256025() throws Exception { // Melee DPS assertEquals(70, player.getLevelPugilist()); - assertEquals(29, player.getLevelLancer()); - assertEquals(51, player.getLevelRogue()); - assertEquals(67, player.getLevelSamurai()); + assertEquals(37, player.getLevelLancer()); + assertEquals(54, player.getLevelRogue()); + assertEquals(70, player.getLevelSamurai()); // Ranged Physical DPS assertEquals(70, player.getLevelArcher()); @@ -80,7 +80,7 @@ public void testLoadFrom2256025() throws Exception { assertEquals(70, player.getLevelFisher()); // The Forbidden Land, Eureka - assertEquals(51, player.getLevelEureka()); + assertEquals(60, player.getLevelEureka()); // Test boolean values // Subscription periods @@ -157,13 +157,13 @@ public void testLoadFrom22763008() throws Exception { // Following can only be assumed to be true based on info at time of test creation assertEquals("Miqo'te", player.getRace()); assertEquals("male", player.getGender()); - assertEquals("none", player.getGrandCompany()); + assertEquals("Maelstrom", player.getGrandCompany()); // assertEquals("End of Days", playerOne.getFreeCompany()); // Test classes - levels based on those at time of test creation // Tank assertEquals(0, player.getLevelGladiator()); - assertEquals(15, player.getLevelMarauder()); + assertEquals(28, player.getLevelMarauder()); assertEquals(0, player.getLevelDarkknight()); // Melee DPS @@ -258,7 +258,7 @@ public void testLoadFrom22763008() throws Exception { // Test mounts string // Test for data from (near) start - assertFalse(player.getMounts().contains("Company Chocobo")); + assertTrue(player.getMounts().contains("Company Chocobo")); // Test for data from middle assertFalse(player.getMounts().contains("Cavalry Drake")); // Test for data from very end diff --git a/src/test/resources/data/lodestone/Character-2256025.html b/src/test/resources/data/lodestone/Character-2256025.html index 201efbb..0e8b55e 100644 --- a/src/test/resources/data/lodestone/Character-2256025.html +++ b/src/test/resources/data/lodestone/Character-2256025.html @@ -29,23 +29,23 @@ - + - + - + - @@ -65,6 +65,10 @@ + + + + @@ -118,12 +122,12 @@ var api_uri = '/lodestone/api/'; var static_uri = 'https://img.finalfantasyxiv.com/lds/'; var subdomain = 'eu'; - var csrf_token = 'f29784db4b2c6aed08895d4f0c27c8ec2ba495b6'; + var csrf_token = '62ec2b7a610c4812d4406c6d57e5809f314909da'; var cis_origin = 'https://secure.square\u002denix.com'; var ldst_max_image_size = 31457280; var eorzeadb = { cdn_prefix: 'https://img.finalfantasyxiv.com/lds/', - version: '1549956137', + version: '1557814551', version_js_uri: 'https://img.finalfantasyxiv.com/lds/pc/global/js/eorzeadb/version.js', dynamic_tooltip: false }; @@ -239,143 +243,393 @@ -