Skip to content

Commit fe6125d

Browse files
stevewalton28travis-ci
andauthored
Adding static build time reference to bank holidays in case CI system… (#48)
* Adding static build time reference to bank holidays in case CI systems can't reach out to the internet to get them. Fixing issue #33 * Calling out from travis to get the bank holidays json * Fixing codacy issues Co-authored-by: travis-ci <[email protected]>
1 parent 3541fcf commit fe6125d

File tree

6 files changed

+30
-11
lines changed

6 files changed

+30
-11
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,5 @@ bin
4848
*.csv
4949

5050
script/dist
51-
logs/*
51+
logs/*
52+
src/main/resources/bank-holidays.json

.travis.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,12 @@ before_install:
1717
--background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16"
1818
- google-chrome-stable --remote-debugging-port=9222 http://localhost &
1919
- chmod ugo+x scripts/publish-javadocs-to-github-pages.sh
20+
- chmod ugo+x scripts/get-bank-holiday-data-source-and-store-in-resources.sh
2021
addons:
2122
firefox: latest
2223
install:
2324
- mvn clean install -Dmaven.javadoc.skip=true -B -V
25+
- bash scripts/get-bank-holiday-data-source-and-store-in-resources.sh
2426
after_success:
2527
- gpg2 --keyring=$TRAVIS_BUILD_DIR/pubring.gpg --no-default-keyring --import deployment/signingkey.asc
2628
- gpg2 --allow-secret-key-import --keyring=$TRAVIS_BUILD_DIR/secring.gpg --no-default-keyring

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@
279279
<version>2.5.3</version>
280280
<configuration>
281281
<localCheckout>true</localCheckout>
282-
<pushChanges>true</pushChanges>
282+
<pushChanges>false</pushChanges>
283283
<mavenExecutorId>forked-path</mavenExecutorId>
284284
<arguments>-Dgpg.passphrase=${env.GPG_PASSPHRASE} -Dmaven.test.skip=true</arguments>
285285
<checkModificationExcludes>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/usr/bin/env sh
2+
3+
curl https://www.gov.uk/bank-holidays.json --output src/main/resources/bank-holidays.json
4+
echo "STEVE STEVE STEVE"
5+
ls src/main/resources

src/main/java/uk/co/evoco/testdata/Dates.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
package uk.co.evoco.testdata;
22

3-
import com.fasterxml.jackson.core.JsonProcessingException;
43
import net.andreinc.mockneat.abstraction.MockUnitBase;
54
import org.joda.time.DateTime;
65
import org.joda.time.LocalDate;
76
import org.joda.time.format.DateTimeFormat;
87
import org.joda.time.format.DateTimeFormatter;
98
import uk.co.evoco.webdriver.utils.JsonUtils;
109

10+
import java.io.IOException;
11+
1112
import static io.restassured.RestAssured.get;
1213

1314
public class Dates extends MockUnitBase {
@@ -78,13 +79,12 @@ public static String futureDateAvoidingWeekends(String startDate, int numberOfBu
7879
* @param numberOfBusinessDaysToAdd Days to add, avoiding weekends and UK bank holidays
7980
* @param dateFormat date format (e.g. "dd/MM/yyyy","dd/MM/yyyy HH:mm")
8081
* @return String representing resulting date
81-
* @throws JsonProcessingException if the JSON source for bank holidays cannot be read
82+
* @throws IOException if the JSON source for bank holidays cannot be read
8283
*/
8384
public static String futureDataAvoidingWeekendsAndBankHolidays(
8485
Locale locale, String startDate,
85-
int numberOfBusinessDaysToAdd, String dateFormat) throws JsonProcessingException {
86-
BankHolidays bankHolidays = JsonUtils.fromString(
87-
get("https://www.gov.uk/bank-holidays.json").body().asString(), BankHolidays.class);
86+
int numberOfBusinessDaysToAdd, String dateFormat) throws IOException {
87+
BankHolidays bankHolidays = getBankHolidays();
8888
DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern(dateFormat);
8989
DateTime now = DateTime.parse(startDate, dateTimeFormatter).toDateTime();
9090
DateTime futureDateTime = DateTime.parse(
@@ -106,4 +106,14 @@ public static String futureDataAvoidingWeekendsAndBankHolidays(
106106
return futureDateTime.toString(dateTimeFormatter);
107107
}
108108

109+
private static BankHolidays getBankHolidays() throws IOException {
110+
BankHolidays bankHolidays;
111+
try {
112+
bankHolidays = JsonUtils.fromString(
113+
get("https://www.gov.uk/bank-holidays.json").body().asString(), BankHolidays.class);
114+
} catch(Exception e) {
115+
bankHolidays = JsonUtils.fromFile(ClassLoader.getSystemResourceAsStream("bank-holidays.json"), BankHolidays.class);
116+
}
117+
return bankHolidays;
118+
}
109119
}

src/test/java/uk/co/evoco/testdata/DatesTests.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
package uk.co.evoco.testdata;
22

3-
import com.fasterxml.jackson.core.JsonProcessingException;
43
import org.junit.jupiter.api.Test;
54

5+
import java.io.IOException;
6+
67
import static org.hamcrest.CoreMatchers.is;
78
import static org.hamcrest.MatcherAssert.assertThat;
9+
import static uk.co.evoco.testdata.Dates.futureDateAvoidingWeekends;
810
import static uk.co.evoco.testdata.Dates.futureDate;
911
import static uk.co.evoco.testdata.Dates.pastDate;
10-
import static uk.co.evoco.testdata.Dates.futureDateAvoidingWeekends;
1112
import static uk.co.evoco.testdata.Dates.futureDataAvoidingWeekendsAndBankHolidays;
1213

1314
public class DatesTests {
@@ -31,15 +32,15 @@ public void testCanDataInFutureAvoidingWeekend() {
3132
}
3233

3334
@Test
34-
public void testCanGetDateInFutureAvoidingWeekendsAndBankHolidays() throws JsonProcessingException {
35+
public void testCanGetDateInFutureAvoidingWeekendsAndBankHolidays() throws IOException {
3536
assertThat(futureDataAvoidingWeekendsAndBankHolidays(
3637
Locale.ENGLAND_AND_WALES, "28/08/2017", 2, "dd/MM/yyyy"),
3738
is("31/08/2017"));
3839
}
3940

4041
@Test
4142
public void testCanGetDateInFutureAvoidingWeekendsAndBankHolidaysWhenStartDateIsOnFriday()
42-
throws JsonProcessingException {
43+
throws IOException {
4344
assertThat(futureDataAvoidingWeekendsAndBankHolidays(
4445
Locale.ENGLAND_AND_WALES, "25/08/2017", 2, "dd/MM/yyyy"),
4546
is("30/08/2017"));

0 commit comments

Comments
 (0)