From 7f5e68552476f494a8e644a3c6ab257d3034ce46 Mon Sep 17 00:00:00 2001 From: Evan Siroky Date: Fri, 10 Sep 2021 15:21:23 -0700 Subject: [PATCH 001/158] Add back IBI continuous integration stuff --- .github/workflows/cibuild.yml | 88 ++++++++++++++----- scripts/add-aws-credentials.sh | 17 ++++ ...ep-build-for-deploy-from-github-actions.sh | 20 +++++ ...rep-docs-for-deploy-from-github-actions.sh | 10 +++ 4 files changed, 112 insertions(+), 23 deletions(-) create mode 100755 scripts/add-aws-credentials.sh create mode 100755 scripts/prep-build-for-deploy-from-github-actions.sh create mode 100755 scripts/prep-docs-for-deploy-from-github-actions.sh diff --git a/.github/workflows/cibuild.yml b/.github/workflows/cibuild.yml index fc42c209187..d09bc6023d2 100644 --- a/.github/workflows/cibuild.yml +++ b/.github/workflows/cibuild.yml @@ -1,43 +1,85 @@ name: OTP CI Build -# On [push, pull_request] causes double-builds when creating PRs. -# But triggering on push only will miss pull requests from outside authors. -# The push event's ref is the name of the pushed branch; -# The pull_request event's branch name is the merge target branch. + on: push: - branches: - - master - - dev-1.x - - dev-2.x pull_request: branches: - - master - - dev-1.x - - dev-2.x + - ibi-dev + - ibi-dev-2.x jobs: build: runs-on: ubuntu-latest + + env: + MAVEN_OPTS: -Xmx2g steps: # Starting in v2.2 checkout action fetches all tags when fetch-depth=0, for auto-versioning. - uses: actions/checkout@v2.3.2 with: fetch-depth: 0 - # Java setup step completes very fast, no need to run in a preconfigured docker container + # Java setup step completes very fast, no need to run in a preconfigured docker container. - name: Set up JDK 11 uses: actions/setup-java@v1 with: java-version: 11 - - name: Cache local Maven repository + # Retain the local Maven repository to speed up builds. + - name: Setup Maven Cache uses: actions/cache@v2 + id: cache with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- - - name: Build and Test - run: mvn --batch-mode --update-snapshots verify - - name: Deploy to Github Package Registry - if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/dev-1.x' || github.ref == 'refs/heads/dev-2.x') + path: ~/.m2 + key: maven-local-repo + # So that the branch name can be reference via $GITHUB_HEAD_REF_SLUG. + - name: Inject slug/short variables + uses: rlespinasse/github-slug-action@v3.x + # Define AWS profile credentials for use by subsequent steps. + - name: Add profile credentials to ~/.aws/credentials + if: github.event_name == 'push' + run: ./scripts/add-aws-credentials.sh env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: mvn --batch-mode deploy --settings maven-settings.xml -DskipTests -DGITHUB_REPOSITORY=$GITHUB_REPOSITORY \ No newline at end of file + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_REGION: ${{ secrets.AWS_REGION }} + # Build and test deployment. + - name: Build and Test + run: mvn clean verify --batch-mode --show-version --update-snapshots -Dgpg.skip + # Only prepare deploy files on push events to avoid duplicate pushes to s3 when a commit is + # pushed to a branch with an open pull request. + - name: Prepare build files for deployment to s3 + if: github.event_name == 'push' + run: ./scripts/prep-build-for-deploy-from-github-actions.sh + # Copy build files to AWS. + - name: Copy build files to the otp-repo bucket + if: github.event_name == 'push' + run: | + aws s3 cp ./deploy s3://otp-repo --recursive --acl public-read + # Install mkdocs using pip for use by subsequent steps. + - name: Install mkdocs + if: github.event_name == 'push' && ( + env.GITHUB_HEAD_REF_SLUG == 'ibi-dev' || env.GITHUB_HEAD_REF_SLUG == 'ibi-dev-2.x' + ) + run: | + pip install mkdocs + # Using mkdocs produce docs for deployment. + - name: Prepare doc files for deployment to s3 + if: github.event_name == 'push' && ( + env.GITHUB_HEAD_REF_SLUG == 'ibi-dev' || env.GITHUB_HEAD_REF_SLUG == 'ibi-dev-2.x' + ) + run: ./scripts/prep-docs-for-deploy-from-github-actions.sh + # If on ibi-dev branch, then upload docs to IBI s3 buckets & cloudfront. + - name: Upload docs to IBI s3 buckets & cloudfront + if: github.event_name == 'push' && ( + env.GITHUB_HEAD_REF_SLUG == 'ibi-dev' || env.GITHUB_HEAD_REF_SLUG == 'ibi-dev-2.x' + ) + run: | + aws s3 cp ./target/mkdocs s3://otp-docs.ibi-transit.com --recursive --acl public-read + # Push notification to Teams. + - name: Notify us of the build status on MS Teams + # Release https://github.com/toko-bifrost/ms-teams-deploy-card/releases/tag/3.1.2 this matches + # the full length commit SHA below. This must not be changed without first reviewing the code of the newer + # version for potential security risks. + uses: toko-bifrost/ms-teams-deploy-card@dcc94e4ce4088b1e6b6de5c9a3cda4ddcbe97d2e + if: always() + with: + github-token: ${{ github.token }} + webhook-uri: ${{ secrets.MSTEAMS_WEBHOOK }} \ No newline at end of file diff --git a/scripts/add-aws-credentials.sh b/scripts/add-aws-credentials.sh new file mode 100755 index 00000000000..1f2a5da629e --- /dev/null +++ b/scripts/add-aws-credentials.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +# This script will create the AWS credentials file if it does not exist. +# It is only meant to be run on CI (to create the proper +# environment for E2E tests). +mkdir -p ~/.aws + +# If credentials do not exist, create file setting values to +# environment variables (which must be defined in CI). +# This should avoid any accidental overwrite on your local dev machine :) +if [ ! -f ~/.aws/credentials ]; then +cat > ~/.aws/credentials << EOL +[default] +aws_access_key_id = ${AWS_ACCESS_KEY_ID} +aws_secret_access_key = ${AWS_SECRET_ACCESS_KEY} +region = ${AWS_REGION} +EOL +fi \ No newline at end of file diff --git a/scripts/prep-build-for-deploy-from-github-actions.sh b/scripts/prep-build-for-deploy-from-github-actions.sh new file mode 100755 index 00000000000..85f30b3cb8c --- /dev/null +++ b/scripts/prep-build-for-deploy-from-github-actions.sh @@ -0,0 +1,20 @@ +# get branch name of current branch for use in jar name +export BRANCH=$( + if [ -n "$GITHUB_HEAD_REF" ]; then + echo ${GITHUB_HEAD_REF#refs/heads/}; + else + echo ${GITHUB_REF#refs/heads/}; + fi +) +echo $BRANCH +# `git describe --tags --always HEAD` returns a string of the form v0.0.0-52-ge10d02d. +# It assumes you have pushed a tag on a commit on github (e.g. a commit on the dev branch). +# If for some reason git can't find a tag, fallback with --always to a commit sha. +export JAR_VERSION=$(git describe --tags --always HEAD) +echo $JAR_VERSION +# Create a deployment folder, and a folder for the branch. +mkdir deploy +# Add the JAR file. +cp target/*-shaded.jar deploy/otp-$JAR_VERSION.jar +cp target/*-shaded.jar deploy/otp-latest-$BRANCH.jar + diff --git a/scripts/prep-docs-for-deploy-from-github-actions.sh b/scripts/prep-docs-for-deploy-from-github-actions.sh new file mode 100755 index 00000000000..73473c6f1c1 --- /dev/null +++ b/scripts/prep-docs-for-deploy-from-github-actions.sh @@ -0,0 +1,10 @@ +# build markdown docs using mkdocs +mkdocs build +# build enunciate and JavaDoc +mvn -DskipTests site +mkdir -p target/mkdocs/api +mkdir -p target/mkdocs/JavaDoc +# copy enunciate API docs into mkdocs folder +cp -R target/site/enunciate/apidocs target/mkdocs/api +# copy JavaDoc into mkdocs folder +cp -R target/apidocs target/mkdocs/JavaDoc From f45a4d2c2430c13f105b49c0611c8d1e3591e14c Mon Sep 17 00:00:00 2001 From: Evan Siroky Date: Fri, 10 Sep 2021 15:24:21 -0700 Subject: [PATCH 002/158] Attempt to fix YML syntax for CI config file --- .github/workflows/cibuild.yml | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/.github/workflows/cibuild.yml b/.github/workflows/cibuild.yml index d09bc6023d2..feaf2cb076e 100644 --- a/.github/workflows/cibuild.yml +++ b/.github/workflows/cibuild.yml @@ -55,22 +55,25 @@ jobs: aws s3 cp ./deploy s3://otp-repo --recursive --acl public-read # Install mkdocs using pip for use by subsequent steps. - name: Install mkdocs - if: github.event_name == 'push' && ( - env.GITHUB_HEAD_REF_SLUG == 'ibi-dev' || env.GITHUB_HEAD_REF_SLUG == 'ibi-dev-2.x' - ) + if: | + github.event_name == 'push' && ( + env.GITHUB_HEAD_REF_SLUG == 'ibi-dev' || env.GITHUB_HEAD_REF_SLUG == 'ibi-dev-2.x' + ) run: | pip install mkdocs # Using mkdocs produce docs for deployment. - name: Prepare doc files for deployment to s3 - if: github.event_name == 'push' && ( - env.GITHUB_HEAD_REF_SLUG == 'ibi-dev' || env.GITHUB_HEAD_REF_SLUG == 'ibi-dev-2.x' - ) + if: | + github.event_name == 'push' && ( + env.GITHUB_HEAD_REF_SLUG == 'ibi-dev' || env.GITHUB_HEAD_REF_SLUG == 'ibi-dev-2.x' + ) run: ./scripts/prep-docs-for-deploy-from-github-actions.sh # If on ibi-dev branch, then upload docs to IBI s3 buckets & cloudfront. - name: Upload docs to IBI s3 buckets & cloudfront - if: github.event_name == 'push' && ( - env.GITHUB_HEAD_REF_SLUG == 'ibi-dev' || env.GITHUB_HEAD_REF_SLUG == 'ibi-dev-2.x' - ) + if: | + github.event_name == 'push' && ( + env.GITHUB_HEAD_REF_SLUG == 'ibi-dev' || env.GITHUB_HEAD_REF_SLUG == 'ibi-dev-2.x' + ) run: | aws s3 cp ./target/mkdocs s3://otp-docs.ibi-transit.com --recursive --acl public-read # Push notification to Teams. From 7814eb38c86ef99537a10afe49b29033fe33bea3 Mon Sep 17 00:00:00 2001 From: Evan Siroky Date: Fri, 10 Sep 2021 15:49:47 -0700 Subject: [PATCH 003/158] attempt to get enunciate docs built (but not deployed yet) --- .github/workflows/cibuild.yml | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/.github/workflows/cibuild.yml b/.github/workflows/cibuild.yml index feaf2cb076e..12963d1f7fa 100644 --- a/.github/workflows/cibuild.yml +++ b/.github/workflows/cibuild.yml @@ -55,27 +55,19 @@ jobs: aws s3 cp ./deploy s3://otp-repo --recursive --acl public-read # Install mkdocs using pip for use by subsequent steps. - name: Install mkdocs - if: | - github.event_name == 'push' && ( - env.GITHUB_HEAD_REF_SLUG == 'ibi-dev' || env.GITHUB_HEAD_REF_SLUG == 'ibi-dev-2.x' - ) + if: github.event_name == 'push' && env.GITHUB_HEAD_REF_SLUG == 'ibi-dev-2.x' run: | pip install mkdocs # Using mkdocs produce docs for deployment. - name: Prepare doc files for deployment to s3 - if: | - github.event_name == 'push' && ( - env.GITHUB_HEAD_REF_SLUG == 'ibi-dev' || env.GITHUB_HEAD_REF_SLUG == 'ibi-dev-2.x' - ) + if: github.event_name == 'push' && env.GITHUB_HEAD_REF_SLUG == 'ibi-dev-2.x' run: ./scripts/prep-docs-for-deploy-from-github-actions.sh # If on ibi-dev branch, then upload docs to IBI s3 buckets & cloudfront. - - name: Upload docs to IBI s3 buckets & cloudfront - if: | - github.event_name == 'push' && ( - env.GITHUB_HEAD_REF_SLUG == 'ibi-dev' || env.GITHUB_HEAD_REF_SLUG == 'ibi-dev-2.x' - ) - run: | - aws s3 cp ./target/mkdocs s3://otp-docs.ibi-transit.com --recursive --acl public-read +# FIXME: figure out whether the same bucket should be used, or a different one should be used for 2.x docs +# - name: Upload docs to IBI s3 buckets & cloudfront +# if: github.event_name == 'push' && env.GITHUB_HEAD_REF_SLUG == 'ibi-dev-2.x' +# run: | +# aws s3 cp ./target/mkdocs s3://otp-docs.ibi-transit.com --recursive --acl public-read # Push notification to Teams. - name: Notify us of the build status on MS Teams # Release https://github.com/toko-bifrost/ms-teams-deploy-card/releases/tag/3.1.2 this matches From 7db9fab92c76c3e2468939d53c87717344fab72a Mon Sep 17 00:00:00 2001 From: Evan Siroky Date: Fri, 10 Sep 2021 23:26:24 -0700 Subject: [PATCH 004/158] get most of CI working while noting deferred problems --- .github/workflows/cibuild.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/cibuild.yml b/.github/workflows/cibuild.yml index 12963d1f7fa..edd85291e2d 100644 --- a/.github/workflows/cibuild.yml +++ b/.github/workflows/cibuild.yml @@ -29,7 +29,7 @@ jobs: with: path: ~/.m2 key: maven-local-repo - # So that the branch name can be reference via $GITHUB_HEAD_REF_SLUG. + # So that the branch name can be reference via $GITHUB_REF_SLUG. - name: Inject slug/short variables uses: rlespinasse/github-slug-action@v3.x # Define AWS profile credentials for use by subsequent steps. @@ -55,17 +55,18 @@ jobs: aws s3 cp ./deploy s3://otp-repo --recursive --acl public-read # Install mkdocs using pip for use by subsequent steps. - name: Install mkdocs - if: github.event_name == 'push' && env.GITHUB_HEAD_REF_SLUG == 'ibi-dev-2.x' + if: github.event_name == 'push' && env.GITHUB_REF_SLUG == 'ibi-dev-2.x' run: | pip install mkdocs # Using mkdocs produce docs for deployment. - - name: Prepare doc files for deployment to s3 - if: github.event_name == 'push' && env.GITHUB_HEAD_REF_SLUG == 'ibi-dev-2.x' - run: ./scripts/prep-docs-for-deploy-from-github-actions.sh - # If on ibi-dev branch, then upload docs to IBI s3 buckets & cloudfront. +# FIXME: there is an error while trying to run enunciate to generate the docs +# - name: Prepare doc files for deployment to s3 +# if: github.event_name == 'push' && env.GITHUB_REF_SLUG == 'ibi-dev-2.x' +# run: ./scripts/prep-docs-for-deploy-from-github-actions.sh +# # If on ibi-dev branch, then upload docs to IBI s3 buckets & cloudfront. # FIXME: figure out whether the same bucket should be used, or a different one should be used for 2.x docs # - name: Upload docs to IBI s3 buckets & cloudfront -# if: github.event_name == 'push' && env.GITHUB_HEAD_REF_SLUG == 'ibi-dev-2.x' +# if: github.event_name == 'push' && env.GITHUB_REF_SLUG == 'ibi-dev-2.x' # run: | # aws s3 cp ./target/mkdocs s3://otp-docs.ibi-transit.com --recursive --acl public-read # Push notification to Teams. From 7c8588a82c6d78d96556f8141158ea4b3bb9e608 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 9 Dec 2021 09:48:51 +0100 Subject: [PATCH 005/158] Add skeleton for smoke tests --- .gitignore | 5 +++++ smoke-tests/Makefile | 28 ++++++++++++++++++++++++++++ smoke-tests/atlanta/otp-config.json | 6 ++++++ smoke-tests/start-atlanta.sh | 21 +++++++++++++++++++++ 4 files changed, 60 insertions(+) create mode 100644 smoke-tests/Makefile create mode 100644 smoke-tests/atlanta/otp-config.json create mode 100755 smoke-tests/start-atlanta.sh diff --git a/.gitignore b/.gitignore index 66e4e8ded85..397d6b4e076 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,8 @@ target/ # for local dev only src/ext/resources/reportapi/report.csv + +smoke-tests/*.jar +smoke-tests/**/*.obj +smoke-tests/**/*.pbf +smoke-tests/**/*.zip diff --git a/smoke-tests/Makefile b/smoke-tests/Makefile new file mode 100644 index 00000000000..8cda97764de --- /dev/null +++ b/smoke-tests/Makefile @@ -0,0 +1,28 @@ +CURL:=curl -L -\# --fail --create-dirs +current_dir = $(shell pwd) + +download: otp.jar + +otp.jar: + cp ../target/otp-*-SNAPSHOT-shaded.jar otp.jar + + +atlanta/osm.pbf: + ${CURL} https://leonard.io/ibi/atlanta-2021-12-08.osm.pbf -o $@ + +atlanta/cobblinc.gtfs.zip: + ${CURL} https://www.arcgis.com/sharing/rest/content/items/1ce8e370a12c41b5854d8baa21f8451c/data -o $@ + +atlanta/cobblinc-flex.gtfs.zip: + ${CURL} https://leonard.io/ibi/cobblinc-flex-with-farezones.zip -o $@ + +atlanta/gtfs.zip: atlanta/cobblinc.gtfs.zip atlanta/cobblinc-flex.gtfs.zip + ${CURL} https://itsmarta.com/google_transit_feed/google_transit.zip -o $@ + +build-%: otp.jar %/osm.pbf %/gtfs.zip + java -jar otp.jar --build --save $* + +run-%: otp.jar + java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044 -Dlogback.configurationFile=${current_dir}/logback.xml -jar otp.jar --load --serve $* + + diff --git a/smoke-tests/atlanta/otp-config.json b/smoke-tests/atlanta/otp-config.json new file mode 100644 index 00000000000..86f16246ba9 --- /dev/null +++ b/smoke-tests/atlanta/otp-config.json @@ -0,0 +1,6 @@ +{ + "otpFeatures" : { + "FlexRouting": true, + "SandboxAPILegacyGraphQLApi": true + } +} diff --git a/smoke-tests/start-atlanta.sh b/smoke-tests/start-atlanta.sh new file mode 100755 index 00000000000..6506a7602a2 --- /dev/null +++ b/smoke-tests/start-atlanta.sh @@ -0,0 +1,21 @@ +#! /bin/bash -e + +cp ../target/otp-*-SNAPSHOT-shaded.jar otp.jar + +GRAPH_DIR=atlanta +CURL_OPTS="-L --create-dirs -C -" + +echo "Downloading GTFS" +curl ${CURL_OPTS} https://itsmarta.com/google_transit_feed/google_transit.zip -o ${GRAPH_DIR}/marta.gtfs.zip +echo "Downloading OSM" +curl ${CURL_OPTS} https://leonard.io/ibi/atlanta-2021-12-08.osm.pbf -o ${GRAPH_DIR}/atlanta-12-12-08.osm.pbf + +echo "Building graph" +java -jar otp.jar --build --save $GRAPH_DIR + +echo "Starting OTP" + +nohup java -jar otp.jar --load --serve atlanta & + +tail -f nohup.out +sleep 10 From dbf53a577cdab963f55207d625cf3ec7567b2b9b Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 9 Dec 2021 11:06:07 +0100 Subject: [PATCH 006/158] Build graph for smoke tests --- .github/workflows/cibuild.yml | 9 +++--- .github/workflows/smoke-test.yml | 49 ++++++++++++++++++++++++++++++++ smoke-tests/Makefile | 4 --- 3 files changed, 54 insertions(+), 8 deletions(-) create mode 100644 .github/workflows/smoke-test.yml diff --git a/.github/workflows/cibuild.yml b/.github/workflows/cibuild.yml index edd85291e2d..ab981eef62c 100644 --- a/.github/workflows/cibuild.yml +++ b/.github/workflows/cibuild.yml @@ -23,12 +23,13 @@ jobs: with: java-version: 11 # Retain the local Maven repository to speed up builds. - - name: Setup Maven Cache + - name: Cache local Maven repository uses: actions/cache@v2 - id: cache with: - path: ~/.m2 - key: maven-local-repo + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- # So that the branch name can be reference via $GITHUB_REF_SLUG. - name: Inject slug/short variables uses: rlespinasse/github-slug-action@v3.x diff --git a/.github/workflows/smoke-test.yml b/.github/workflows/smoke-test.yml new file mode 100644 index 00000000000..36a7f6768a1 --- /dev/null +++ b/.github/workflows/smoke-test.yml @@ -0,0 +1,49 @@ +name: Smoke Tests + +on: + push: + pull_request: + branches: + - ibi-dev + - ibi-dev-2.x +jobs: + smoke-tests: + runs-on: ubuntu-latest + + env: + MAVEN_OPTS: -Xmx2g + steps: + + - uses: actions/checkout@v2.3.2 + with: + fetch-depth: 0 + + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + + - name: Cache local Maven repository + uses: actions/cache@v2 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + + - name: Cache OSM files + uses: actions/cache@v2 + with: + path: smoke-tests/atlanta/*.pbf + key: osm + + - name: Build jar file + run: mvn clean package -Dmaven.test.skip + + - name: Build Atlanta graph and start OTP in background + run: | + cd smoke-tests + make build-atlanta + make run-atlanta & + # OTP needs a little while to start up so we sleep + sleep 10 diff --git a/smoke-tests/Makefile b/smoke-tests/Makefile index 8cda97764de..eaa091eefe7 100644 --- a/smoke-tests/Makefile +++ b/smoke-tests/Makefile @@ -1,12 +1,8 @@ CURL:=curl -L -\# --fail --create-dirs -current_dir = $(shell pwd) - -download: otp.jar otp.jar: cp ../target/otp-*-SNAPSHOT-shaded.jar otp.jar - atlanta/osm.pbf: ${CURL} https://leonard.io/ibi/atlanta-2021-12-08.osm.pbf -o $@ From d12b35ca7d26e70f0de5ca1ff17d4cde1f68d335 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 9 Dec 2021 11:37:30 +0100 Subject: [PATCH 007/158] Add smoke test files --- pom.xml | 1 + .../smoketest/AtlantaSmokeTest.java | 15 +++++++++++++++ .../org/opentripplanner/smoketest/SmokeTest.java | 6 ++++++ 3 files changed, 22 insertions(+) create mode 100644 src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java create mode 100644 src/test/java/org/opentripplanner/smoketest/SmokeTest.java diff --git a/pom.xml b/pom.xml index 4ab446ccb17..81cf9a79e87 100644 --- a/pom.xml +++ b/pom.xml @@ -238,6 +238,7 @@ false + org.opentripplanner.smoketest.SmokeTest diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java new file mode 100644 index 00000000000..89c618e3af5 --- /dev/null +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -0,0 +1,15 @@ +package org.opentripplanner.smoketest; + +import static org.junit.jupiter.api.Assertions.fail; + +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(SmokeTest.class) +public class AtlantaSmokeTest { + + @Test + public void shouldFail(){ + fail(); + } +} diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java new file mode 100644 index 00000000000..afebcb64539 --- /dev/null +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -0,0 +1,6 @@ +package org.opentripplanner.smoketest; + +/** + * This is just a marker class for use as a Junit category. + */ +public class SmokeTest {} From 1cff3030a937a0f27916891c45b64eb1965c913c Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 9 Dec 2021 12:23:05 +0100 Subject: [PATCH 008/158] Configure maven to run smoke tests --- pom.xml | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 81cf9a79e87..96782f62b2f 100644 --- a/pom.xml +++ b/pom.xml @@ -238,7 +238,8 @@ false - org.opentripplanner.smoketest.SmokeTest + ${test.excluded.groups} + ${test.included.groups} @@ -723,6 +724,24 @@ + + unit-tests + + true + + + * + org.opentripplanner.smoketest.SmokeTest + + + + smoke-tests + + + org.opentripplanner.smoketest.SmokeTest + * + + clean-test-snapshots From 9ccab933924e9d2ebb2cf357971b09f585078b0b Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 9 Dec 2021 12:30:39 +0100 Subject: [PATCH 009/158] Run smoke test --- .github/workflows/smoke-test.yml | 3 +++ .../smoketest/AtlantaSmokeTest.java | 20 ++++++++++++++++--- .../opentripplanner/smoketest/SmokeTest.java | 2 +- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/.github/workflows/smoke-test.yml b/.github/workflows/smoke-test.yml index 36a7f6768a1..0f8c3a269ac 100644 --- a/.github/workflows/smoke-test.yml +++ b/.github/workflows/smoke-test.yml @@ -47,3 +47,6 @@ jobs: make run-atlanta & # OTP needs a little while to start up so we sleep sleep 10 + + - name: Run smoke tests + run: mvn test -P smoke-tests diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index 89c618e3af5..6ac0f28f50b 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -1,15 +1,29 @@ package org.opentripplanner.smoketest; -import static org.junit.jupiter.api.Assertions.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import java.io.IOException; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse.BodyHandlers; import org.junit.Test; import org.junit.experimental.categories.Category; @Category(SmokeTest.class) public class AtlantaSmokeTest { + HttpClient client = HttpClient.newHttpClient(); + @Test - public void shouldFail(){ - fail(); + public void shouldFail() throws IOException, InterruptedException { + var request = HttpRequest.newBuilder() + .uri(URI.create("http://localhost:8080/otp/routers/default/plan?fromPlace=33.747751389895576,-84.38529968261719&toPlace=33.90176649398624,-84.53704833984375&time=12:23pm&date=12-09-2021&mode=TRANSIT,WALK&maxWalkDistance=4828.032&arriveBy=false&wheelchair=false&showIntermediateStops=true&debugItineraryFilter=false&locale=en")) + .GET() + .build(); + + var response = client.send(request, BodyHandlers.discarding()); + + assertEquals(200, response.statusCode(), "Status code returned by OTP server was not 200"); } } diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index afebcb64539..ad28db1f690 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -1,6 +1,6 @@ package org.opentripplanner.smoketest; /** - * This is just a marker class for use as a Junit category. + * This is just a marker class for use as a JUnit category. */ public class SmokeTest {} From 4a3186f619a6728ae3bd2c1910610e2ff2326bdf Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 9 Dec 2021 14:17:25 +0100 Subject: [PATCH 010/158] Add assertion about number of itineraries --- pom.xml | 9 ++++ .../smoketest/AtlantaSmokeTest.java | 51 +++++++++++++++++-- 2 files changed, 57 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 96782f62b2f..040259fed86 100644 --- a/pom.xml +++ b/pom.xml @@ -134,6 +134,9 @@ 11 + + -parameters + @@ -594,6 +597,12 @@ jackson-datatype-jsr310 ${jackson.version} + + com.fasterxml.jackson.module + jackson-module-parameter-names + ${jackson.version} + test + unit-tests @@ -743,9 +746,9 @@ org.opentripplanner.smoketest.SmokeTest + smoke-tests - org.opentripplanner.smoketest.SmokeTest * diff --git a/smoke-tests/Makefile b/smoke-tests/Makefile index eaa091eefe7..e595599691d 100644 --- a/smoke-tests/Makefile +++ b/smoke-tests/Makefile @@ -4,12 +4,14 @@ otp.jar: cp ../target/otp-*-SNAPSHOT-shaded.jar otp.jar atlanta/osm.pbf: + # this file can be re-hosted on IBI provided infrastructure ${CURL} https://leonard.io/ibi/atlanta-2021-12-08.osm.pbf -o $@ atlanta/cobblinc.gtfs.zip: ${CURL} https://www.arcgis.com/sharing/rest/content/items/1ce8e370a12c41b5854d8baa21f8451c/data -o $@ atlanta/cobblinc-flex.gtfs.zip: + # once a continuously updated file is available we can replace the URL ${CURL} https://leonard.io/ibi/cobblinc-flex-with-farezones.zip -o $@ atlanta/gtfs.zip: atlanta/cobblinc.gtfs.zip atlanta/cobblinc-flex.gtfs.zip @@ -19,6 +21,6 @@ build-%: otp.jar %/osm.pbf %/gtfs.zip java -jar otp.jar --build --save $* run-%: otp.jar - java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044 -Dlogback.configurationFile=${current_dir}/logback.xml -jar otp.jar --load --serve $* + java -jar otp.jar --load --serve $* diff --git a/smoke-tests/Readme.md b/smoke-tests/Readme.md new file mode 100644 index 00000000000..cba8c244993 --- /dev/null +++ b/smoke-tests/Readme.md @@ -0,0 +1,36 @@ +## IBI Group OTP Smoke Tests + +This folder contains scripts and configuration files for running an OTP instance that can then be +use to run smoke tests against. These tests are intended as a last sanity check when we merge +upstream changes as these merges tend to be very large. It helps to reduce the burden on the +reviewer and increases the confidence that the upstream merge won't break anything. + +### Commands + +If you want to prepare an OTP instance for the smoke tests, run the following commands to build the +jar, download all OSM and GTFS files and then build the graph: + +``` +# start in root OTP dir +cd OpenTripPlanner +mvn package -DskipTests +cd smoke-tests +make build-atlanta +``` + +After the graph is build you can then run OTP with: + +``` +make run-atlanta +``` + +And finally run the smoke tests with + +``` +mvn test -P smoke-tests +``` + +### CI + +The CI workflow that does all of this automatically can be found +at [smoke-tests.yml](../.github/workflows/smoke-tests.yml). diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index 2292c9ab27a..0ea2577371f 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -10,6 +10,16 @@ import org.junit.Test; import org.junit.experimental.categories.Category; +/** + * This smoke test expects an OTP installation running at localhost:8080 + *

+ * It uses the REST API to check that a route from central Atlanta to the flex zone in Powder + * Springs can be planned. In order to guarantee somewhat predictable results over time it uses 1pm + * on the next Monday relative to the day the test is run as the start time of the route. + *

+ * The assertions are intentionally vague as more precise ones would probably cause false positives + * when there are slight changes in the schedule. + */ @Category(SmokeTest.class) public class AtlantaSmokeTest { @@ -60,9 +70,11 @@ public void flexRouteFromCentralAtlantaToPowderSprings() { .flatMap(i -> i.legs.stream().filter(l -> l.transitLeg)) .collect(Collectors.toList()); - var hasFlexRoute = transitLegs.stream().map(l -> l.routeShortName).anyMatch(name -> name.equals("Zone 1")); + var usesZone1Route = transitLegs.stream() + .map(l -> l.routeShortName) + .anyMatch(name -> name.equals("Zone 1")); - assertTrue(hasFlexRoute); + assertTrue(usesZone1Route); } } diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index e2d3a7f168f..06ce4cec15b 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -44,7 +44,12 @@ public class SmokeTest { static HttpClient client = HttpClient.newHttpClient(); static final ObjectMapper mapper; - static class CurrencyDeserializer extends JsonDeserializer { + /** + * The Fare class is a little hard to deserialize so we have a custom deserializer as we don't + * run any assertions against the fares. (That is done during unit tests.) + */ + static class FareDeserializer extends JsonDeserializer { + @Override public Fare deserialize( JsonParser jsonParser, DeserializationContext deserializationContext @@ -57,7 +62,7 @@ public Fare deserialize( var provider = new JSONObjectMapperProvider(); SimpleModule module = new SimpleModule("SmokeTests"); - module.addDeserializer(Fare.class, new CurrencyDeserializer()); + module.addDeserializer(Fare.class, new FareDeserializer()); mapper = provider.getContext(null); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); @@ -69,7 +74,10 @@ static LocalDate nextMonday() { return LocalDate.now().with(TemporalAdjusters.next(DayOfWeek.MONDAY)); } - static HttpRequest planRequest(Map params) { + /** + * Builds an HTTP request for sending to an OTP instance. + */ + static HttpRequest buildPlanRequest(Map params) { var urlParams = params.entrySet() .stream() .map(kv -> kv.getKey() + "=" + kv.getValue()) @@ -84,8 +92,11 @@ static HttpRequest planRequest(Map params) { } + /** + * Sends an HTTP request to the OTP plan endpoint and deserializes the response. + */ static TripPlannerResponse sendPlanRequest(Map params) { - var request = SmokeTest.planRequest(params); + var request = SmokeTest.buildPlanRequest(params); LOG.info("Sending request to {}", request.uri()); TripPlannerResponse otpResponse; try { @@ -109,6 +120,10 @@ static TripPlannerResponse sendPlanRequest(Map params) { return otpResponse; } + /** + * Given a list of itineraries assert that at least one of them has legs that + * have the expected modes. + */ static void assertThatItineraryHasModes( List itineraries, List expectedModes From e7b4cefdd52b1acbd7b412c8773163b7f5bfe140 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 13 Dec 2021 16:54:19 +0100 Subject: [PATCH 019/158] Expand search window --- .../java/org/opentripplanner/smoketest/AtlantaSmokeTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index 0ea2577371f..4957dd0ddbe 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -35,7 +35,8 @@ public void regularRouteFromCentralAtlantaToPowderSprings() { "date", SmokeTest.nextMonday().toString(), "mode", "TRANSIT,WALK", "showIntermediateStops", "true", - "locale", "en" + "locale", "en", + "searchWindow", Long.toString(Duration.ofHours(2).toSeconds()) ); var otpResponse = SmokeTest.sendPlanRequest(params); var itineraries = otpResponse.getPlan().itineraries; From 9c380456a521d44c48a202dd725f3fcb0dfb9aa8 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 14 Dec 2021 18:19:21 +0100 Subject: [PATCH 020/158] Use closest work day --- .../smoketest/AtlantaSmokeTest.java | 4 ++-- .../opentripplanner/smoketest/SmokeTest.java | 22 +++++++++++++++---- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index 4957dd0ddbe..027ac8e5d69 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -32,7 +32,7 @@ public void regularRouteFromCentralAtlantaToPowderSprings() { "fromPlace", nearGeorgiaStateStation, "toPlace", powderSpringsInsideFlexZone1, "time", "1:00pm", - "date", SmokeTest.nextMonday().toString(), + "date", SmokeTest.closestWorkDay().toString(), "mode", "TRANSIT,WALK", "showIntermediateStops", "true", "locale", "en", @@ -53,7 +53,7 @@ public void flexRouteFromCentralAtlantaToPowderSprings() { "fromPlace", nearGeorgiaStateStation, "toPlace", powderSpringsInsideFlexZone1, "time", "1:00pm", - "date", SmokeTest.nextMonday().toString(), + "date", SmokeTest.closestWorkDay().toString(), "mode", "FLEX_EGRESS,WALK,TRANSIT", "showIntermediateStops", "true", "locale", "en", diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 06ce4cec15b..ac911d3508b 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -22,6 +22,7 @@ import java.time.temporal.TemporalAdjusters; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; import org.opentripplanner.api.json.JSONObjectMapperProvider; import org.opentripplanner.api.model.ApiItinerary; @@ -43,6 +44,7 @@ public class SmokeTest { static final Logger LOG = LoggerFactory.getLogger(SmokeTest.class); static HttpClient client = HttpClient.newHttpClient(); static final ObjectMapper mapper; + static final Set weekend = Set.of(DayOfWeek.SATURDAY, DayOfWeek.SUNDAY); /** * The Fare class is a little hard to deserialize so we have a custom deserializer as we don't @@ -70,8 +72,20 @@ public Fare deserialize( mapper.registerModule(module); } - static LocalDate nextMonday() { - return LocalDate.now().with(TemporalAdjusters.next(DayOfWeek.MONDAY)); + /** + * Return the closest non-weekend day. + *

+ * On Saturday and Sunday, this returns the following Monday. During the work week it returns + * the current day. + */ + static LocalDate closestWorkDay() { + var today = LocalDate.now(); + if (weekend.contains(today.getDayOfWeek())) { + return today.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); + } + else { + return today; + } } /** @@ -121,8 +135,8 @@ static TripPlannerResponse sendPlanRequest(Map params) { } /** - * Given a list of itineraries assert that at least one of them has legs that - * have the expected modes. + * Given a list of itineraries assert that at least one of them has legs that have the expected + * modes. */ static void assertThatItineraryHasModes( List itineraries, From d541f799d1adf982a0f3d8aa2a138cfd056cccf1 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 15 Dec 2021 09:45:29 +0100 Subject: [PATCH 021/158] Run smoke tests on Monday again --- .../smoketest/AtlantaSmokeTest.java | 4 ++-- .../opentripplanner/smoketest/SmokeTest.java | 19 +++++++------------ 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index 027ac8e5d69..4957dd0ddbe 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -32,7 +32,7 @@ public void regularRouteFromCentralAtlantaToPowderSprings() { "fromPlace", nearGeorgiaStateStation, "toPlace", powderSpringsInsideFlexZone1, "time", "1:00pm", - "date", SmokeTest.closestWorkDay().toString(), + "date", SmokeTest.nextMonday().toString(), "mode", "TRANSIT,WALK", "showIntermediateStops", "true", "locale", "en", @@ -53,7 +53,7 @@ public void flexRouteFromCentralAtlantaToPowderSprings() { "fromPlace", nearGeorgiaStateStation, "toPlace", powderSpringsInsideFlexZone1, "time", "1:00pm", - "date", SmokeTest.closestWorkDay().toString(), + "date", SmokeTest.nextMonday().toString(), "mode", "FLEX_EGRESS,WALK,TRANSIT", "showIntermediateStops", "true", "locale", "en", diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index ac911d3508b..3a45ed8b69f 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -44,7 +44,6 @@ public class SmokeTest { static final Logger LOG = LoggerFactory.getLogger(SmokeTest.class); static HttpClient client = HttpClient.newHttpClient(); static final ObjectMapper mapper; - static final Set weekend = Set.of(DayOfWeek.SATURDAY, DayOfWeek.SUNDAY); /** * The Fare class is a little hard to deserialize so we have a custom deserializer as we don't @@ -73,19 +72,15 @@ public Fare deserialize( } /** - * Return the closest non-weekend day. - *

- * On Saturday and Sunday, this returns the following Monday. During the work week it returns - * the current day. + * In order to have somewhat predictable results we get the route for the next Monday. + * + * FIXME: In the tech call on 2021-12-14 we said that we want to use the next business day, but + * as of 2021-12-15 this is not possible because the trips in the MARTA feed available to download + * start on 2021-12-18. After that date we can actually implement this logic. */ - static LocalDate closestWorkDay() { + static LocalDate nextMonday() { var today = LocalDate.now(); - if (weekend.contains(today.getDayOfWeek())) { - return today.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); - } - else { - return today; - } + return today.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); } /** From 2a419644e107484645daffa0cc7a5f1ddfdf5a01 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 16 Dec 2021 09:47:57 +0100 Subject: [PATCH 022/158] Update documentation --- smoke-tests/Readme.md | 8 +++++--- .../org/opentripplanner/smoketest/SmokeTest.java | 15 +++++++-------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/smoke-tests/Readme.md b/smoke-tests/Readme.md index cba8c244993..b93d0b848a8 100644 --- a/smoke-tests/Readme.md +++ b/smoke-tests/Readme.md @@ -1,8 +1,8 @@ ## IBI Group OTP Smoke Tests This folder contains scripts and configuration files for running an OTP instance that can then be -use to run smoke tests against. These tests are intended as a last sanity check when we merge -upstream changes as these merges tend to be very large. It helps to reduce the burden on the +used to run smoke tests against. These tests are intended as a last sanity check when we merge +upstream changes as these merges tend to be very large. It reduces the burden on the reviewer and increases the confidence that the upstream merge won't break anything. ### Commands @@ -18,7 +18,7 @@ cd smoke-tests make build-atlanta ``` -After the graph is build you can then run OTP with: +After the graph is built you can then run OTP with: ``` make run-atlanta @@ -27,6 +27,8 @@ make run-atlanta And finally run the smoke tests with ``` +# go back to the root directory +cd .. mvn test -P smoke-tests ``` diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 3a45ed8b69f..eab974f9fb8 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -22,7 +22,6 @@ import java.time.temporal.TemporalAdjusters; import java.util.List; import java.util.Map; -import java.util.Set; import java.util.stream.Collectors; import org.opentripplanner.api.json.JSONObjectMapperProvider; import org.opentripplanner.api.model.ApiItinerary; @@ -37,7 +36,7 @@ *

* By default, the smoke tests are not run when you execute `mvn test`. *

- * If you want run them use the following command: `mvn test -P smoke-tests` + * If you want run them, use `mvn test -P smoke-tests`. */ public class SmokeTest { @@ -73,10 +72,12 @@ public Fare deserialize( /** * In order to have somewhat predictable results we get the route for the next Monday. - * - * FIXME: In the tech call on 2021-12-14 we said that we want to use the next business day, but - * as of 2021-12-15 this is not possible because the trips in the MARTA feed available to download - * start on 2021-12-18. After that date we can actually implement this logic. + *

+ * When we approach the end of the validity of the GTFS feed there might be days when this logic + * results in failures as the next Monday is after the end of the service period. + *

+ * This is a problem in particular in the case of MARTA as they only publish new data about 2 + * days before the expiration date of the old one. */ static LocalDate nextMonday() { var today = LocalDate.now(); @@ -98,7 +99,6 @@ static HttpRequest buildPlanRequest(Map params) { .uri(uri) .GET() .build(); - } /** @@ -109,7 +109,6 @@ static TripPlannerResponse sendPlanRequest(Map params) { LOG.info("Sending request to {}", request.uri()); TripPlannerResponse otpResponse; try { - var response = client.send(request, BodyHandlers.ofInputStream()); assertEquals( From 4044772007981e59459b711bb093b9094a8966ab Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 16 Dec 2021 10:04:20 +0100 Subject: [PATCH 023/158] Also run smoke tests when pushing to ibi-dev-2.x --- .github/workflows/smoke-tests.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index b8a7600cf4c..f19836c2631 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -1,6 +1,9 @@ name: Smoke Tests on: + push: + branches: + - ibi-dev-2.x pull_request: branches: - ibi-dev From b812fa67e2739e0930dcb1a7e7b6a337ac5c31d9 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 7 Feb 2022 13:44:39 +0100 Subject: [PATCH 024/158] Don't run CI on Windows --- .github/workflows/cibuild.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/cibuild.yml b/.github/workflows/cibuild.yml index ee35af5e1c5..91edc6991b1 100644 --- a/.github/workflows/cibuild.yml +++ b/.github/workflows/cibuild.yml @@ -10,10 +10,7 @@ jobs: build: env: MAVEN_OPTS: -Xmx2g - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ ubuntu-latest, windows-latest ] + runs-on: ubuntu-latest steps: # Starting in v2.2 checkout action fetches all tags when fetch-depth=0, for auto-versioning. - uses: actions/checkout@v2.3.2 From 1096e09d14ae8a6e5c575aedba96248aef20c358 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 7 Feb 2022 14:04:31 +0100 Subject: [PATCH 025/158] Use empty inclusion to execute tests --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 54059a16c4b..38cc8eee349 100644 --- a/pom.xml +++ b/pom.xml @@ -767,7 +767,7 @@ true - * + org.opentripplanner.smoketest.SmokeTest From 9f9757bd442cd387d170592a19971587c4a6e77f Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 15 Feb 2022 15:57:07 +0100 Subject: [PATCH 026/158] Change Cobblinc URL --- smoke-tests/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/smoke-tests/Makefile b/smoke-tests/Makefile index e595599691d..e3128d08c1f 100644 --- a/smoke-tests/Makefile +++ b/smoke-tests/Makefile @@ -8,7 +8,8 @@ atlanta/osm.pbf: ${CURL} https://leonard.io/ibi/atlanta-2021-12-08.osm.pbf -o $@ atlanta/cobblinc.gtfs.zip: - ${CURL} https://www.arcgis.com/sharing/rest/content/items/1ce8e370a12c41b5854d8baa21f8451c/data -o $@ + # Cobblinc's own feed expired at the end of January 2022. This URL contains the feed with extended dates. + ${CURL} https://internal-test-gtfs-testing.s3.amazonaws.com/Cobblinc-static-extended-dates.zip -o $@ atlanta/cobblinc-flex.gtfs.zip: # once a continuously updated file is available we can replace the URL From c7073377dac68d5c6f911fbc238d4a63ffd9bfcf Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 15 Feb 2022 16:07:38 +0100 Subject: [PATCH 027/158] Use permanent Cobblinc URL --- smoke-tests/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/smoke-tests/Makefile b/smoke-tests/Makefile index e3128d08c1f..e9d3185c975 100644 --- a/smoke-tests/Makefile +++ b/smoke-tests/Makefile @@ -12,8 +12,7 @@ atlanta/cobblinc.gtfs.zip: ${CURL} https://internal-test-gtfs-testing.s3.amazonaws.com/Cobblinc-static-extended-dates.zip -o $@ atlanta/cobblinc-flex.gtfs.zip: - # once a continuously updated file is available we can replace the URL - ${CURL} https://leonard.io/ibi/cobblinc-flex-with-farezones.zip -o $@ + ${CURL} https://internal-test-gtfs-testing.s3.amazonaws.com/cobblinc-gtfs-flex.zip -o $@ atlanta/gtfs.zip: atlanta/cobblinc.gtfs.zip atlanta/cobblinc-flex.gtfs.zip ${CURL} https://itsmarta.com/google_transit_feed/google_transit.zip -o $@ From 554af2e83583d339d76b94d84dbfa0c8f487b09d Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 15 Feb 2022 16:33:30 +0100 Subject: [PATCH 028/158] Remove fetch depth --- .github/workflows/smoke-tests.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index f19836c2631..5576d357777 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -17,8 +17,6 @@ jobs: steps: - uses: actions/checkout@v2.3.2 - with: - fetch-depth: 0 - name: Set up JDK 11 uses: actions/setup-java@v1 From 4ae7d10e8c494638b7cbb52279554f3e2b29debc Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 15 Feb 2022 16:52:07 +0100 Subject: [PATCH 029/158] Change destination of smoke test --- .../java/org/opentripplanner/smoketest/AtlantaSmokeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index 4957dd0ddbe..ae91ed1c5fd 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -24,7 +24,7 @@ public class AtlantaSmokeTest { String nearGeorgiaStateStation = "33.74139944890028,-84.38607215881348"; - String powderSpringsInsideFlexZone1 = "33.86425088555784,-84.67141628265381"; + String powderSpringsInsideFlexZone1 = "33.86916840022388,-84.66315507888794"; @Test public void regularRouteFromCentralAtlantaToPowderSprings() { From 04cff34ef63c63c9bfc62a8fe14786d278efe7da Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 22 Mar 2022 15:25:47 +0100 Subject: [PATCH 030/158] Use correct Java version --- .github/workflows/smoke-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 5576d357777..539532ceab4 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -18,10 +18,10 @@ jobs: - uses: actions/checkout@v2.3.2 - - name: Set up JDK 11 + - name: Set up Java uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 - name: Cache local Maven repository uses: actions/cache@v2 From 1123126cd24c603965459181950a0b005ae15d76 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 22 Apr 2022 13:05:49 +0200 Subject: [PATCH 031/158] Autoformat smoke tests --- .../smoketest/AtlantaSmokeTest.java | 109 +++++---- .../opentripplanner/smoketest/SmokeTest.java | 206 +++++++++--------- 2 files changed, 164 insertions(+), 151 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index ae91ed1c5fd..3cdb05401ac 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -23,59 +23,76 @@ @Category(SmokeTest.class) public class AtlantaSmokeTest { - String nearGeorgiaStateStation = "33.74139944890028,-84.38607215881348"; - String powderSpringsInsideFlexZone1 = "33.86916840022388,-84.66315507888794"; + String nearGeorgiaStateStation = "33.74139944890028,-84.38607215881348"; + String powderSpringsInsideFlexZone1 = "33.86916840022388,-84.66315507888794"; - @Test - public void regularRouteFromCentralAtlantaToPowderSprings() { - var params = Map.of( - "fromPlace", nearGeorgiaStateStation, - "toPlace", powderSpringsInsideFlexZone1, - "time", "1:00pm", - "date", SmokeTest.nextMonday().toString(), - "mode", "TRANSIT,WALK", - "showIntermediateStops", "true", - "locale", "en", - "searchWindow", Long.toString(Duration.ofHours(2).toSeconds()) - ); - var otpResponse = SmokeTest.sendPlanRequest(params); - var itineraries = otpResponse.getPlan().itineraries; + @Test + public void regularRouteFromCentralAtlantaToPowderSprings() { + var params = Map.of( + "fromPlace", + nearGeorgiaStateStation, + "toPlace", + powderSpringsInsideFlexZone1, + "time", + "1:00pm", + "date", + SmokeTest.nextMonday().toString(), + "mode", + "TRANSIT,WALK", + "showIntermediateStops", + "true", + "locale", + "en", + "searchWindow", + Long.toString(Duration.ofHours(2).toSeconds()) + ); + var otpResponse = SmokeTest.sendPlanRequest(params); + var itineraries = otpResponse.getPlan().itineraries; - assertTrue(itineraries.size() > 1); + assertTrue(itineraries.size() > 1); - var expectedModes = List.of("WALK", "SUBWAY", "WALK", "BUS", "WALK", "BUS", "WALK"); - assertThatItineraryHasModes(itineraries, expectedModes); - } + var expectedModes = List.of("WALK", "SUBWAY", "WALK", "BUS", "WALK", "BUS", "WALK"); + assertThatItineraryHasModes(itineraries, expectedModes); + } - @Test - public void flexRouteFromCentralAtlantaToPowderSprings() { - var params = Map.of( - "fromPlace", nearGeorgiaStateStation, - "toPlace", powderSpringsInsideFlexZone1, - "time", "1:00pm", - "date", SmokeTest.nextMonday().toString(), - "mode", "FLEX_EGRESS,WALK,TRANSIT", - "showIntermediateStops", "true", - "locale", "en", - "searchWindow", Long.toString(Duration.ofHours(2).toSeconds()) - ); - var otpResponse = SmokeTest.sendPlanRequest(params); - var itineraries = otpResponse.getPlan().itineraries; + @Test + public void flexRouteFromCentralAtlantaToPowderSprings() { + var params = Map.of( + "fromPlace", + nearGeorgiaStateStation, + "toPlace", + powderSpringsInsideFlexZone1, + "time", + "1:00pm", + "date", + SmokeTest.nextMonday().toString(), + "mode", + "FLEX_EGRESS,WALK,TRANSIT", + "showIntermediateStops", + "true", + "locale", + "en", + "searchWindow", + Long.toString(Duration.ofHours(2).toSeconds()) + ); + var otpResponse = SmokeTest.sendPlanRequest(params); + var itineraries = otpResponse.getPlan().itineraries; - assertTrue(itineraries.size() > 0); + assertTrue(itineraries.size() > 0); - var expectedModes = List.of("WALK", "SUBWAY", "WALK", "BUS", "WALK", "BUS"); - assertThatItineraryHasModes(itineraries, expectedModes); + var expectedModes = List.of("WALK", "SUBWAY", "WALK", "BUS", "WALK", "BUS"); + assertThatItineraryHasModes(itineraries, expectedModes); - var transitLegs = itineraries.stream() - .flatMap(i -> i.legs.stream().filter(l -> l.transitLeg)) - .collect(Collectors.toList()); + var transitLegs = itineraries + .stream() + .flatMap(i -> i.legs.stream().filter(l -> l.transitLeg)) + .collect(Collectors.toList()); - var usesZone1Route = transitLegs.stream() - .map(l -> l.routeShortName) - .anyMatch(name -> name.equals("Zone 1")); + var usesZone1Route = transitLegs + .stream() + .map(l -> l.routeShortName) + .anyMatch(name -> name.equals("Zone 1")); - assertTrue(usesZone1Route); - - } + assertTrue(usesZone1Route); + } } diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index eab974f9fb8..93b6dfcf26c 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -40,112 +40,108 @@ */ public class SmokeTest { - static final Logger LOG = LoggerFactory.getLogger(SmokeTest.class); - static HttpClient client = HttpClient.newHttpClient(); - static final ObjectMapper mapper; - - /** - * The Fare class is a little hard to deserialize so we have a custom deserializer as we don't - * run any assertions against the fares. (That is done during unit tests.) - */ - static class FareDeserializer extends JsonDeserializer { - - @Override - public Fare deserialize( - JsonParser jsonParser, DeserializationContext deserializationContext - ) throws IOException, JsonProcessingException { - return null; - } + static final Logger LOG = LoggerFactory.getLogger(SmokeTest.class); + static HttpClient client = HttpClient.newHttpClient(); + static final ObjectMapper mapper; + + /** + * The Fare class is a little hard to deserialize so we have a custom deserializer as we don't + * run any assertions against the fares. (That is done during unit tests.) + */ + static class FareDeserializer extends JsonDeserializer { + + @Override + public Fare deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) + throws IOException, JsonProcessingException { + return null; } - - static { - var provider = new JSONObjectMapperProvider(); - - SimpleModule module = new SimpleModule("SmokeTests"); - module.addDeserializer(Fare.class, new FareDeserializer()); - - mapper = provider.getContext(null); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - mapper.registerModule(new ParameterNamesModule(JsonCreator.Mode.PROPERTIES)); - mapper.registerModule(module); - } - - /** - * In order to have somewhat predictable results we get the route for the next Monday. - *

- * When we approach the end of the validity of the GTFS feed there might be days when this logic - * results in failures as the next Monday is after the end of the service period. - *

- * This is a problem in particular in the case of MARTA as they only publish new data about 2 - * days before the expiration date of the old one. - */ - static LocalDate nextMonday() { - var today = LocalDate.now(); - return today.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); + } + + static { + var provider = new JSONObjectMapperProvider(); + + SimpleModule module = new SimpleModule("SmokeTests"); + module.addDeserializer(Fare.class, new FareDeserializer()); + + mapper = provider.getContext(null); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + mapper.registerModule(new ParameterNamesModule(JsonCreator.Mode.PROPERTIES)); + mapper.registerModule(module); + } + + /** + * In order to have somewhat predictable results we get the route for the next Monday. + *

+ * When we approach the end of the validity of the GTFS feed there might be days when this logic + * results in failures as the next Monday is after the end of the service period. + *

+ * This is a problem in particular in the case of MARTA as they only publish new data about 2 + * days before the expiration date of the old one. + */ + static LocalDate nextMonday() { + var today = LocalDate.now(); + return today.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); + } + + /** + * Builds an HTTP request for sending to an OTP instance. + */ + static HttpRequest buildPlanRequest(Map params) { + var urlParams = params + .entrySet() + .stream() + .map(kv -> kv.getKey() + "=" + kv.getValue()) + .collect(Collectors.joining("&")); + + var uri = URI.create("http://localhost:8080/otp/routers/default/plan?" + urlParams); + + return HttpRequest.newBuilder().uri(uri).GET().build(); + } + + /** + * Sends an HTTP request to the OTP plan endpoint and deserializes the response. + */ + static TripPlannerResponse sendPlanRequest(Map params) { + var request = SmokeTest.buildPlanRequest(params); + LOG.info("Sending request to {}", request.uri()); + TripPlannerResponse otpResponse; + try { + var response = client.send(request, BodyHandlers.ofInputStream()); + + assertEquals(200, response.statusCode(), "Status code returned by OTP server was not 200"); + otpResponse = SmokeTest.mapper.readValue(response.body(), TripPlannerResponse.class); + } catch (IOException | InterruptedException e) { + throw new RuntimeException(e); } - /** - * Builds an HTTP request for sending to an OTP instance. - */ - static HttpRequest buildPlanRequest(Map params) { - var urlParams = params.entrySet() - .stream() - .map(kv -> kv.getKey() + "=" + kv.getValue()) - .collect(Collectors.joining("&")); - - var uri = URI.create("http://localhost:8080/otp/routers/default/plan?" + urlParams); - - return HttpRequest.newBuilder() - .uri(uri) - .GET() - .build(); - } - - /** - * Sends an HTTP request to the OTP plan endpoint and deserializes the response. - */ - static TripPlannerResponse sendPlanRequest(Map params) { - var request = SmokeTest.buildPlanRequest(params); - LOG.info("Sending request to {}", request.uri()); - TripPlannerResponse otpResponse; - try { - var response = client.send(request, BodyHandlers.ofInputStream()); - - assertEquals( - 200, response.statusCode(), "Status code returned by OTP server was not 200"); - otpResponse = SmokeTest.mapper.readValue(response.body(), TripPlannerResponse.class); - } - catch (IOException | InterruptedException e) { - throw new RuntimeException(e); - } - - LOG.info( - "Request to {} returned {} itineraries", - request.uri(), - otpResponse.getPlan().itineraries.size() - ); - - return otpResponse; - } - - /** - * Given a list of itineraries assert that at least one of them has legs that have the expected - * modes. - */ - static void assertThatItineraryHasModes( - List itineraries, - List expectedModes - ) { - var itineraryModes = itineraries.stream() - .map(i -> i.legs.stream().map(l -> l.mode).collect(Collectors.toList())) - .collect(Collectors.toList()); - assertTrue( - itineraryModes.contains(expectedModes), - String.format( - "Could not find a mode combination '%s' in itineraries %s", - expectedModes, - itineraryModes - ) - ); - } + LOG.info( + "Request to {} returned {} itineraries", + request.uri(), + otpResponse.getPlan().itineraries.size() + ); + + return otpResponse; + } + + /** + * Given a list of itineraries assert that at least one of them has legs that have the expected + * modes. + */ + static void assertThatItineraryHasModes( + List itineraries, + List expectedModes + ) { + var itineraryModes = itineraries + .stream() + .map(i -> i.legs.stream().map(l -> l.mode).collect(Collectors.toList())) + .collect(Collectors.toList()); + assertTrue( + itineraryModes.contains(expectedModes), + String.format( + "Could not find a mode combination '%s' in itineraries %s", + expectedModes, + itineraryModes + ) + ); + } } From 0d913d6d8b909dbaeb2dea2eb3f6bc6532194f98 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 22 Apr 2022 13:15:33 +0200 Subject: [PATCH 032/158] Run unit tests on CI --- .github/workflows/cibuild.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cibuild.yml b/.github/workflows/cibuild.yml index aeece75ee0d..e0f73e77b09 100644 --- a/.github/workflows/cibuild.yml +++ b/.github/workflows/cibuild.yml @@ -30,7 +30,7 @@ jobs: ${{ runner.os }}-maven- - name: Prepare coverage agent, build and test - run: mvn --batch-mode --update-snapshots jacoco:prepare-agent verify jacoco:report -P prettierCheck + run: mvn --batch-mode --update-snapshots jacoco:prepare-agent verify jacoco:report -P prettierCheck,unit-tests - name: Send coverage data to codecov.io if: github.repository_owner == 'opentripplanner' && matrix.os == 'ubuntu-latest' From 5ecac71e9eef518932ccf3ed18f33e3bc54b171d Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 27 Apr 2022 09:28:21 +0200 Subject: [PATCH 033/158] Skip prettier step in smoke tests --- .github/workflows/smoke-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 539532ceab4..c7697172271 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -38,7 +38,7 @@ jobs: key: osm - name: Build jar file - run: mvn clean package -Dmaven.test.skip + run: mvn clean package -Dmaven.test.skip -P prettierSkip - name: Build Atlanta graph and start OTP in background run: | @@ -49,4 +49,4 @@ jobs: sleep 10 - name: Run smoke tests - run: mvn test -P smoke-tests + run: mvn test -P smoke-tests -P prettierSkip From 13e808ac5da08ec7c2f3538adb922fc3c18b5267 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 23 Jun 2022 15:50:45 +0200 Subject: [PATCH 034/158] Use Junit5 tags instead of Junit4 categories --- pom.xml | 4 ++-- .../org/opentripplanner/smoketest/AtlantaSmokeTest.java | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index eda3ef66837..199885b4a60 100644 --- a/pom.xml +++ b/pom.xml @@ -855,14 +855,14 @@ - org.opentripplanner.smoketest.SmokeTest + smoke-test smoke-tests - org.opentripplanner.smoketest.SmokeTest + smoke-test * diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index 3cdb05401ac..063dfea7f6c 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -7,8 +7,8 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; /** * This smoke test expects an OTP installation running at localhost:8080 @@ -20,7 +20,7 @@ * The assertions are intentionally vague as more precise ones would probably cause false positives * when there are slight changes in the schedule. */ -@Category(SmokeTest.class) +@Tag("smoke-test") public class AtlantaSmokeTest { String nearGeorgiaStateStation = "33.74139944890028,-84.38607215881348"; From 097683a0015173b3bebd1e91506bec14caef2ce0 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 23 Jun 2022 15:52:55 +0200 Subject: [PATCH 035/158] Use batch mode to quieten logs --- .github/workflows/smoke-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index c7697172271..f70be239159 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -38,7 +38,7 @@ jobs: key: osm - name: Build jar file - run: mvn clean package -Dmaven.test.skip -P prettierSkip + run: mvn --batch-mode clean package -Dmaven.test.skip -P prettierSkip - name: Build Atlanta graph and start OTP in background run: | From c3dd8ad214c1b4ab4eef7d5d7a708735e466bcb4 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 26 Aug 2022 15:11:38 +0200 Subject: [PATCH 036/158] Make smoke test code more reusable --- .../smoketest/AtlantaSmokeTest.java | 45 +++++-------------- .../opentripplanner/smoketest/SmokeTest.java | 9 ++-- .../smoketest/SmokeTestRequest.java | 33 ++++++++++++++ 3 files changed, 49 insertions(+), 38 deletions(-) create mode 100644 src/test/java/org/opentripplanner/smoketest/SmokeTestRequest.java diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index 063dfea7f6c..9f2d662e5ba 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -6,9 +6,11 @@ import java.time.Duration; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.opentripplanner.transit.model.basic.WgsCoordinate; /** * This smoke test expects an OTP installation running at localhost:8080 @@ -23,28 +25,18 @@ @Tag("smoke-test") public class AtlantaSmokeTest { - String nearGeorgiaStateStation = "33.74139944890028,-84.38607215881348"; - String powderSpringsInsideFlexZone1 = "33.86916840022388,-84.66315507888794"; + WgsCoordinate nearGeorgiaStateStation = new WgsCoordinate(33.74139944890028, -84.38607215881348); + WgsCoordinate powderSpringsInsideFlexZone1 = new WgsCoordinate( + 33.86916840022388, + -84.66315507888794 + ); @Test public void regularRouteFromCentralAtlantaToPowderSprings() { - var params = Map.of( - "fromPlace", + var params = new SmokeTestRequest( nearGeorgiaStateStation, - "toPlace", powderSpringsInsideFlexZone1, - "time", - "1:00pm", - "date", - SmokeTest.nextMonday().toString(), - "mode", - "TRANSIT,WALK", - "showIntermediateStops", - "true", - "locale", - "en", - "searchWindow", - Long.toString(Duration.ofHours(2).toSeconds()) + Set.of("TRANSIT", "WALK") ); var otpResponse = SmokeTest.sendPlanRequest(params); var itineraries = otpResponse.getPlan().itineraries; @@ -57,23 +49,10 @@ public void regularRouteFromCentralAtlantaToPowderSprings() { @Test public void flexRouteFromCentralAtlantaToPowderSprings() { - var params = Map.of( - "fromPlace", + var params = new SmokeTestRequest( nearGeorgiaStateStation, - "toPlace", powderSpringsInsideFlexZone1, - "time", - "1:00pm", - "date", - SmokeTest.nextMonday().toString(), - "mode", - "FLEX_EGRESS,WALK,TRANSIT", - "showIntermediateStops", - "true", - "locale", - "en", - "searchWindow", - Long.toString(Duration.ofHours(2).toSeconds()) + Set.of("FLEX_EGRESS", "WALK", "TRANSIT") ); var otpResponse = SmokeTest.sendPlanRequest(params); var itineraries = otpResponse.getPlan().itineraries; @@ -86,7 +65,7 @@ public void flexRouteFromCentralAtlantaToPowderSprings() { var transitLegs = itineraries .stream() .flatMap(i -> i.legs.stream().filter(l -> l.transitLeg)) - .collect(Collectors.toList()); + .toList(); var usesZone1Route = transitLegs .stream() diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 93b6dfcf26c..667521806d7 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -51,8 +51,7 @@ public class SmokeTest { static class FareDeserializer extends JsonDeserializer { @Override - public Fare deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) - throws IOException, JsonProcessingException { + public Fare deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) { return null; } } @@ -101,8 +100,8 @@ static HttpRequest buildPlanRequest(Map params) { /** * Sends an HTTP request to the OTP plan endpoint and deserializes the response. */ - static TripPlannerResponse sendPlanRequest(Map params) { - var request = SmokeTest.buildPlanRequest(params); + static TripPlannerResponse sendPlanRequest(SmokeTestRequest req) { + var request = SmokeTest.buildPlanRequest(req.toMap()); LOG.info("Sending request to {}", request.uri()); TripPlannerResponse otpResponse; try { @@ -134,7 +133,7 @@ static void assertThatItineraryHasModes( var itineraryModes = itineraries .stream() .map(i -> i.legs.stream().map(l -> l.mode).collect(Collectors.toList())) - .collect(Collectors.toList()); + .toList(); assertTrue( itineraryModes.contains(expectedModes), String.format( diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTestRequest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTestRequest.java new file mode 100644 index 00000000000..40768a7cce0 --- /dev/null +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTestRequest.java @@ -0,0 +1,33 @@ +package org.opentripplanner.smoketest; + +import java.time.Duration; +import java.util.Collection; +import java.util.Map; +import org.opentripplanner.transit.model.basic.WgsCoordinate; + +public record SmokeTestRequest(WgsCoordinate from, WgsCoordinate to, Collection modes) { + public Map toMap() { + return Map.of( + "fromPlace", + toString(from), + "toPlace", + toString(to), + "time", + "1:00pm", + "date", + SmokeTest.nextMonday().toString(), + "mode", + String.join(",", modes), + "showIntermediateStops", + "true", + "locale", + "en", + "searchWindow", + Long.toString(Duration.ofHours(2).toSeconds()) + ); + } + + private static String toString(WgsCoordinate c) { + return "%s,%s".formatted(c.latitude(), c.longitude()); + } +} From 8292c3ff9b09dab316e7f04c12f2b3eb7539fd01 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 26 Aug 2022 16:04:57 +0200 Subject: [PATCH 037/158] Move smoke test logic into shell script --- .github/workflows/smoke-tests.yml | 21 ++++++--------------- scripts/smoke-tests.sh | 14 ++++++++++++++ smoke-tests/Makefile | 8 ++++++++ 3 files changed, 28 insertions(+), 15 deletions(-) create mode 100755 scripts/smoke-tests.sh diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index f70be239159..7c08ddcb04e 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -28,25 +28,16 @@ jobs: with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- - name: Cache OSM files uses: actions/cache@v2 with: - path: smoke-tests/atlanta/*.pbf + path: smoke-tests/**/*.pbf key: osm - name: Build jar file - run: mvn --batch-mode clean package -Dmaven.test.skip -P prettierSkip - - - name: Build Atlanta graph and start OTP in background - run: | - cd smoke-tests - make build-atlanta - make run-atlanta & - # OTP needs a little while to start up so we sleep - sleep 10 - - - name: Run smoke tests - run: mvn test -P smoke-tests -P prettierSkip + run: "mvn --batch-mode clean package test-compile -Dmaven.test.skip -P prettierSkip" + + - name: atlanta - Build graph, run OTP, run smoke tests + run: "scripts/smoke-tests.sh" + diff --git a/scripts/smoke-tests.sh b/scripts/smoke-tests.sh new file mode 100755 index 00000000000..8597c28d8da --- /dev/null +++ b/scripts/smoke-tests.sh @@ -0,0 +1,14 @@ +#! /bin/bash -e + +cd smoke-tests +make build-atlanta +make run-atlanta & + +# OTP needs a little while to start up so we sleep +sleep 15 + +cd .. + +# run the actual smoke tests +# we run surefire:test in order to not recompile the tests for each city +mvn surefire:test -D groups=smoke-test -P prettierSkip \ No newline at end of file diff --git a/smoke-tests/Makefile b/smoke-tests/Makefile index e9d3185c975..486ca943f8a 100644 --- a/smoke-tests/Makefile +++ b/smoke-tests/Makefile @@ -17,6 +17,14 @@ atlanta/cobblinc-flex.gtfs.zip: atlanta/gtfs.zip: atlanta/cobblinc.gtfs.zip atlanta/cobblinc-flex.gtfs.zip ${CURL} https://itsmarta.com/google_transit_feed/google_transit.zip -o $@ +houston/osm.pbf: + # this file can be re-hosted on IBI provided infrastructure + ${CURL} https://leonard.io/ibi/houston-2022-08-26.osm.pbf -o $@ + +houston/gtfs.zip: + # Cobblinc's own feed expired at the end of January 2022. This URL contains the feed with extended dates. + ${CURL} https://ridemetro-api.ibi-transit.com/download/liveGTFS.zip -o $@ + build-%: otp.jar %/osm.pbf %/gtfs.zip java -jar otp.jar --build --save $* From a0de9dfd2b35564f269c3635c9d3de4626ed7c2d Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 26 Aug 2022 16:42:24 +0200 Subject: [PATCH 038/158] Add smoke test for Houston --- .github/workflows/smoke-tests.yml | 8 +++-- scripts/smoke-tests.sh | 8 +++-- .../smoketest/AtlantaSmokeTest.java | 1 + .../smoketest/HoustonSmokeTest.java | 30 +++++++++++++++++++ 4 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 7c08ddcb04e..54a543022dd 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -36,8 +36,10 @@ jobs: key: osm - name: Build jar file - run: "mvn --batch-mode clean package test-compile -Dmaven.test.skip -P prettierSkip" + run: mvn --batch-mode clean package test-compile -Dmaven.test.skip -P prettierSkip - - name: atlanta - Build graph, run OTP, run smoke tests - run: "scripts/smoke-tests.sh" + - name: "[Atlanta] Build graph, run OTP, run smoke tests" + run: "scripts/smoke-tests.sh atlanta" + - name: "[Houston] Build graph, run OTP, run smoke tests" + run: "scripts/smoke-tests.sh houston" diff --git a/scripts/smoke-tests.sh b/scripts/smoke-tests.sh index 8597c28d8da..94086bb1945 100755 --- a/scripts/smoke-tests.sh +++ b/scripts/smoke-tests.sh @@ -1,8 +1,10 @@ #! /bin/bash -e +LOCATION=$1 + cd smoke-tests -make build-atlanta -make run-atlanta & +make build-"${LOCATION}" +make run-"${LOCATION}"& # OTP needs a little while to start up so we sleep sleep 15 @@ -11,4 +13,4 @@ cd .. # run the actual smoke tests # we run surefire:test in order to not recompile the tests for each city -mvn surefire:test -D groups=smoke-test -P prettierSkip \ No newline at end of file +mvn surefire:test -D groups="${LOCATION}" -P prettierSkip \ No newline at end of file diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index 9f2d662e5ba..798f9cbffa5 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -23,6 +23,7 @@ * when there are slight changes in the schedule. */ @Tag("smoke-test") +@Tag("atlanta") public class AtlantaSmokeTest { WgsCoordinate nearGeorgiaStateStation = new WgsCoordinate(33.74139944890028, -84.38607215881348); diff --git a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java new file mode 100644 index 00000000000..02df881ca6f --- /dev/null +++ b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java @@ -0,0 +1,30 @@ +package org.opentripplanner.smoketest; + +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.opentripplanner.smoketest.SmokeTest.assertThatItineraryHasModes; + +import java.util.List; +import java.util.Set; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; +import org.opentripplanner.transit.model.basic.WgsCoordinate; + +@Tag("smoke-test") +@Tag("houston") +public class HoustonSmokeTest { + + WgsCoordinate galvestonRoad = new WgsCoordinate(29.6598, -95.2342); + WgsCoordinate northLindale = new WgsCoordinate(29.8158, -95.3697); + + @Test + public void routeFromSouthToNorth() { + var params = new SmokeTestRequest(galvestonRoad, northLindale, Set.of("TRANSIT", "WALK")); + var otpResponse = SmokeTest.sendPlanRequest(params); + var itineraries = otpResponse.getPlan().itineraries; + + assertTrue(itineraries.size() > 1); + + var expectedModes = List.of("WALK", "SUBWAY", "WALK", "BUS", "WALK", "BUS", "WALK"); + assertThatItineraryHasModes(itineraries, expectedModes); + } +} From 8287f1378287ac60191428d96236eb4f4de91fe2 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 26 Aug 2022 17:18:10 +0200 Subject: [PATCH 039/158] Add smoke test for Houston --- .github/workflows/smoke-tests.yml | 8 +++++--- pom.xml | 28 +++++----------------------- scripts/smoke-tests.sh | 2 +- smoke-tests/Makefile | 1 - 4 files changed, 11 insertions(+), 28 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 54a543022dd..1ab71e09226 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -35,9 +35,11 @@ jobs: path: smoke-tests/**/*.pbf key: osm - - name: Build jar file - run: mvn --batch-mode clean package test-compile -Dmaven.test.skip -P prettierSkip - + - name: Build jar file, compile tests + run: | + mvn --batch-mode clean package -Dmaven.test.skip -P prettierSkip + mvn org.apache.maven.plugins:maven-compiler-plugin:testCompile + - name: "[Atlanta] Build graph, run OTP, run smoke tests" run: "scripts/smoke-tests.sh atlanta" diff --git a/pom.xml b/pom.xml index 2b0c29dc297..bef0b154ef4 100644 --- a/pom.xml +++ b/pom.xml @@ -43,6 +43,9 @@ 0.17 write + + + smoke-test @@ -246,8 +249,8 @@ true false - ${test.excluded.groups} - ${test.included.groups} + ${junit.tags.excluded} + ${junit.tags.included} @@ -860,27 +863,6 @@ - - - unit-tests - - true - - - - smoke-test - - - - - smoke-tests - - smoke-test - * - - prettierCheck diff --git a/scripts/smoke-tests.sh b/scripts/smoke-tests.sh index 94086bb1945..606a0c29b0e 100755 --- a/scripts/smoke-tests.sh +++ b/scripts/smoke-tests.sh @@ -13,4 +13,4 @@ cd .. # run the actual smoke tests # we run surefire:test in order to not recompile the tests for each city -mvn surefire:test -D groups="${LOCATION}" -P prettierSkip \ No newline at end of file +mvn surefire:test -Djunit.tags.included="${LOCATION}" -Djunit.tags.excluded="" -P prettierSkip \ No newline at end of file diff --git a/smoke-tests/Makefile b/smoke-tests/Makefile index 486ca943f8a..63943fbd0d3 100644 --- a/smoke-tests/Makefile +++ b/smoke-tests/Makefile @@ -22,7 +22,6 @@ houston/osm.pbf: ${CURL} https://leonard.io/ibi/houston-2022-08-26.osm.pbf -o $@ houston/gtfs.zip: - # Cobblinc's own feed expired at the end of January 2022. This URL contains the feed with extended dates. ${CURL} https://ridemetro-api.ibi-transit.com/download/liveGTFS.zip -o $@ build-%: otp.jar %/osm.pbf %/gtfs.zip From fda0b40eeea747f9ab181e09aad27eb35687c71e Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 26 Aug 2022 17:32:47 +0200 Subject: [PATCH 040/158] Shutdown OTP instance running in background --- scripts/smoke-tests.sh | 11 +++++++++-- .../java/org/opentripplanner/smoketest/SmokeTest.java | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/scripts/smoke-tests.sh b/scripts/smoke-tests.sh index 606a0c29b0e..22dd7ed3aba 100755 --- a/scripts/smoke-tests.sh +++ b/scripts/smoke-tests.sh @@ -4,7 +4,11 @@ LOCATION=$1 cd smoke-tests make build-"${LOCATION}" -make run-"${LOCATION}"& + +eval "(make run-${LOCATION} &)" +pid=$! + +echo "Pid is $pid" # OTP needs a little while to start up so we sleep sleep 15 @@ -13,4 +17,7 @@ cd .. # run the actual smoke tests # we run surefire:test in order to not recompile the tests for each city -mvn surefire:test -Djunit.tags.included="${LOCATION}" -Djunit.tags.excluded="" -P prettierSkip \ No newline at end of file +mvn surefire:test -Djunit.tags.included="${LOCATION}" -Djunit.tags.excluded="" -P prettierSkip + +# shutting down the OTP instance running in the background (via make) +killall make diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 667521806d7..1b9a07ccda8 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -132,7 +132,7 @@ static void assertThatItineraryHasModes( ) { var itineraryModes = itineraries .stream() - .map(i -> i.legs.stream().map(l -> l.mode).collect(Collectors.toList())) + .map(i -> i.legs.stream().map(l -> l.mode).toList()) .toList(); assertTrue( itineraryModes.contains(expectedModes), From 22375e93b4b0e47ad67ea86213f613acf3c4684d Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 26 Aug 2022 17:42:44 +0200 Subject: [PATCH 041/158] Improve test assertion for Houston --- .github/workflows/smoke-tests.yml | 2 ++ scripts/smoke-tests.sh | 5 +---- .../org/opentripplanner/smoketest/HoustonSmokeTest.java | 6 +++--- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 1ab71e09226..6f741b8dc0a 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -28,6 +28,8 @@ jobs: with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- - name: Cache OSM files uses: actions/cache@v2 diff --git a/scripts/smoke-tests.sh b/scripts/smoke-tests.sh index 22dd7ed3aba..06eb7abe089 100755 --- a/scripts/smoke-tests.sh +++ b/scripts/smoke-tests.sh @@ -5,10 +5,7 @@ LOCATION=$1 cd smoke-tests make build-"${LOCATION}" -eval "(make run-${LOCATION} &)" -pid=$! - -echo "Pid is $pid" +make run-"${LOCATION}" & # OTP needs a little while to start up so we sleep sleep 15 diff --git a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java index 02df881ca6f..f0a9d6054a4 100644 --- a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java @@ -18,13 +18,13 @@ public class HoustonSmokeTest { @Test public void routeFromSouthToNorth() { - var params = new SmokeTestRequest(galvestonRoad, northLindale, Set.of("TRANSIT", "WALK")); - var otpResponse = SmokeTest.sendPlanRequest(params); + var request = new SmokeTestRequest(galvestonRoad, northLindale, Set.of("TRANSIT", "WALK")); + var otpResponse = SmokeTest.sendPlanRequest(request); var itineraries = otpResponse.getPlan().itineraries; assertTrue(itineraries.size() > 1); - var expectedModes = List.of("WALK", "SUBWAY", "WALK", "BUS", "WALK", "BUS", "WALK"); + var expectedModes = List.of("WALK", "BUS", "BUS", "WALK", "BUS", "WALK"); assertThatItineraryHasModes(itineraries, expectedModes); } } From f0138e4bafcb09e95c584e8e766dddb898b77aea Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 29 Aug 2022 11:12:51 +0200 Subject: [PATCH 042/158] Add smoke test for Denver --- .github/workflows/smoke-tests.yml | 7 ++-- smoke-tests/Makefile | 7 ++++ smoke-tests/Readme.md | 2 +- smoke-tests/houston/build-config.json | 6 ++++ .../smoketest/DenverSmokeTest.java | 35 +++++++++++++++++++ .../smoketest/HoustonSmokeTest.java | 6 ++++ .../opentripplanner/smoketest/SmokeTest.java | 3 +- 7 files changed, 61 insertions(+), 5 deletions(-) create mode 100644 smoke-tests/houston/build-config.json create mode 100644 src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 6f741b8dc0a..f7e6b6df2da 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -43,7 +43,10 @@ jobs: mvn org.apache.maven.plugins:maven-compiler-plugin:testCompile - name: "[Atlanta] Build graph, run OTP, run smoke tests" - run: "scripts/smoke-tests.sh atlanta" + run: scripts/smoke-tests.sh atlanta - name: "[Houston] Build graph, run OTP, run smoke tests" - run: "scripts/smoke-tests.sh houston" + run: scripts/smoke-tests.sh houston + + - name: "[Denver] Build graph, run OTP, run smoke tests" + run: scripts/smoke-tests.sh denver diff --git a/smoke-tests/Makefile b/smoke-tests/Makefile index 63943fbd0d3..76cf88923c1 100644 --- a/smoke-tests/Makefile +++ b/smoke-tests/Makefile @@ -24,6 +24,13 @@ houston/osm.pbf: houston/gtfs.zip: ${CURL} https://ridemetro-api.ibi-transit.com/download/liveGTFS.zip -o $@ +denver/osm.pbf: + # this file can be re-hosted on IBI provided infrastructure + ${CURL} https://leonard.io/ibi/denver-2022-08-26.osm.pbf -o $@ + +denver/gtfs.zip: + ${CURL} https://www.rtd-denver.com/files/gtfs/google_transit.zip -o $@ + build-%: otp.jar %/osm.pbf %/gtfs.zip java -jar otp.jar --build --save $* diff --git a/smoke-tests/Readme.md b/smoke-tests/Readme.md index b93d0b848a8..ad91f10f302 100644 --- a/smoke-tests/Readme.md +++ b/smoke-tests/Readme.md @@ -29,7 +29,7 @@ And finally run the smoke tests with ``` # go back to the root directory cd .. -mvn test -P smoke-tests +mvn test -Djunit.tags.included="atlanta" -Djunit.tags.excluded="" ``` ### CI diff --git a/smoke-tests/houston/build-config.json b/smoke-tests/houston/build-config.json new file mode 100644 index 00000000000..ccc1fc5b54b --- /dev/null +++ b/smoke-tests/houston/build-config.json @@ -0,0 +1,6 @@ +{ + "fares": { + "type": "highestFareInFreeTransferWindow", + "analyzeInterlinedTransfers": "true" + } +} diff --git a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java new file mode 100644 index 00000000000..9aab5484a4a --- /dev/null +++ b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java @@ -0,0 +1,35 @@ +package org.opentripplanner.smoketest; + +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.opentripplanner.smoketest.SmokeTest.assertThatItineraryHasModes; + +import java.util.List; +import java.util.Set; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; +import org.opentripplanner.transit.model.basic.WgsCoordinate; + +/** + * This smoke test expects an OTP installation running at localhost:8080 + *

+ * It uses the REST API to check that a route from South to North Denver can be found. + */ +@Tag("smoke-test") +@Tag("denver") +public class DenverSmokeTest { + + WgsCoordinate southBroadway = new WgsCoordinate(39.7020, -104.9866); + WgsCoordinate twinLakes = new WgsCoordinate(39.8232, -105.0055); + + @Test + public void routeFromSouthToNorth() { + var request = new SmokeTestRequest(southBroadway, twinLakes, Set.of("TRANSIT", "WALK")); + var otpResponse = SmokeTest.sendPlanRequest(request); + var itineraries = otpResponse.getPlan().itineraries; + + assertTrue(itineraries.size() > 1); + + var expectedModes = List.of("WALK", "BUS", "BUS", "WALK", "BUS", "WALK"); + assertThatItineraryHasModes(itineraries, expectedModes); + } +} diff --git a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java index f0a9d6054a4..31e18a18304 100644 --- a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java @@ -9,6 +9,12 @@ import org.junit.jupiter.api.Test; import org.opentripplanner.transit.model.basic.WgsCoordinate; +/** + * This smoke test expects an OTP installation running at localhost:8080 + *

+ * It uses the REST API to check that a route from South to North Houston + * can be found. + */ @Tag("smoke-test") @Tag("houston") public class HoustonSmokeTest { diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 1b9a07ccda8..25823de53df 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -5,7 +5,6 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JsonDeserializer; @@ -36,7 +35,7 @@ *

* By default, the smoke tests are not run when you execute `mvn test`. *

- * If you want run them, use `mvn test -P smoke-tests`. + * If you want run them, use `mvn test -Djunit.tags.included="atlanta" -Djunit.tags.excluded=""`. */ public class SmokeTest { From 0669f2c4ece87cdba3df545b0a11f3ee7e08bf34 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 29 Aug 2022 11:25:41 +0200 Subject: [PATCH 043/158] Improve caching --- .github/workflows/smoke-tests.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index f7e6b6df2da..3e5c2864efa 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -35,7 +35,9 @@ jobs: uses: actions/cache@v2 with: path: smoke-tests/**/*.pbf - key: osm + key: osm-2022-08 + restore-keys: | + osm - name: Build jar file, compile tests run: | From 83821523f125b1c69a4be00a02a90055b733f2c5 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 29 Aug 2022 11:26:49 +0200 Subject: [PATCH 044/158] Fix Denver assertion --- .../java/org/opentripplanner/smoketest/DenverSmokeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java index 9aab5484a4a..a0da13e9172 100644 --- a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java @@ -29,7 +29,7 @@ public void routeFromSouthToNorth() { assertTrue(itineraries.size() > 1); - var expectedModes = List.of("WALK", "BUS", "BUS", "WALK", "BUS", "WALK"); + var expectedModes = List.of("WALK", "TRAM", "WALK", "BUS", "WALK"); assertThatItineraryHasModes(itineraries, expectedModes); } } From 3d62f2dabacaafb955d872be8d883462b254cf92 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 29 Aug 2022 14:14:20 +0200 Subject: [PATCH 045/158] Use IBI's pbf server for map extracts --- .github/workflows/smoke-tests.yml | 4 +--- smoke-tests/Makefile | 3 +-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 3e5c2864efa..fa2ec915ccf 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -35,9 +35,7 @@ jobs: uses: actions/cache@v2 with: path: smoke-tests/**/*.pbf - key: osm-2022-08 - restore-keys: | - osm + key: osm-2022-08-29 - name: Build jar file, compile tests run: | diff --git a/smoke-tests/Makefile b/smoke-tests/Makefile index 76cf88923c1..a6e2802f7f4 100644 --- a/smoke-tests/Makefile +++ b/smoke-tests/Makefile @@ -18,8 +18,7 @@ atlanta/gtfs.zip: atlanta/cobblinc.gtfs.zip atlanta/cobblinc-flex.gtfs.zip ${CURL} https://itsmarta.com/google_transit_feed/google_transit.zip -o $@ houston/osm.pbf: - # this file can be re-hosted on IBI provided infrastructure - ${CURL} https://leonard.io/ibi/houston-2022-08-26.osm.pbf -o $@ + ${CURL} http://osm.ibi-transit.com/vex/29.65285233056443,-95.48492431640624,29.857914952075095,-95.22193908691406.pbf -o $@ houston/gtfs.zip: ${CURL} https://ridemetro-api.ibi-transit.com/download/liveGTFS.zip -o $@ From e20003830acaff760d251e46ccbe99e68626677d Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 29 Aug 2022 14:21:56 +0200 Subject: [PATCH 046/158] Add more IBI PBF downloads --- .github/workflows/smoke-tests.yml | 10 +++++----- smoke-tests/Makefile | 6 ++---- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index fa2ec915ccf..d27ba4426c6 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -31,11 +31,11 @@ jobs: restore-keys: | ${{ runner.os }}-maven- - - name: Cache OSM files - uses: actions/cache@v2 - with: - path: smoke-tests/**/*.pbf - key: osm-2022-08-29 + #- name: Cache OSM files + # uses: actions/cache@v2 + # with: + # path: smoke-tests/**/*.pbf + # key: osm-2022-08-29 - name: Build jar file, compile tests run: | diff --git a/smoke-tests/Makefile b/smoke-tests/Makefile index a6e2802f7f4..9f6d61b00e4 100644 --- a/smoke-tests/Makefile +++ b/smoke-tests/Makefile @@ -4,8 +4,7 @@ otp.jar: cp ../target/otp-*-SNAPSHOT-shaded.jar otp.jar atlanta/osm.pbf: - # this file can be re-hosted on IBI provided infrastructure - ${CURL} https://leonard.io/ibi/atlanta-2021-12-08.osm.pbf -o $@ + ${CURL} http://osm.ibi-transit.com/vex/33.654066160697056,-84.759521484375,33.994611584814606,-84.30976867675781.pbf -o $@ atlanta/cobblinc.gtfs.zip: # Cobblinc's own feed expired at the end of January 2022. This URL contains the feed with extended dates. @@ -24,8 +23,7 @@ houston/gtfs.zip: ${CURL} https://ridemetro-api.ibi-transit.com/download/liveGTFS.zip -o $@ denver/osm.pbf: - # this file can be re-hosted on IBI provided infrastructure - ${CURL} https://leonard.io/ibi/denver-2022-08-26.osm.pbf -o $@ + ${CURL} http://osm.ibi-transit.com/vex/39.65857056750545,-105.0567626953125,39.8578370694061,-104.86862182617188.pbf -o $@ denver/gtfs.zip: ${CURL} https://www.rtd-denver.com/files/gtfs/google_transit.zip -o $@ From 9191fed7b204c8596029322e3a539a69573a4a37 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 29 Aug 2022 14:36:52 +0200 Subject: [PATCH 047/158] Re-enable caching --- .github/workflows/smoke-tests.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index d27ba4426c6..f659c2427fa 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -31,11 +31,11 @@ jobs: restore-keys: | ${{ runner.os }}-maven- - #- name: Cache OSM files - # uses: actions/cache@v2 - # with: - # path: smoke-tests/**/*.pbf - # key: osm-2022-08-29 + - name: Cache OSM files + uses: actions/cache@v2 + with: + path: smoke-tests/**/*.pbf + key: osm-2022-08-29-1 - name: Build jar file, compile tests run: | From e839d84225c39df3e68e64829b293304dc72de5d Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 29 Aug 2022 14:38:29 +0200 Subject: [PATCH 048/158] Add restore keys --- .github/workflows/smoke-tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index f659c2427fa..e584b02a226 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -36,6 +36,8 @@ jobs: with: path: smoke-tests/**/*.pbf key: osm-2022-08-29-1 + restore-keys: | + osm- - name: Build jar file, compile tests run: | From df105f602e23ae13e57fa860dc3b8e2295b9ad0d Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 31 Aug 2022 09:55:35 +0200 Subject: [PATCH 049/158] Extract reusable method for basic smoke tests --- .../smoketest/AtlantaSmokeTest.java | 12 +++--------- .../smoketest/DenverSmokeTest.java | 14 ++++++-------- .../smoketest/HoustonSmokeTest.java | 17 +++++++---------- .../opentripplanner/smoketest/SmokeTest.java | 17 +++++++++++++++++ 4 files changed, 33 insertions(+), 27 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index 798f9cbffa5..106f727a6da 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -34,18 +34,12 @@ public class AtlantaSmokeTest { @Test public void regularRouteFromCentralAtlantaToPowderSprings() { - var params = new SmokeTestRequest( + SmokeTest.basicTest( nearGeorgiaStateStation, powderSpringsInsideFlexZone1, - Set.of("TRANSIT", "WALK") + Set.of("TRANSIT", "WALK"), + List.of("WALK", "SUBWAY", "WALK", "BUS", "WALK", "BUS", "WALK") ); - var otpResponse = SmokeTest.sendPlanRequest(params); - var itineraries = otpResponse.getPlan().itineraries; - - assertTrue(itineraries.size() > 1); - - var expectedModes = List.of("WALK", "SUBWAY", "WALK", "BUS", "WALK", "BUS", "WALK"); - assertThatItineraryHasModes(itineraries, expectedModes); } @Test diff --git a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java index a0da13e9172..6c0e040c371 100644 --- a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java @@ -23,13 +23,11 @@ public class DenverSmokeTest { @Test public void routeFromSouthToNorth() { - var request = new SmokeTestRequest(southBroadway, twinLakes, Set.of("TRANSIT", "WALK")); - var otpResponse = SmokeTest.sendPlanRequest(request); - var itineraries = otpResponse.getPlan().itineraries; - - assertTrue(itineraries.size() > 1); - - var expectedModes = List.of("WALK", "TRAM", "WALK", "BUS", "WALK"); - assertThatItineraryHasModes(itineraries, expectedModes); + SmokeTest.basicTest( + southBroadway, + twinLakes, + Set.of("TRANSIT", "WALK"), + List.of("WALK", "TRAM", "WALK", "BUS", "WALK") + ); } } diff --git a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java index 31e18a18304..9052788aa57 100644 --- a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java @@ -12,8 +12,7 @@ /** * This smoke test expects an OTP installation running at localhost:8080 *

- * It uses the REST API to check that a route from South to North Houston - * can be found. + * It uses the REST API to check that a route from South to North Houston can be found. */ @Tag("smoke-test") @Tag("houston") @@ -24,13 +23,11 @@ public class HoustonSmokeTest { @Test public void routeFromSouthToNorth() { - var request = new SmokeTestRequest(galvestonRoad, northLindale, Set.of("TRANSIT", "WALK")); - var otpResponse = SmokeTest.sendPlanRequest(request); - var itineraries = otpResponse.getPlan().itineraries; - - assertTrue(itineraries.size() > 1); - - var expectedModes = List.of("WALK", "BUS", "BUS", "WALK", "BUS", "WALK"); - assertThatItineraryHasModes(itineraries, expectedModes); + SmokeTest.basicTest( + galvestonRoad, + northLindale, + Set.of("TRANSIT", "WALK"), + List.of("WALK", "BUS", "BUS", "WALK", "BUS", "WALK") + ); } } diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 25823de53df..8cb63c3cf66 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -21,11 +21,13 @@ import java.time.temporal.TemporalAdjusters; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; import org.opentripplanner.api.json.JSONObjectMapperProvider; import org.opentripplanner.api.model.ApiItinerary; import org.opentripplanner.api.resource.TripPlannerResponse; import org.opentripplanner.routing.core.Fare; +import org.opentripplanner.transit.model.basic.WgsCoordinate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -142,4 +144,19 @@ static void assertThatItineraryHasModes( ) ); } + + static void basicTest( + WgsCoordinate start, + WgsCoordinate end, + Set modes, + List expectedModes + ) { + var request = new SmokeTestRequest(start, end, modes); + var otpResponse = SmokeTest.sendPlanRequest(request); + var itineraries = otpResponse.getPlan().itineraries; + + assertTrue(itineraries.size() > 1); + + assertThatItineraryHasModes(itineraries, expectedModes); + } } From 8564bd58b144bb20de3141ac931f47d3d47b5e87 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 23 Sep 2022 13:52:16 +0200 Subject: [PATCH 050/158] Adjust smoke test to new package structure --- .../java/org/opentripplanner/smoketest/SmokeTest.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 8cb63c3cf66..2331c8b8bc0 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -26,7 +26,7 @@ import org.opentripplanner.api.json.JSONObjectMapperProvider; import org.opentripplanner.api.model.ApiItinerary; import org.opentripplanner.api.resource.TripPlannerResponse; -import org.opentripplanner.routing.core.Fare; +import org.opentripplanner.routing.core.ItineraryFares; import org.opentripplanner.transit.model.basic.WgsCoordinate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -49,10 +49,13 @@ public class SmokeTest { * The Fare class is a little hard to deserialize so we have a custom deserializer as we don't * run any assertions against the fares. (That is done during unit tests.) */ - static class FareDeserializer extends JsonDeserializer { + static class FareDeserializer extends JsonDeserializer { @Override - public Fare deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) { + public ItineraryFares deserialize( + JsonParser jsonParser, + DeserializationContext deserializationContext + ) { return null; } } @@ -61,7 +64,7 @@ public Fare deserialize(JsonParser jsonParser, DeserializationContext deserializ var provider = new JSONObjectMapperProvider(); SimpleModule module = new SimpleModule("SmokeTests"); - module.addDeserializer(Fare.class, new FareDeserializer()); + module.addDeserializer(ItineraryFares.class, new FareDeserializer()); mapper = provider.getContext(null); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); From 47a3e6f6eb74c6585089360dcce91f12133877dc Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 23 Sep 2022 15:54:53 +0200 Subject: [PATCH 051/158] Add vehicle positions updater to denver smoke test config --- smoke-tests/denver/router-config.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 smoke-tests/denver/router-config.json diff --git a/smoke-tests/denver/router-config.json b/smoke-tests/denver/router-config.json new file mode 100644 index 00000000000..8f44b8c8222 --- /dev/null +++ b/smoke-tests/denver/router-config.json @@ -0,0 +1,11 @@ +{ + "updaters": [ + { + "type": "vehicle-positions", + "sourceType": "gtfs-http", + "url": "https://www.rtd-denver.com/files/gtfs-rt/VehiclePosition.pb", + "feedId": "1", + "frequencySec": 60 + } + ] +} \ No newline at end of file From 521c4986c7a3ba77816af21cb9d3ad8d26976ab1 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 4 Oct 2022 10:53:23 +0200 Subject: [PATCH 052/158] Add SEPTA smoke test --- .github/workflows/smoke-tests.yml | 3 ++ smoke-tests/Makefile | 10 +++++++ .../smoketest/AtlantaSmokeTest.java | 3 -- .../smoketest/DenverSmokeTest.java | 3 -- .../smoketest/HoustonSmokeTest.java | 3 -- .../smoketest/SeptaSmokeTest.java | 30 +++++++++++++++++++ 6 files changed, 43 insertions(+), 9 deletions(-) create mode 100644 src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index e584b02a226..2c2e755d71a 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -44,6 +44,9 @@ jobs: mvn --batch-mode clean package -Dmaven.test.skip -P prettierSkip mvn org.apache.maven.plugins:maven-compiler-plugin:testCompile + - name: "[SEPTA] Build graph, run OTP, run smoke tests" + run: scripts/smoke-tests.sh septa + - name: "[Atlanta] Build graph, run OTP, run smoke tests" run: scripts/smoke-tests.sh atlanta diff --git a/smoke-tests/Makefile b/smoke-tests/Makefile index 9f6d61b00e4..085bacca47f 100644 --- a/smoke-tests/Makefile +++ b/smoke-tests/Makefile @@ -28,6 +28,16 @@ denver/osm.pbf: denver/gtfs.zip: ${CURL} https://www.rtd-denver.com/files/gtfs/google_transit.zip -o $@ +# Philadelphia conurbation +septa/osm.pbf: + ${CURL} http://osm.ibi-transit.com/vex/39.631076770083666,-75.59967041015625,40.33921721760713,-74.64523315429688.pbf -o $@ + +septa/bus.gtfs.zip: + ${CURL} https://www3.septa.org/developer/google_bus.zip -o $@ + +septa/gtfs.zip: septa/bus.gtfs.zip + ${CURL} https://www3.septa.org/developer/google_rail.zip -o $@ + build-%: otp.jar %/osm.pbf %/gtfs.zip java -jar otp.jar --build --save $* diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index 106f727a6da..003cc377c39 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -3,11 +3,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static org.opentripplanner.smoketest.SmokeTest.assertThatItineraryHasModes; -import java.time.Duration; import java.util.List; -import java.util.Map; import java.util.Set; -import java.util.stream.Collectors; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.opentripplanner.transit.model.basic.WgsCoordinate; diff --git a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java index 6c0e040c371..2a104209420 100644 --- a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java @@ -1,8 +1,5 @@ package org.opentripplanner.smoketest; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.opentripplanner.smoketest.SmokeTest.assertThatItineraryHasModes; - import java.util.List; import java.util.Set; import org.junit.jupiter.api.Tag; diff --git a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java index 9052788aa57..d367e863d3b 100644 --- a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java @@ -1,8 +1,5 @@ package org.opentripplanner.smoketest; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.opentripplanner.smoketest.SmokeTest.assertThatItineraryHasModes; - import java.util.List; import java.util.Set; import org.junit.jupiter.api.Tag; diff --git a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java new file mode 100644 index 00000000000..c0a4111f6be --- /dev/null +++ b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java @@ -0,0 +1,30 @@ +package org.opentripplanner.smoketest; + +import java.util.List; +import java.util.Set; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; +import org.opentripplanner.transit.model.basic.WgsCoordinate; + +/** + * This smoke test expects an OTP installation running at localhost:8080 + *

+ * It uses the REST API to check that a route from South to North Houston can be found. + */ +@Tag("septa") +@Tag("houston") +public class SeptaSmokeTest { + + WgsCoordinate woodbury = new WgsCoordinate(39.8974, -75.1417); + WgsCoordinate logan = new WgsCoordinate(40.0294, -75.1449); + + @Test + public void routeFromSouthToNorth() { + SmokeTest.basicTest( + woodbury, + logan, + Set.of("TRANSIT", "WALK"), + List.of("WALK", "BUS", "BUS", "WALK", "BUS", "WALK") + ); + } +} From 51eac2bb89471cd83f43ba767cf0663612b6ab1e Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 4 Oct 2022 10:57:32 +0200 Subject: [PATCH 053/158] Clean up --- .github/workflows/smoke-tests.yml | 8 ++++---- smoke-tests/Makefile | 6 +++--- .../opentripplanner/smoketest/SeptaSmokeTest.java | 12 ++++++------ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 2c2e755d71a..e59df88ae87 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -35,9 +35,9 @@ jobs: uses: actions/cache@v2 with: path: smoke-tests/**/*.pbf - key: osm-2022-08-29-1 - restore-keys: | - osm- + key: osm-2022-10-04 + #restore-keys: | + # osm- - name: Build jar file, compile tests run: | @@ -46,7 +46,7 @@ jobs: - name: "[SEPTA] Build graph, run OTP, run smoke tests" run: scripts/smoke-tests.sh septa - + - name: "[Atlanta] Build graph, run OTP, run smoke tests" run: scripts/smoke-tests.sh atlanta diff --git a/smoke-tests/Makefile b/smoke-tests/Makefile index 085bacca47f..2af73d8a804 100644 --- a/smoke-tests/Makefile +++ b/smoke-tests/Makefile @@ -30,7 +30,7 @@ denver/gtfs.zip: # Philadelphia conurbation septa/osm.pbf: - ${CURL} http://osm.ibi-transit.com/vex/39.631076770083666,-75.59967041015625,40.33921721760713,-74.64523315429688.pbf -o $@ + ${CURL} http://osm.ibi-transit.com/vex/39.85441086976069,-75.29136657714844,40.0433862595006,-75.06202697753906.pbf -o $@ septa/bus.gtfs.zip: ${CURL} https://www3.septa.org/developer/google_bus.zip -o $@ @@ -39,9 +39,9 @@ septa/gtfs.zip: septa/bus.gtfs.zip ${CURL} https://www3.septa.org/developer/google_rail.zip -o $@ build-%: otp.jar %/osm.pbf %/gtfs.zip - java -jar otp.jar --build --save $* + java -Xmx6G -jar otp.jar --build --save $* run-%: otp.jar - java -jar otp.jar --load --serve $* + java -Xmx6G -jar otp.jar --load --serve $* diff --git a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java index c0a4111f6be..e76a407d531 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java @@ -11,18 +11,18 @@ *

* It uses the REST API to check that a route from South to North Houston can be found. */ +@Tag("smoke-test") @Tag("septa") -@Tag("houston") public class SeptaSmokeTest { - WgsCoordinate woodbury = new WgsCoordinate(39.8974, -75.1417); - WgsCoordinate logan = new WgsCoordinate(40.0294, -75.1449); + WgsCoordinate airport = new WgsCoordinate(39.876151, -75.245189); + WgsCoordinate stPetersCemetary = new WgsCoordinate(39.98974, -75.09515); @Test - public void routeFromSouthToNorth() { + public void routeFromAirportToNorth() { SmokeTest.basicTest( - woodbury, - logan, + airport, + stPetersCemetary, Set.of("TRANSIT", "WALK"), List.of("WALK", "BUS", "BUS", "WALK", "BUS", "WALK") ); From 264de72206a9a37462ad31a5ff75fbf81753e202 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 4 Oct 2022 11:22:33 +0200 Subject: [PATCH 054/158] Update assertion --- .../java/org/opentripplanner/smoketest/SeptaSmokeTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java index e76a407d531..341696c3dc1 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java @@ -19,12 +19,12 @@ public class SeptaSmokeTest { WgsCoordinate stPetersCemetary = new WgsCoordinate(39.98974, -75.09515); @Test - public void routeFromAirportToNorth() { + public void routeFromAirportToNorthPhiladelphia() { SmokeTest.basicTest( airport, stPetersCemetary, Set.of("TRANSIT", "WALK"), - List.of("WALK", "BUS", "BUS", "WALK", "BUS", "WALK") + List.of("WALK", "RAIL", "RAIL", "WALK", "SUBWAY", "WALK", "BUS", "WALK") ); } } From 2410a094bb956f9a06da02b261a9bdc33879bda3 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 4 Oct 2022 11:33:07 +0200 Subject: [PATCH 055/158] Execute SEPTA last --- .github/workflows/smoke-tests.yml | 10 +++++----- smoke-tests/Makefile | 1 - 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index e59df88ae87..ca21711cbf7 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -36,17 +36,14 @@ jobs: with: path: smoke-tests/**/*.pbf key: osm-2022-10-04 - #restore-keys: | - # osm- + restore-keys: | + osm- - name: Build jar file, compile tests run: | mvn --batch-mode clean package -Dmaven.test.skip -P prettierSkip mvn org.apache.maven.plugins:maven-compiler-plugin:testCompile - - name: "[SEPTA] Build graph, run OTP, run smoke tests" - run: scripts/smoke-tests.sh septa - - name: "[Atlanta] Build graph, run OTP, run smoke tests" run: scripts/smoke-tests.sh atlanta @@ -55,3 +52,6 @@ jobs: - name: "[Denver] Build graph, run OTP, run smoke tests" run: scripts/smoke-tests.sh denver + + - name: "[SEPTA] Build graph, run OTP, run smoke tests" + run: scripts/smoke-tests.sh septa diff --git a/smoke-tests/Makefile b/smoke-tests/Makefile index 2af73d8a804..1fd85154ed4 100644 --- a/smoke-tests/Makefile +++ b/smoke-tests/Makefile @@ -28,7 +28,6 @@ denver/osm.pbf: denver/gtfs.zip: ${CURL} https://www.rtd-denver.com/files/gtfs/google_transit.zip -o $@ -# Philadelphia conurbation septa/osm.pbf: ${CURL} http://osm.ibi-transit.com/vex/39.85441086976069,-75.29136657714844,40.0433862595006,-75.06202697753906.pbf -o $@ From 0a93ddb3988cc2bba5cccf07172028b55049e835 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 4 Oct 2022 13:24:15 +0200 Subject: [PATCH 056/158] Add GraphQL call --- smoke-tests/denver/otp-config.json | 5 ++++ .../smoketest/DenverSmokeTest.java | 29 +++++++++++++++++++ .../opentripplanner/smoketest/SmokeTest.java | 22 ++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 smoke-tests/denver/otp-config.json diff --git a/smoke-tests/denver/otp-config.json b/smoke-tests/denver/otp-config.json new file mode 100644 index 00000000000..084070b312c --- /dev/null +++ b/smoke-tests/denver/otp-config.json @@ -0,0 +1,5 @@ +{ + "otpFeatures" : { + "SandboxAPILegacyGraphQLApi": true + } +} \ No newline at end of file diff --git a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java index 2a104209420..9de72d4c995 100644 --- a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java @@ -27,4 +27,33 @@ public void routeFromSouthToNorth() { List.of("WALK", "TRAM", "WALK", "BUS", "WALK") ); } + + @Test + public void vehiclePositions() { + var json = SmokeTest.sendGraphQLRequest( + """ + query { + patterns { + vehiclePositions { + vehicleId + lastUpdated + trip { + id + gtfsId + } + stopRelationship { + status + stop { + name + } + } + } + } + } + + """ + ); + + System.out.println(json); + } } diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 2331c8b8bc0..92896c7274a 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.module.paramnames.ParameterNamesModule; @@ -16,6 +17,7 @@ import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse.BodyHandlers; +import java.nio.charset.StandardCharsets; import java.time.DayOfWeek; import java.time.LocalDate; import java.time.temporal.TemporalAdjusters; @@ -162,4 +164,24 @@ static void basicTest( assertThatItineraryHasModes(itineraries, expectedModes); } + + static JsonNode sendGraphQLRequest(String query) { + var uri = URI.create("http://localhost:8080/otp/routers/default/index/graphql"); + var request = HttpRequest + .newBuilder() + .POST(HttpRequest.BodyPublishers.ofByteArray(query.getBytes(StandardCharsets.UTF_8))) + .uri(uri) + .setHeader("Content-Type", "application/graphql") + .build(); + + System.out.println(request.headers()); + try { + var response = client.send(request, BodyHandlers.ofInputStream()); + + assertEquals(200, response.statusCode(), "Status code returned by OTP server was not 200"); + return SmokeTest.mapper.readTree(response.body()); + } catch (IOException | InterruptedException e) { + throw new RuntimeException(e); + } + } } From d97310b9730fea12bcd1c8042c3c5a4da4dad40c Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 4 Oct 2022 13:48:09 +0200 Subject: [PATCH 057/158] Add smoke test for Denver realtime positions --- .../smoketest/DenverSmokeTest.java | 63 ++++++++++++------- .../smoketest/SeptaSmokeTest.java | 2 +- .../opentripplanner/smoketest/SmokeTest.java | 35 ++++++----- 3 files changed, 63 insertions(+), 37 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java index 9de72d4c995..8d581fe4c47 100644 --- a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java @@ -1,5 +1,8 @@ package org.opentripplanner.smoketest; +import static org.junit.jupiter.api.Assertions.assertFalse; + +import com.fasterxml.jackson.core.JsonProcessingException; import java.util.List; import java.util.Set; import org.junit.jupiter.api.Tag; @@ -29,31 +32,47 @@ public void routeFromSouthToNorth() { } @Test - public void vehiclePositions() { + public void vehiclePositions() throws JsonProcessingException { var json = SmokeTest.sendGraphQLRequest( """ - query { - patterns { - vehiclePositions { - vehicleId - lastUpdated - trip { - id - gtfsId - } - stopRelationship { - status - stop { - name - } - } - } - } - } - - """ + query { + patterns { + vehiclePositions { + vehicleId + lastUpdated + trip { + id + gtfsId + } + stopRelationship { + status + stop { + name + } + } + } + } + } + + """ ); - System.out.println(json); + var positions = SmokeTest.mapper.treeToValue(json, VehiclePositionResponse.class); + + var vehiclePositions = positions.patterns + .stream() + .flatMap(p -> p.vehiclePositions.stream()) + .toList(); + + assertFalse( + vehiclePositions.isEmpty(), + "Found no patterns that have realtime vehicle positions." + ); } + + private record Position(String vehicleId) {} + + private record Pattern(List vehiclePositions) {} + + private record VehiclePositionResponse(List patterns) {} } diff --git a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java index 341696c3dc1..7d7946e26bb 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java @@ -9,7 +9,7 @@ /** * This smoke test expects an OTP installation running at localhost:8080 *

- * It uses the REST API to check that a route from South to North Houston can be found. + * It uses the REST API to check that a route from Philadelphia's airport to its North can be found. */ @Tag("smoke-test") @Tag("septa") diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 92896c7274a..d18c8bde6fa 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JsonDeserializer; @@ -16,8 +17,8 @@ import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; +import java.net.http.HttpResponse; import java.net.http.HttpResponse.BodyHandlers; -import java.nio.charset.StandardCharsets; import java.time.DayOfWeek; import java.time.LocalDate; import java.time.temporal.TemporalAdjusters; @@ -166,20 +167,26 @@ static void basicTest( } static JsonNode sendGraphQLRequest(String query) { - var uri = URI.create("http://localhost:8080/otp/routers/default/index/graphql"); - var request = HttpRequest - .newBuilder() - .POST(HttpRequest.BodyPublishers.ofByteArray(query.getBytes(StandardCharsets.UTF_8))) - .uri(uri) - .setHeader("Content-Type", "application/graphql") - .build(); - - System.out.println(request.headers()); - try { - var response = client.send(request, BodyHandlers.ofInputStream()); + var body = mapper.createObjectNode(); + body.put("query", query); - assertEquals(200, response.statusCode(), "Status code returned by OTP server was not 200"); - return SmokeTest.mapper.readTree(response.body()); + try { + var bodyString = mapper.writeValueAsString(body); + + HttpRequest request = HttpRequest + .newBuilder() + .uri(URI.create("http://localhost:8080/otp/routers/default/index/graphql")) + .header("Content-Type", "application/json") + .POST(HttpRequest.BodyPublishers.ofString(bodyString)) + .build(); + HttpResponse response = HttpClient + .newHttpClient() + .send(request, HttpResponse.BodyHandlers.ofString()); + + var responseJson = mapper.readTree(response.body()); + + LOG.info("Response JSON: {}", responseJson); + return responseJson.get("data"); } catch (IOException | InterruptedException e) { throw new RuntimeException(e); } From ef971e517f6c944086a019f5f42cfbd14f6f0b65 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 4 Oct 2022 17:19:17 +0200 Subject: [PATCH 058/158] Extract separate GraphQL and Rest clients --- .../smoketest/AtlantaSmokeTest.java | 6 +- .../smoketest/DenverSmokeTest.java | 5 +- .../smoketest/HoustonSmokeTest.java | 2 +- .../smoketest/SeptaSmokeTest.java | 2 +- .../opentripplanner/smoketest/SmokeTest.java | 92 ++----------------- .../smoketest/util/GraphQLClient.java | 47 ++++++++++ .../smoketest/util/RestClient.java | 62 +++++++++++++ .../{ => util}/SmokeTestRequest.java | 3 +- 8 files changed, 126 insertions(+), 93 deletions(-) create mode 100644 src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java create mode 100644 src/test/java/org/opentripplanner/smoketest/util/RestClient.java rename src/test/java/org/opentripplanner/smoketest/{ => util}/SmokeTestRequest.java (89%) diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index 003cc377c39..5c902d2d1f3 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -7,6 +7,8 @@ import java.util.Set; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.opentripplanner.smoketest.util.RestClient; +import org.opentripplanner.smoketest.util.SmokeTestRequest; import org.opentripplanner.transit.model.basic.WgsCoordinate; /** @@ -31,7 +33,7 @@ public class AtlantaSmokeTest { @Test public void regularRouteFromCentralAtlantaToPowderSprings() { - SmokeTest.basicTest( + SmokeTest.basicRouteTest( nearGeorgiaStateStation, powderSpringsInsideFlexZone1, Set.of("TRANSIT", "WALK"), @@ -46,7 +48,7 @@ public void flexRouteFromCentralAtlantaToPowderSprings() { powderSpringsInsideFlexZone1, Set.of("FLEX_EGRESS", "WALK", "TRANSIT") ); - var otpResponse = SmokeTest.sendPlanRequest(params); + var otpResponse = RestClient.sendPlanRequest(params); var itineraries = otpResponse.getPlan().itineraries; assertTrue(itineraries.size() > 0); diff --git a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java index 8d581fe4c47..aa981b36f92 100644 --- a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java @@ -7,6 +7,7 @@ import java.util.Set; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.opentripplanner.smoketest.util.GraphQLClient; import org.opentripplanner.transit.model.basic.WgsCoordinate; /** @@ -23,7 +24,7 @@ public class DenverSmokeTest { @Test public void routeFromSouthToNorth() { - SmokeTest.basicTest( + SmokeTest.basicRouteTest( southBroadway, twinLakes, Set.of("TRANSIT", "WALK"), @@ -33,7 +34,7 @@ public void routeFromSouthToNorth() { @Test public void vehiclePositions() throws JsonProcessingException { - var json = SmokeTest.sendGraphQLRequest( + var json = GraphQLClient.sendGraphQLRequest( """ query { patterns { diff --git a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java index d367e863d3b..74b9b2ab54a 100644 --- a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java @@ -20,7 +20,7 @@ public class HoustonSmokeTest { @Test public void routeFromSouthToNorth() { - SmokeTest.basicTest( + SmokeTest.basicRouteTest( galvestonRoad, northLindale, Set.of("TRANSIT", "WALK"), diff --git a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java index 7d7946e26bb..ee7962f53a5 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java @@ -20,7 +20,7 @@ public class SeptaSmokeTest { @Test public void routeFromAirportToNorthPhiladelphia() { - SmokeTest.basicTest( + SmokeTest.basicRouteTest( airport, stPetersCemetary, Set.of("TRANSIT", "WALK"), diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index d18c8bde6fa..699a1456a9c 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -1,38 +1,26 @@ package org.opentripplanner.smoketest; -import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.module.paramnames.ParameterNamesModule; -import java.io.IOException; -import java.net.URI; -import java.net.http.HttpClient; -import java.net.http.HttpRequest; -import java.net.http.HttpResponse; -import java.net.http.HttpResponse.BodyHandlers; import java.time.DayOfWeek; import java.time.LocalDate; import java.time.temporal.TemporalAdjusters; import java.util.List; -import java.util.Map; import java.util.Set; -import java.util.stream.Collectors; import org.opentripplanner.api.json.JSONObjectMapperProvider; import org.opentripplanner.api.model.ApiItinerary; -import org.opentripplanner.api.resource.TripPlannerResponse; import org.opentripplanner.routing.core.ItineraryFares; +import org.opentripplanner.smoketest.util.RestClient; +import org.opentripplanner.smoketest.util.SmokeTestRequest; import org.opentripplanner.transit.model.basic.WgsCoordinate; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * This is both a utility class and a category to select or deselect smoke tests during test @@ -44,9 +32,7 @@ */ public class SmokeTest { - static final Logger LOG = LoggerFactory.getLogger(SmokeTest.class); - static HttpClient client = HttpClient.newHttpClient(); - static final ObjectMapper mapper; + public static final ObjectMapper mapper; /** * The Fare class is a little hard to deserialize so we have a custom deserializer as we don't @@ -84,51 +70,11 @@ public ItineraryFares deserialize( * This is a problem in particular in the case of MARTA as they only publish new data about 2 * days before the expiration date of the old one. */ - static LocalDate nextMonday() { + public static LocalDate nextMonday() { var today = LocalDate.now(); return today.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); } - /** - * Builds an HTTP request for sending to an OTP instance. - */ - static HttpRequest buildPlanRequest(Map params) { - var urlParams = params - .entrySet() - .stream() - .map(kv -> kv.getKey() + "=" + kv.getValue()) - .collect(Collectors.joining("&")); - - var uri = URI.create("http://localhost:8080/otp/routers/default/plan?" + urlParams); - - return HttpRequest.newBuilder().uri(uri).GET().build(); - } - - /** - * Sends an HTTP request to the OTP plan endpoint and deserializes the response. - */ - static TripPlannerResponse sendPlanRequest(SmokeTestRequest req) { - var request = SmokeTest.buildPlanRequest(req.toMap()); - LOG.info("Sending request to {}", request.uri()); - TripPlannerResponse otpResponse; - try { - var response = client.send(request, BodyHandlers.ofInputStream()); - - assertEquals(200, response.statusCode(), "Status code returned by OTP server was not 200"); - otpResponse = SmokeTest.mapper.readValue(response.body(), TripPlannerResponse.class); - } catch (IOException | InterruptedException e) { - throw new RuntimeException(e); - } - - LOG.info( - "Request to {} returned {} itineraries", - request.uri(), - otpResponse.getPlan().itineraries.size() - ); - - return otpResponse; - } - /** * Given a list of itineraries assert that at least one of them has legs that have the expected * modes. @@ -151,44 +97,18 @@ static void assertThatItineraryHasModes( ); } - static void basicTest( + static void basicRouteTest( WgsCoordinate start, WgsCoordinate end, Set modes, List expectedModes ) { var request = new SmokeTestRequest(start, end, modes); - var otpResponse = SmokeTest.sendPlanRequest(request); + var otpResponse = RestClient.sendPlanRequest(request); var itineraries = otpResponse.getPlan().itineraries; assertTrue(itineraries.size() > 1); assertThatItineraryHasModes(itineraries, expectedModes); } - - static JsonNode sendGraphQLRequest(String query) { - var body = mapper.createObjectNode(); - body.put("query", query); - - try { - var bodyString = mapper.writeValueAsString(body); - - HttpRequest request = HttpRequest - .newBuilder() - .uri(URI.create("http://localhost:8080/otp/routers/default/index/graphql")) - .header("Content-Type", "application/json") - .POST(HttpRequest.BodyPublishers.ofString(bodyString)) - .build(); - HttpResponse response = HttpClient - .newHttpClient() - .send(request, HttpResponse.BodyHandlers.ofString()); - - var responseJson = mapper.readTree(response.body()); - - LOG.info("Response JSON: {}", responseJson); - return responseJson.get("data"); - } catch (IOException | InterruptedException e) { - throw new RuntimeException(e); - } - } } diff --git a/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java b/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java new file mode 100644 index 00000000000..bf34acab123 --- /dev/null +++ b/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java @@ -0,0 +1,47 @@ +package org.opentripplanner.smoketest.util; + +import static org.opentripplanner.smoketest.SmokeTest.mapper; + +import com.fasterxml.jackson.databind.JsonNode; +import java.io.IOException; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import org.opentripplanner.smoketest.SmokeTest; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class GraphQLClient { + + static final Logger LOG = LoggerFactory.getLogger(SmokeTest.class); + + static final HttpClient httpClient = HttpClient.newHttpClient(); + + public static JsonNode sendGraphQLRequest(String query) { + var body = mapper.createObjectNode(); + body.put("query", query); + + try { + var bodyString = mapper.writeValueAsString(body); + + HttpRequest request = HttpRequest + .newBuilder() + .uri(URI.create("http://localhost:8080/otp/routers/default/index/graphql")) + .header("Content-Type", "application/json") + .POST(HttpRequest.BodyPublishers.ofString(bodyString)) + .build(); + HttpResponse response = httpClient.send( + request, + HttpResponse.BodyHandlers.ofString() + ); + + var responseJson = mapper.readTree(response.body()); + + LOG.info("Response JSON: {}", responseJson); + return responseJson.get("data"); + } catch (IOException | InterruptedException e) { + throw new RuntimeException(e); + } + } +} diff --git a/src/test/java/org/opentripplanner/smoketest/util/RestClient.java b/src/test/java/org/opentripplanner/smoketest/util/RestClient.java new file mode 100644 index 00000000000..f0066b6a596 --- /dev/null +++ b/src/test/java/org/opentripplanner/smoketest/util/RestClient.java @@ -0,0 +1,62 @@ +package org.opentripplanner.smoketest.util; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.io.IOException; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.Map; +import java.util.stream.Collectors; +import org.opentripplanner.api.resource.TripPlannerResponse; +import org.opentripplanner.smoketest.SmokeTest; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class RestClient { + + static final Logger LOG = LoggerFactory.getLogger(SmokeTest.class); + + static HttpClient client = HttpClient.newHttpClient(); + + /** + * Builds an HTTP request for sending to an OTP instance. + */ + static HttpRequest buildPlanRequest(Map params) { + var urlParams = params + .entrySet() + .stream() + .map(kv -> kv.getKey() + "=" + kv.getValue()) + .collect(Collectors.joining("&")); + + var uri = URI.create("http://localhost:8080/otp/routers/default/plan?" + urlParams); + + return HttpRequest.newBuilder().uri(uri).GET().build(); + } + + /** + * Sends an HTTP request to the OTP plan endpoint and deserializes the response. + */ + public static TripPlannerResponse sendPlanRequest(SmokeTestRequest req) { + var request = buildPlanRequest(req.toMap()); + LOG.info("Sending request to {}", request.uri()); + TripPlannerResponse otpResponse; + try { + var response = client.send(request, HttpResponse.BodyHandlers.ofInputStream()); + + assertEquals(200, response.statusCode(), "Status code returned by OTP server was not 200"); + otpResponse = SmokeTest.mapper.readValue(response.body(), TripPlannerResponse.class); + } catch (IOException | InterruptedException e) { + throw new RuntimeException(e); + } + + LOG.info( + "Request to {} returned {} itineraries", + request.uri(), + otpResponse.getPlan().itineraries.size() + ); + + return otpResponse; + } +} diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTestRequest.java b/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java similarity index 89% rename from src/test/java/org/opentripplanner/smoketest/SmokeTestRequest.java rename to src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java index 40768a7cce0..588b7d9a78f 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTestRequest.java +++ b/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java @@ -1,8 +1,9 @@ -package org.opentripplanner.smoketest; +package org.opentripplanner.smoketest.util; import java.time.Duration; import java.util.Collection; import java.util.Map; +import org.opentripplanner.smoketest.SmokeTest; import org.opentripplanner.transit.model.basic.WgsCoordinate; public record SmokeTestRequest(WgsCoordinate from, WgsCoordinate to, Collection modes) { From 95f86994552eaaff5b3813d8f2ae8a5bf883084c Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 4 Oct 2022 17:29:50 +0200 Subject: [PATCH 059/158] Move vehicle positions assertion into SmokeTest --- .../smoketest/DenverSmokeTest.java | 43 +-------------- .../opentripplanner/smoketest/SmokeTest.java | 52 +++++++++++++------ .../smoketest/util/GraphQLClient.java | 40 ++++++++++++++ 3 files changed, 77 insertions(+), 58 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java index aa981b36f92..b5cc628898c 100644 --- a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java @@ -8,6 +8,7 @@ import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.opentripplanner.smoketest.util.GraphQLClient; +import org.opentripplanner.smoketest.util.SmokeTestRequest; import org.opentripplanner.transit.model.basic.WgsCoordinate; /** @@ -34,46 +35,6 @@ public void routeFromSouthToNorth() { @Test public void vehiclePositions() throws JsonProcessingException { - var json = GraphQLClient.sendGraphQLRequest( - """ - query { - patterns { - vehiclePositions { - vehicleId - lastUpdated - trip { - id - gtfsId - } - stopRelationship { - status - stop { - name - } - } - } - } - } - - """ - ); - - var positions = SmokeTest.mapper.treeToValue(json, VehiclePositionResponse.class); - - var vehiclePositions = positions.patterns - .stream() - .flatMap(p -> p.vehiclePositions.stream()) - .toList(); - - assertFalse( - vehiclePositions.isEmpty(), - "Found no patterns that have realtime vehicle positions." - ); + SmokeTest.assertThereArePatternsWithVehiclePositions(); } - - private record Position(String vehicleId) {} - - private record Pattern(List vehiclePositions) {} - - private record VehiclePositionResponse(List patterns) {} } diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 699a1456a9c..891175da4d8 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -1,9 +1,11 @@ package org.opentripplanner.smoketest; +import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JsonDeserializer; @@ -18,6 +20,7 @@ import org.opentripplanner.api.json.JSONObjectMapperProvider; import org.opentripplanner.api.model.ApiItinerary; import org.opentripplanner.routing.core.ItineraryFares; +import org.opentripplanner.smoketest.util.GraphQLClient; import org.opentripplanner.smoketest.util.RestClient; import org.opentripplanner.smoketest.util.SmokeTestRequest; import org.opentripplanner.transit.model.basic.WgsCoordinate; @@ -34,21 +37,6 @@ public class SmokeTest { public static final ObjectMapper mapper; - /** - * The Fare class is a little hard to deserialize so we have a custom deserializer as we don't - * run any assertions against the fares. (That is done during unit tests.) - */ - static class FareDeserializer extends JsonDeserializer { - - @Override - public ItineraryFares deserialize( - JsonParser jsonParser, - DeserializationContext deserializationContext - ) { - return null; - } - } - static { var provider = new JSONObjectMapperProvider(); @@ -67,8 +55,8 @@ public ItineraryFares deserialize( * When we approach the end of the validity of the GTFS feed there might be days when this logic * results in failures as the next Monday is after the end of the service period. *

- * This is a problem in particular in the case of MARTA as they only publish new data about 2 - * days before the expiration date of the old one. + * This is a problem in particular in the case of MARTA as they only publish new data about 2 days + * before the expiration date of the old one. */ public static LocalDate nextMonday() { var today = LocalDate.now(); @@ -111,4 +99,34 @@ static void basicRouteTest( assertThatItineraryHasModes(itineraries, expectedModes); } + + static void assertThereArePatternsWithVehiclePositions() { + GraphQLClient.VehiclePositionResponse positions = GraphQLClient.patternWithVehiclePositionsQuery(); + + var vehiclePositions = positions + .patterns() + .stream() + .flatMap(p -> p.vehiclePositions().stream()) + .toList(); + + assertFalse( + vehiclePositions.isEmpty(), + "Found no patterns that have realtime vehicle positions." + ); + } + + /** + * The Fare class is a little hard to deserialize, so we have a custom deserializer as we don't + * run any assertions against the fares. (That is done during unit tests.) + */ + static class FareDeserializer extends JsonDeserializer { + + @Override + public ItineraryFares deserialize( + JsonParser jsonParser, + DeserializationContext deserializationContext + ) { + return null; + } + } } diff --git a/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java b/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java index bf34acab123..824f6c63dcd 100644 --- a/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java +++ b/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java @@ -2,12 +2,14 @@ import static org.opentripplanner.smoketest.SmokeTest.mapper; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import java.io.IOException; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; +import java.util.List; import org.opentripplanner.smoketest.SmokeTest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -18,6 +20,38 @@ public class GraphQLClient { static final HttpClient httpClient = HttpClient.newHttpClient(); + public static VehiclePositionResponse patternWithVehiclePositionsQuery() { + var json = GraphQLClient.sendGraphQLRequest( + """ + query { + patterns { + vehiclePositions { + vehicleId + lastUpdated + trip { + id + gtfsId + } + stopRelationship { + status + stop { + name + } + } + } + } + } + + """ + ); + + try { + return SmokeTest.mapper.treeToValue(json, VehiclePositionResponse.class); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + public static JsonNode sendGraphQLRequest(String query) { var body = mapper.createObjectNode(); body.put("query", query); @@ -44,4 +78,10 @@ public static JsonNode sendGraphQLRequest(String query) { throw new RuntimeException(e); } } + + public record Position(String vehicleId) {} + + public record Pattern(List vehiclePositions) {} + + public record VehiclePositionResponse(List patterns) {} } From 13449a0ac9043810505a7ebea0c4d82faeb20110 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 4 Oct 2022 21:58:29 +0200 Subject: [PATCH 060/158] Add SEPTA vehicle positions smoke test --- smoke-tests/septa/build-config.json | 14 ++++++++++++++ smoke-tests/septa/otp-config.json | 5 +++++ smoke-tests/septa/router-config.json | 11 +++++++++++ .../stops/DigitransitStopPropertyMapper.java | 1 - .../opentripplanner/smoketest/DenverSmokeTest.java | 2 +- .../opentripplanner/smoketest/SeptaSmokeTest.java | 5 +++++ 6 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 smoke-tests/septa/build-config.json create mode 100644 smoke-tests/septa/otp-config.json create mode 100644 smoke-tests/septa/router-config.json diff --git a/smoke-tests/septa/build-config.json b/smoke-tests/septa/build-config.json new file mode 100644 index 00000000000..99a5fab50f3 --- /dev/null +++ b/smoke-tests/septa/build-config.json @@ -0,0 +1,14 @@ +{ + "transitFeeds": [ + { + "type": "gtfs", + "source": "gtfs.zip", + "feedId": "septa-rail" + }, + { + "type": "gtfs", + "source": "bus.gtfs.zip", + "feedId": "septa-bus" + } + ] +} \ No newline at end of file diff --git a/smoke-tests/septa/otp-config.json b/smoke-tests/septa/otp-config.json new file mode 100644 index 00000000000..084070b312c --- /dev/null +++ b/smoke-tests/septa/otp-config.json @@ -0,0 +1,5 @@ +{ + "otpFeatures" : { + "SandboxAPILegacyGraphQLApi": true + } +} \ No newline at end of file diff --git a/smoke-tests/septa/router-config.json b/smoke-tests/septa/router-config.json new file mode 100644 index 00000000000..ea6893983f3 --- /dev/null +++ b/smoke-tests/septa/router-config.json @@ -0,0 +1,11 @@ +{ + "updaters": [ + { + "type": "vehicle-positions", + "sourceType": "gtfs-http", + "url": "https://www3.septa.org/gtfsrt/septarail-pa-us/Vehicle/rtVehiclePosition.pb", + "feedId": "septa-rail", + "frequencySec": 60 + } + ] +} \ No newline at end of file diff --git a/src/ext/java/org/opentripplanner/ext/vectortiles/layers/stops/DigitransitStopPropertyMapper.java b/src/ext/java/org/opentripplanner/ext/vectortiles/layers/stops/DigitransitStopPropertyMapper.java index 9217985f08c..b3a4d339284 100644 --- a/src/ext/java/org/opentripplanner/ext/vectortiles/layers/stops/DigitransitStopPropertyMapper.java +++ b/src/ext/java/org/opentripplanner/ext/vectortiles/layers/stops/DigitransitStopPropertyMapper.java @@ -3,7 +3,6 @@ import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.function.Function; import java.util.stream.Collectors; import org.json.simple.JSONArray; diff --git a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java index b5cc628898c..db261fb493d 100644 --- a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java @@ -34,7 +34,7 @@ public void routeFromSouthToNorth() { } @Test - public void vehiclePositions() throws JsonProcessingException { + public void vehiclePositions() { SmokeTest.assertThereArePatternsWithVehiclePositions(); } } diff --git a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java index ee7962f53a5..1c3e4aaf74c 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java @@ -27,4 +27,9 @@ public void routeFromAirportToNorthPhiladelphia() { List.of("WALK", "RAIL", "RAIL", "WALK", "SUBWAY", "WALK", "BUS", "WALK") ); } + + @Test + public void vehiclePositions() { + SmokeTest.assertThereArePatternsWithVehiclePositions(); + } } From 89716d6dceb414474158f3b74ef2eab9a8c5de22 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 5 Oct 2022 11:41:07 +0200 Subject: [PATCH 061/158] Add vehicle rental check to SEPTA smoke test --- smoke-tests/septa/router-config.json | 6 ++++ .../smoketest/SeptaSmokeTest.java | 5 +++ .../opentripplanner/smoketest/SmokeTest.java | 6 +++- .../smoketest/util/GraphQLClient.java | 31 +++++++++++++++++++ 4 files changed, 47 insertions(+), 1 deletion(-) diff --git a/smoke-tests/septa/router-config.json b/smoke-tests/septa/router-config.json index ea6893983f3..99af645ec3e 100644 --- a/smoke-tests/septa/router-config.json +++ b/smoke-tests/septa/router-config.json @@ -6,6 +6,12 @@ "url": "https://www3.septa.org/gtfsrt/septarail-pa-us/Vehicle/rtVehiclePosition.pb", "feedId": "septa-rail", "frequencySec": 60 + }, + { + "type": "vehicle-rental", + "sourceType": "gbfs", + "frequencySec": 60, + "url": "https://gbfs.bcycle.com/bcycle_indego/gbfs.json" } ] } \ No newline at end of file diff --git a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java index 1c3e4aaf74c..ff57d822d8f 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java @@ -32,4 +32,9 @@ public void routeFromAirportToNorthPhiladelphia() { public void vehiclePositions() { SmokeTest.assertThereArePatternsWithVehiclePositions(); } + + @Test + public void bikeRentalStations() { + SmokeTest.assertThatThereAreVehicleRentalStations(); + } } diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 891175da4d8..e7f5b832c35 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -5,7 +5,6 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JsonDeserializer; @@ -63,6 +62,11 @@ public static LocalDate nextMonday() { return today.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); } + public static void assertThatThereAreVehicleRentalStations() { + var stations = GraphQLClient.vehicleRentalStations(); + assertFalse(stations.isEmpty(), "Found no vehicle rental stations."); + } + /** * Given a list of itineraries assert that at least one of them has legs that have the expected * modes. diff --git a/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java b/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java index 824f6c63dcd..cdc6eea505e 100644 --- a/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java +++ b/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java @@ -3,6 +3,7 @@ import static org.opentripplanner.smoketest.SmokeTest.mapper; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import java.io.IOException; import java.net.URI; @@ -52,6 +53,34 @@ public static VehiclePositionResponse patternWithVehiclePositionsQuery() { } } + public static List vehicleRentalStations() { + var json = GraphQLClient.sendGraphQLRequest( + """ + query { + vehicleRentalStations{ + name + lat + lon + realtime + vehiclesAvailable + } + } + """ + ); + + try { + List stations = SmokeTest.mapper.readValue( + json.path("vehicleRentalStations").toString(), + new TypeReference<>() {} + ); + + LOG.info("Fetched {} vehicle rental stations", stations.size()); + return stations; + } catch (IOException e) { + throw new RuntimeException(e); + } + } + public static JsonNode sendGraphQLRequest(String query) { var body = mapper.createObjectNode(); body.put("query", query); @@ -79,6 +108,8 @@ public static JsonNode sendGraphQLRequest(String query) { } } + public record VehicleRentalStation(String name, float lat, float lon) {} + public record Position(String vehicleId) {} public record Pattern(List vehiclePositions) {} From 5bd28e8f089ad6bd44fa525b9c662bae033f53df Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 6 Oct 2022 10:48:53 +0200 Subject: [PATCH 062/158] Add WPS and fare config for Atlanta and Houston --- smoke-tests/atlanta/build-config.json | 6 ++++++ smoke-tests/houston/build-config.json | 3 +++ 2 files changed, 9 insertions(+) create mode 100644 smoke-tests/atlanta/build-config.json diff --git a/smoke-tests/atlanta/build-config.json b/smoke-tests/atlanta/build-config.json new file mode 100644 index 00000000000..6711eb9f792 --- /dev/null +++ b/smoke-tests/atlanta/build-config.json @@ -0,0 +1,6 @@ +{ + "fares": "atlanta", + "osmDefaults": { + "osmTagMapping": "atlanta" + } +} diff --git a/smoke-tests/houston/build-config.json b/smoke-tests/houston/build-config.json index ccc1fc5b54b..b6c8f89dac3 100644 --- a/smoke-tests/houston/build-config.json +++ b/smoke-tests/houston/build-config.json @@ -2,5 +2,8 @@ "fares": { "type": "highestFareInFreeTransferWindow", "analyzeInterlinedTransfers": "true" + }, + "osmDefaults": { + "osmTagMapping": "houston" } } From 360890a05faf2c2d08d94808a8c0e59a5d4ca1ca Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 6 Oct 2022 14:54:34 +0200 Subject: [PATCH 063/158] Fix initialization of logger --- .../java/org/opentripplanner/smoketest/util/GraphQLClient.java | 2 +- .../java/org/opentripplanner/smoketest/util/RestClient.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java b/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java index cdc6eea505e..50c754f54b6 100644 --- a/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java +++ b/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java @@ -17,7 +17,7 @@ public class GraphQLClient { - static final Logger LOG = LoggerFactory.getLogger(SmokeTest.class); + static final Logger LOG = LoggerFactory.getLogger(GraphQLClient.class); static final HttpClient httpClient = HttpClient.newHttpClient(); diff --git a/src/test/java/org/opentripplanner/smoketest/util/RestClient.java b/src/test/java/org/opentripplanner/smoketest/util/RestClient.java index f0066b6a596..80bd90efa63 100644 --- a/src/test/java/org/opentripplanner/smoketest/util/RestClient.java +++ b/src/test/java/org/opentripplanner/smoketest/util/RestClient.java @@ -16,7 +16,7 @@ public class RestClient { - static final Logger LOG = LoggerFactory.getLogger(SmokeTest.class); + static final Logger LOG = LoggerFactory.getLogger(RestClient.class); static HttpClient client = HttpClient.newHttpClient(); From 109fd21ae1356cece4e96caa9b82a4726d7c4d32 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 11 Oct 2022 14:45:19 +0200 Subject: [PATCH 064/158] Add bike rental route test in Philadelphia --- .../opentripplanner/smoketest/SeptaSmokeTest.java | 15 +++++++++++++-- .../org/opentripplanner/smoketest/SmokeTest.java | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java index ff57d822d8f..0840a968722 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java @@ -8,8 +8,6 @@ /** * This smoke test expects an OTP installation running at localhost:8080 - *

- * It uses the REST API to check that a route from Philadelphia's airport to its North can be found. */ @Tag("smoke-test") @Tag("septa") @@ -18,6 +16,9 @@ public class SeptaSmokeTest { WgsCoordinate airport = new WgsCoordinate(39.876151, -75.245189); WgsCoordinate stPetersCemetary = new WgsCoordinate(39.98974, -75.09515); + WgsCoordinate pierceStreet = new WgsCoordinate(39.93014, -75.18047); + WgsCoordinate templeUniversity = new WgsCoordinate(39.98069, -75.14886); + @Test public void routeFromAirportToNorthPhiladelphia() { SmokeTest.basicRouteTest( @@ -37,4 +38,14 @@ public void vehiclePositions() { public void bikeRentalStations() { SmokeTest.assertThatThereAreVehicleRentalStations(); } + + @Test + public void routeWithBikeRental() { + SmokeTest.basicRouteTest( + pierceStreet, + templeUniversity, + Set.of("BICYCLE_RENT"), + List.of("WALK", "BICYCLE", "WALK") + ); + } } diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index e7f5b832c35..02748bbe5f1 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -99,7 +99,7 @@ static void basicRouteTest( var otpResponse = RestClient.sendPlanRequest(request); var itineraries = otpResponse.getPlan().itineraries; - assertTrue(itineraries.size() > 1); + assertTrue(itineraries.size() >= 1); assertThatItineraryHasModes(itineraries, expectedModes); } From 8590e21603133408c7e3adeee7e9de3b19e1280b Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 13 Oct 2022 21:00:52 +0200 Subject: [PATCH 065/158] Adjust configuration in smoke tests --- smoke-tests/denver/router-config.json | 2 +- smoke-tests/septa/build-config.json | 3 ++- smoke-tests/septa/router-config.json | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/smoke-tests/denver/router-config.json b/smoke-tests/denver/router-config.json index 8f44b8c8222..8e017db262f 100644 --- a/smoke-tests/denver/router-config.json +++ b/smoke-tests/denver/router-config.json @@ -2,7 +2,7 @@ "updaters": [ { "type": "vehicle-positions", - "sourceType": "gtfs-http", + "sourceType": "gtfs-rt-http", "url": "https://www.rtd-denver.com/files/gtfs-rt/VehiclePosition.pb", "feedId": "1", "frequencySec": 60 diff --git a/smoke-tests/septa/build-config.json b/smoke-tests/septa/build-config.json index 99a5fab50f3..74d5a1dadaf 100644 --- a/smoke-tests/septa/build-config.json +++ b/smoke-tests/septa/build-config.json @@ -10,5 +10,6 @@ "source": "bus.gtfs.zip", "feedId": "septa-bus" } - ] + ], + "fares": "combine-interlined-legs" } \ No newline at end of file diff --git a/smoke-tests/septa/router-config.json b/smoke-tests/septa/router-config.json index 99af645ec3e..33dd8583dc1 100644 --- a/smoke-tests/septa/router-config.json +++ b/smoke-tests/septa/router-config.json @@ -2,7 +2,7 @@ "updaters": [ { "type": "vehicle-positions", - "sourceType": "gtfs-http", + "sourceType": "gtfs-rt-http", "url": "https://www3.septa.org/gtfsrt/septarail-pa-us/Vehicle/rtVehiclePosition.pb", "feedId": "septa-rail", "frequencySec": 60 From 11c758e2e4270188103daecfedf74a62320f8f44 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 13 Oct 2022 21:12:34 +0200 Subject: [PATCH 066/158] Change test assertion --- src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java index 0840a968722..d46d1b20a2d 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java @@ -25,7 +25,7 @@ public void routeFromAirportToNorthPhiladelphia() { airport, stPetersCemetary, Set.of("TRANSIT", "WALK"), - List.of("WALK", "RAIL", "RAIL", "WALK", "SUBWAY", "WALK", "BUS", "WALK") + List.of("WALK", "RAIL", "RAIL", "WALK", "SUBWAY", "WALK") ); } From 6e36ec93433d93145eca04dd7085c76cc5fce62e Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 13 Oct 2022 21:23:02 +0200 Subject: [PATCH 067/158] Use new spelling fares config --- smoke-tests/houston/build-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smoke-tests/houston/build-config.json b/smoke-tests/houston/build-config.json index b6c8f89dac3..a0968317469 100644 --- a/smoke-tests/houston/build-config.json +++ b/smoke-tests/houston/build-config.json @@ -1,6 +1,6 @@ { "fares": { - "type": "highestFareInFreeTransferWindow", + "type": "highest-fare-in-free-transfer-window", "analyzeInterlinedTransfers": "true" }, "osmDefaults": { From 40f18a50715d93c327c2349593e4d997c7900129 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 17 Oct 2022 13:07:44 +0200 Subject: [PATCH 068/158] Remove unnecessary sourceType --- smoke-tests/denver/router-config.json | 1 - smoke-tests/septa/router-config.json | 1 - 2 files changed, 2 deletions(-) diff --git a/smoke-tests/denver/router-config.json b/smoke-tests/denver/router-config.json index 8e017db262f..b8dbc242f51 100644 --- a/smoke-tests/denver/router-config.json +++ b/smoke-tests/denver/router-config.json @@ -2,7 +2,6 @@ "updaters": [ { "type": "vehicle-positions", - "sourceType": "gtfs-rt-http", "url": "https://www.rtd-denver.com/files/gtfs-rt/VehiclePosition.pb", "feedId": "1", "frequencySec": 60 diff --git a/smoke-tests/septa/router-config.json b/smoke-tests/septa/router-config.json index 33dd8583dc1..cf9e2ebc23c 100644 --- a/smoke-tests/septa/router-config.json +++ b/smoke-tests/septa/router-config.json @@ -2,7 +2,6 @@ "updaters": [ { "type": "vehicle-positions", - "sourceType": "gtfs-rt-http", "url": "https://www3.septa.org/gtfsrt/septarail-pa-us/Vehicle/rtVehiclePosition.pb", "feedId": "septa-rail", "frequencySec": 60 From da15c498f30e2e9b46a26dc8e3f14edf7969187e Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 12 Dec 2022 18:05:59 +0100 Subject: [PATCH 069/158] Fix imports of smoke tests --- .../org/opentripplanner/smoketest/AtlantaSmokeTest.java | 2 +- .../org/opentripplanner/smoketest/DenverSmokeTest.java | 7 +------ .../org/opentripplanner/smoketest/HoustonSmokeTest.java | 2 +- .../java/org/opentripplanner/smoketest/SeptaSmokeTest.java | 2 +- src/test/java/org/opentripplanner/smoketest/SmokeTest.java | 2 +- .../opentripplanner/smoketest/util/SmokeTestRequest.java | 2 +- 6 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index 5c902d2d1f3..b6bba028f73 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -7,9 +7,9 @@ import java.util.Set; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.opentripplanner.framework.geometry.WgsCoordinate; import org.opentripplanner.smoketest.util.RestClient; import org.opentripplanner.smoketest.util.SmokeTestRequest; -import org.opentripplanner.transit.model.basic.WgsCoordinate; /** * This smoke test expects an OTP installation running at localhost:8080 diff --git a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java index db261fb493d..4a65559bead 100644 --- a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java @@ -1,15 +1,10 @@ package org.opentripplanner.smoketest; -import static org.junit.jupiter.api.Assertions.assertFalse; - -import com.fasterxml.jackson.core.JsonProcessingException; import java.util.List; import java.util.Set; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; -import org.opentripplanner.smoketest.util.GraphQLClient; -import org.opentripplanner.smoketest.util.SmokeTestRequest; -import org.opentripplanner.transit.model.basic.WgsCoordinate; +import org.opentripplanner.framework.geometry.WgsCoordinate; /** * This smoke test expects an OTP installation running at localhost:8080 diff --git a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java index 74b9b2ab54a..781af86044d 100644 --- a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java @@ -4,7 +4,7 @@ import java.util.Set; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; -import org.opentripplanner.transit.model.basic.WgsCoordinate; +import org.opentripplanner.framework.geometry.WgsCoordinate; /** * This smoke test expects an OTP installation running at localhost:8080 diff --git a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java index d46d1b20a2d..44996371420 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java @@ -4,7 +4,7 @@ import java.util.Set; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; -import org.opentripplanner.transit.model.basic.WgsCoordinate; +import org.opentripplanner.framework.geometry.WgsCoordinate; /** * This smoke test expects an OTP installation running at localhost:8080 diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 02748bbe5f1..c10a74b5608 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -18,11 +18,11 @@ import java.util.Set; import org.opentripplanner.api.json.JSONObjectMapperProvider; import org.opentripplanner.api.model.ApiItinerary; +import org.opentripplanner.framework.geometry.WgsCoordinate; import org.opentripplanner.routing.core.ItineraryFares; import org.opentripplanner.smoketest.util.GraphQLClient; import org.opentripplanner.smoketest.util.RestClient; import org.opentripplanner.smoketest.util.SmokeTestRequest; -import org.opentripplanner.transit.model.basic.WgsCoordinate; /** * This is both a utility class and a category to select or deselect smoke tests during test diff --git a/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java b/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java index 588b7d9a78f..841660bb526 100644 --- a/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java +++ b/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java @@ -3,8 +3,8 @@ import java.time.Duration; import java.util.Collection; import java.util.Map; +import org.opentripplanner.framework.geometry.WgsCoordinate; import org.opentripplanner.smoketest.SmokeTest; -import org.opentripplanner.transit.model.basic.WgsCoordinate; public record SmokeTestRequest(WgsCoordinate from, WgsCoordinate to, Collection modes) { public Map toMap() { From d478cab1804a12221a6cfd135533fbcb94c0b931 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 12 Dec 2022 21:00:00 +0100 Subject: [PATCH 070/158] Use next Friday instead of Monday --- src/test/java/org/opentripplanner/smoketest/SmokeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index c10a74b5608..deb44ca4f32 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -59,7 +59,7 @@ public class SmokeTest { */ public static LocalDate nextMonday() { var today = LocalDate.now(); - return today.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); + return today.with(TemporalAdjusters.next(DayOfWeek.FRIDAY)); } public static void assertThatThereAreVehicleRentalStations() { From 79009b20532c5c2d18dd35ba688e739a10070c6b Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 27 Jan 2023 10:39:34 +0100 Subject: [PATCH 071/158] Update assertion What used to be a bus is now a tram apparently. --- .../java/org/opentripplanner/smoketest/HoustonSmokeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java index 781af86044d..d89858e6e78 100644 --- a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java @@ -24,7 +24,7 @@ public void routeFromSouthToNorth() { galvestonRoad, northLindale, Set.of("TRANSIT", "WALK"), - List.of("WALK", "BUS", "BUS", "WALK", "BUS", "WALK") + List.of("WALK", "BUS", "BUS", "WALK", "TRAM", "WALK") ); } } From 510ff8ff2a00a53494660398ec8b0811c58a6f6e Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 27 Jan 2023 10:43:17 +0100 Subject: [PATCH 072/158] Add smoke test for bicycle route --- .../java/org/opentripplanner/smoketest/HoustonSmokeTest.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java index d89858e6e78..84c2f458e31 100644 --- a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java @@ -27,4 +27,9 @@ public void routeFromSouthToNorth() { List.of("WALK", "BUS", "BUS", "WALK", "TRAM", "WALK") ); } + + @Test + public void bikeRoute() { + SmokeTest.basicRouteTest(galvestonRoad, northLindale, Set.of("BICYCLE"), List.of("BICYCLE")); + } } From c25dcb1da679bff2c247c2d6b1b1a445ddb73bd4 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 27 Jan 2023 10:44:15 +0100 Subject: [PATCH 073/158] Add smoke test for mode selection --- .../opentripplanner/smoketest/HoustonSmokeTest.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java index 84c2f458e31..38586f491ca 100644 --- a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java @@ -28,6 +28,16 @@ public void routeFromSouthToNorth() { ); } + @Test + public void selectOnlyBusses() { + SmokeTest.basicRouteTest( + galvestonRoad, + northLindale, + Set.of("BUS", "WALK"), + List.of("WALK", "BUS", "BUS", "WALK", "BUS", "WALK") + ); + } + @Test public void bikeRoute() { SmokeTest.basicRouteTest(galvestonRoad, northLindale, Set.of("BICYCLE"), List.of("BICYCLE")); From ae2d1e90dc6510f6fa315ebb31aec02401c2cf66 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 27 Jan 2023 11:52:26 +0100 Subject: [PATCH 074/158] Revert to next Monday --- src/test/java/org/opentripplanner/smoketest/SmokeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index deb44ca4f32..c10a74b5608 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -59,7 +59,7 @@ public class SmokeTest { */ public static LocalDate nextMonday() { var today = LocalDate.now(); - return today.with(TemporalAdjusters.next(DayOfWeek.FRIDAY)); + return today.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); } public static void assertThatThereAreVehicleRentalStations() { From 6a79673c07182619ef573b14dc4493ef870c481d Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 3 Feb 2023 11:10:23 +0100 Subject: [PATCH 075/158] Add smoke test for portland --- .github/workflows/smoke-tests.yml | 12 ++++--- smoke-tests/Makefile | 6 ++++ smoke-tests/portland/build-config.json | 12 +++++++ smoke-tests/portland/otp-config.json | 5 +++ smoke-tests/portland/router-config.json | 25 +++++++++++++ .../smoketest/PortlandSmokeTest.java | 35 +++++++++++++++++++ 6 files changed, 91 insertions(+), 4 deletions(-) create mode 100644 smoke-tests/portland/build-config.json create mode 100644 smoke-tests/portland/otp-config.json create mode 100644 smoke-tests/portland/router-config.json create mode 100644 src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index ca21711cbf7..f06bac235da 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -16,15 +16,16 @@ jobs: MAVEN_OPTS: -Xmx2g steps: - - uses: actions/checkout@v2.3.2 + - uses: actions/checkout@v3 - name: Set up Java - uses: actions/setup-java@v1 + uses: actions/setup-java@v2 with: java-version: 17 + distribution: temurin - name: Cache local Maven repository - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} @@ -32,7 +33,7 @@ jobs: ${{ runner.os }}-maven- - name: Cache OSM files - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: smoke-tests/**/*.pbf key: osm-2022-10-04 @@ -55,3 +56,6 @@ jobs: - name: "[SEPTA] Build graph, run OTP, run smoke tests" run: scripts/smoke-tests.sh septa + + - name: "[Portland] Build graph, run OTP, run smoke tests" + run: scripts/smoke-tests.sh portland diff --git a/smoke-tests/Makefile b/smoke-tests/Makefile index 1fd85154ed4..35b5711c8a3 100644 --- a/smoke-tests/Makefile +++ b/smoke-tests/Makefile @@ -37,6 +37,12 @@ septa/bus.gtfs.zip: septa/gtfs.zip: septa/bus.gtfs.zip ${CURL} https://www3.septa.org/developer/google_rail.zip -o $@ +portland/osm.pbf: + ${CURL} http://osm.ibi-transit.com/vex/45.424388,-122.885443,45.684746,-122.44084.pbf -o $@ + +portland/gtfs.zip: + echo "Downloaded by OTP" + build-%: otp.jar %/osm.pbf %/gtfs.zip java -Xmx6G -jar otp.jar --build --save $* diff --git a/smoke-tests/portland/build-config.json b/smoke-tests/portland/build-config.json new file mode 100644 index 00000000000..0ae51393c88 --- /dev/null +++ b/smoke-tests/portland/build-config.json @@ -0,0 +1,12 @@ +{ + "osmDefaults": { + "osmTagMapping": "portland" + }, + "transitFeeds": [ + { + "type": "gtfs", + "feedId": "TriMet", + "source": "https://developer.trimet.org/schedule/gtfs.zip" + } + ] +} \ No newline at end of file diff --git a/smoke-tests/portland/otp-config.json b/smoke-tests/portland/otp-config.json new file mode 100644 index 00000000000..084070b312c --- /dev/null +++ b/smoke-tests/portland/otp-config.json @@ -0,0 +1,5 @@ +{ + "otpFeatures" : { + "SandboxAPILegacyGraphQLApi": true + } +} \ No newline at end of file diff --git a/smoke-tests/portland/router-config.json b/smoke-tests/portland/router-config.json new file mode 100644 index 00000000000..13387faff95 --- /dev/null +++ b/smoke-tests/portland/router-config.json @@ -0,0 +1,25 @@ +{ + "streetRoutingTimeout": "7s", + "updaters": [ + { + "type": "real-time-alerts", + "frequencySec": 60, + "earlyStartSec": 864000, + "url": "https://trimet.org/transweb/ws/V1/FeedSpecAlerts/includeFuture/true/suppressSystemWideAlerts/true/", + "feedId": "TriMet" + }, + { + "type": "stop-time-updater", + "frequencySec": 30, + "url": "https://trimet.org/transweb/ws/V1/TripUpdate", + "feedId": "TriMet" + }, + { + "type": "vehicle-rental", + "frequencySec": 90, + "sourceType": "gbfs", + "url": "https://mds.bird.co/gbfs/v2/public/portland/gbfs.json", + "geofencingZones": "true" + } + ] +} \ No newline at end of file diff --git a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java new file mode 100644 index 00000000000..dc06f31e30c --- /dev/null +++ b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java @@ -0,0 +1,35 @@ +package org.opentripplanner.smoketest; + +import java.util.List; +import java.util.Set; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; +import org.opentripplanner.framework.geometry.WgsCoordinate; + +@Tag("smoke-test") +@Tag("portland") +public class PortlandSmokeTest { + + WgsCoordinate cennentenial = new WgsCoordinate(45.504602, -122.4968719); + WgsCoordinate hillside = new WgsCoordinate(45.5275, -122.7110); + + @Test + public void railRouteAcrossTheCity() { + SmokeTest.basicRouteTest( + cennentenial, + hillside, + Set.of("TRAM", "WALK"), + List.of("WALK", "TRAM", "WALK") + ); + } + + @Test + public void geofencingZone() { + SmokeTest.basicRouteTest( + cennentenial, + hillside, + Set.of("SCOOTER_RENT", "WALK"), + List.of("WALK", "SCOOTER", "WALK") + ); + } +} From 8935076488c2f126be7da8fb96454b8e1bfd0736 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 3 Feb 2023 11:22:50 +0100 Subject: [PATCH 076/158] Make sleep seconds configurable --- .github/workflows/smoke-tests.yml | 11 ++++++----- scripts/smoke-tests.sh | 3 ++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index f06bac235da..8e85c8f2c0c 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -46,16 +46,17 @@ jobs: mvn org.apache.maven.plugins:maven-compiler-plugin:testCompile - name: "[Atlanta] Build graph, run OTP, run smoke tests" - run: scripts/smoke-tests.sh atlanta + run: scripts/smoke-tests.sh atlanta 15 - name: "[Houston] Build graph, run OTP, run smoke tests" - run: scripts/smoke-tests.sh houston + run: scripts/smoke-tests.sh houston 15 - name: "[Denver] Build graph, run OTP, run smoke tests" - run: scripts/smoke-tests.sh denver + run: scripts/smoke-tests.sh denver 15 - name: "[SEPTA] Build graph, run OTP, run smoke tests" - run: scripts/smoke-tests.sh septa + run: scripts/smoke-tests.sh septa 15 - name: "[Portland] Build graph, run OTP, run smoke tests" - run: scripts/smoke-tests.sh portland + # have to sleep longer since computing geofencing zones takes a while + run: scripts/smoke-tests.sh portland 60 diff --git a/scripts/smoke-tests.sh b/scripts/smoke-tests.sh index 06eb7abe089..001d97db5ab 100755 --- a/scripts/smoke-tests.sh +++ b/scripts/smoke-tests.sh @@ -1,6 +1,7 @@ #! /bin/bash -e LOCATION=$1 +SLEEP_SECS=$2 cd smoke-tests make build-"${LOCATION}" @@ -8,7 +9,7 @@ make build-"${LOCATION}" make run-"${LOCATION}" & # OTP needs a little while to start up so we sleep -sleep 15 +sleep "$SLEEP_SECS" cd .. From 21ddf82b5ed5a0a3c815a68c4eb43d89cee51717 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 3 Feb 2023 12:10:55 +0100 Subject: [PATCH 077/158] Add javadoc to smoke test --- .../java/org/opentripplanner/smoketest/PortlandSmokeTest.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java index dc06f31e30c..ba57403a603 100644 --- a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java @@ -23,6 +23,10 @@ public void railRouteAcrossTheCity() { ); } + /** + * Checks that a scooter rental finishes at the edge of the business area and is continued on + * foot rather than scootering all the way to the destination. + */ @Test public void geofencingZone() { SmokeTest.basicRouteTest( From e5727bbf5bfa84146a3856efd90095c1c6042122 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 3 Feb 2023 15:00:06 +0100 Subject: [PATCH 078/158] Use newest version of action --- .github/workflows/smoke-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 8e85c8f2c0c..408780b491b 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -19,7 +19,7 @@ jobs: - uses: actions/checkout@v3 - name: Set up Java - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: java-version: 17 distribution: temurin From 5321817970f0ad39a9070fed3fc328d93546c73e Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 7 Feb 2023 12:03:49 +0100 Subject: [PATCH 079/158] Add smoke test for Seattle --- .github/workflows/smoke-tests.yml | 15 ++++--- smoke-tests/Makefile | 6 +++ smoke-tests/seattle/build-config.json | 26 ++++++++++++ smoke-tests/seattle/otp-config.json | 6 +++ smoke-tests/seattle/router-config.json | 25 +++++++++++ .../smoketest/SeattleSmokeTest.java | 42 +++++++++++++++++++ .../opentripplanner/smoketest/SmokeTest.java | 13 ++++++ .../smoketest/util/GraphQLClient.java | 28 +++++++++++++ 8 files changed, 155 insertions(+), 6 deletions(-) create mode 100644 smoke-tests/seattle/build-config.json create mode 100644 smoke-tests/seattle/otp-config.json create mode 100644 smoke-tests/seattle/router-config.json create mode 100644 src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 408780b491b..ca901763078 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -45,18 +45,21 @@ jobs: mvn --batch-mode clean package -Dmaven.test.skip -P prettierSkip mvn org.apache.maven.plugins:maven-compiler-plugin:testCompile - - name: "[Atlanta] Build graph, run OTP, run smoke tests" + - name: "[Seattle] Run smoke tests" + run: scripts/smoke-tests.sh seattle 15 + + - name: "[Atlanta] Run smoke tests" run: scripts/smoke-tests.sh atlanta 15 - - name: "[Houston] Build graph, run OTP, run smoke tests" + - name: "[Houston] Run smoke tests" run: scripts/smoke-tests.sh houston 15 - - name: "[Denver] Build graph, run OTP, run smoke tests" + - name: "[Denver] Run smoke tests" run: scripts/smoke-tests.sh denver 15 - - name: "[SEPTA] Build graph, run OTP, run smoke tests" + - name: "[SEPTA] Run smoke tests" run: scripts/smoke-tests.sh septa 15 - - name: "[Portland] Build graph, run OTP, run smoke tests" + - name: "[Portland] Run smoke tests" # have to sleep longer since computing geofencing zones takes a while - run: scripts/smoke-tests.sh portland 60 + run: scripts/smoke-tests.sh portland 70 diff --git a/smoke-tests/Makefile b/smoke-tests/Makefile index 35b5711c8a3..351a7b5a3b7 100644 --- a/smoke-tests/Makefile +++ b/smoke-tests/Makefile @@ -43,6 +43,12 @@ portland/osm.pbf: portland/gtfs.zip: echo "Downloaded by OTP" +seattle/osm.pbf: + ${CURL} http://osm.ibi-transit.com/vex/47.481002,-122.459681,47.734124,-122.224433.pbf -o $@ + +seattle/gtfs.zip: + echo "Downloaded by OTP" + build-%: otp.jar %/osm.pbf %/gtfs.zip java -Xmx6G -jar otp.jar --build --save $* diff --git a/smoke-tests/seattle/build-config.json b/smoke-tests/seattle/build-config.json new file mode 100644 index 00000000000..92abaaf7dbf --- /dev/null +++ b/smoke-tests/seattle/build-config.json @@ -0,0 +1,26 @@ +{ + "transitModelTimeZone": "America/Los_Angeles", + "fares": "orca", + "transitFeeds" : [ + { + "type" : "gtfs", + "feedId" : "soundgenerations", + "source" : "https://data.trilliumtransit.com/gtfs/soundgenerations-wa-us/soundgenerations-wa-us--flex-v2.zip" + }, + { + "type" : "gtfs", + "feedId" : "homage", + "source" : "https://data.trilliumtransit.com/gtfs/homage-wa-us/homage-wa-us--flex-v2.zip" + }, + { + "type" : "gtfs", + "feedId" : "kcm", + "source" : "https://metro.kingcounty.gov/GTFS/google_transit.zip" + }, + { + "type" : "gtfs", + "feedId" : "monorail", + "source" : "https://github.com/transitland/gtfs-archives-not-hosted-elsewhere/raw/master/seattlemonorail-wa-us.zip" + } + ] +} diff --git a/smoke-tests/seattle/otp-config.json b/smoke-tests/seattle/otp-config.json new file mode 100644 index 00000000000..1625735b8bd --- /dev/null +++ b/smoke-tests/seattle/otp-config.json @@ -0,0 +1,6 @@ +{ + "otpFeatures" : { + "SandboxAPILegacyGraphQLApi": true, + "FlexRouting": true + } +} \ No newline at end of file diff --git a/smoke-tests/seattle/router-config.json b/smoke-tests/seattle/router-config.json new file mode 100644 index 00000000000..9462236e608 --- /dev/null +++ b/smoke-tests/seattle/router-config.json @@ -0,0 +1,25 @@ +{ + "updaters": [ + { + "type": "stop-time-updater", + "frequencySec": 30, + "url": "https://s3.amazonaws.com/kcm-alerts-realtime-prod/tripupdates.pb", + "sourceType": "gtfs-http", + "feedId": "kcm" + }, + { + "type": "real-time-alerts", + "frequencySec": 30, + "url": "https://s3.amazonaws.com/kcm-alerts-realtime-prod/alerts.pb", +"sourceType": "gtfs-http", + "feedId": "kcm" + }, + { + "type": "vehicle-positions", + "frequencySec": 30, + "url": "https://s3.amazonaws.com/kcm-alerts-realtime-prod/vehiclepositions.pb", +"sourceType": "gtfs-http", + "feedId": "kcm" + } + ] +} diff --git a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java new file mode 100644 index 00000000000..78ea70a1b78 --- /dev/null +++ b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java @@ -0,0 +1,42 @@ +package org.opentripplanner.smoketest; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; +import org.opentripplanner.framework.geometry.WgsCoordinate; +import org.opentripplanner.smoketest.util.GraphQLClient; + +@Tag("smoke-test") +@Tag("seattle") +public class SeattleSmokeTest { + + WgsCoordinate sodo = new WgsCoordinate(47.5811, -122.3290); + WgsCoordinate clydeHill = new WgsCoordinate(47.6316, -122.2173); + + @Test + public void acrossTheCity() { + SmokeTest.basicRouteTest( + sodo, + clydeHill, + Set.of("TRANSIT", "WALK"), + List.of("WALK", "BUS", "WALK", "BUS", "WALK") + ); + } + + @Test + public void monorailRoute() { + var modes = GraphQLClient + .routes() + .stream() + .map(GraphQLClient.Route::mode) + .map(Objects::toString) + .collect(Collectors.toSet()); + + assertEquals(Set.of("MONORAIL", "TRAM", "FERRY", "BUS"), modes); + } +} diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index c10a74b5608..f448b76ad34 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -18,6 +18,7 @@ import java.util.Set; import org.opentripplanner.api.json.JSONObjectMapperProvider; import org.opentripplanner.api.model.ApiItinerary; +import org.opentripplanner.api.resource.DebugOutput; import org.opentripplanner.framework.geometry.WgsCoordinate; import org.opentripplanner.routing.core.ItineraryFares; import org.opentripplanner.smoketest.util.GraphQLClient; @@ -41,6 +42,7 @@ public class SmokeTest { SimpleModule module = new SimpleModule("SmokeTests"); module.addDeserializer(ItineraryFares.class, new FareDeserializer()); + module.addDeserializer(DebugOutput.class, new DebugOutputDeserializer()); mapper = provider.getContext(null); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); @@ -133,4 +135,15 @@ public ItineraryFares deserialize( return null; } } + + static class DebugOutputDeserializer extends JsonDeserializer { + + @Override + public DebugOutput deserialize( + JsonParser jsonParser, + DeserializationContext deserializationContext + ) { + return null; + } + } } diff --git a/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java b/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java index 50c754f54b6..8aa30988737 100644 --- a/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java +++ b/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java @@ -12,6 +12,7 @@ import java.net.http.HttpResponse; import java.util.List; import org.opentripplanner.smoketest.SmokeTest; +import org.opentripplanner.transit.model.basic.TransitMode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -81,6 +82,31 @@ public static List vehicleRentalStations() { } } + public static List routes() { + var json = GraphQLClient.sendGraphQLRequest( + """ + query { + routes { + shortName + mode + } + } + """ + ); + + try { + List routes = SmokeTest.mapper.readValue( + json.path("routes").toString(), + new TypeReference<>() {} + ); + + LOG.info("Fetched {} routes", routes.size()); + return routes; + } catch (IOException e) { + throw new RuntimeException(e); + } + } + public static JsonNode sendGraphQLRequest(String query) { var body = mapper.createObjectNode(); body.put("query", query); @@ -108,6 +134,8 @@ public static JsonNode sendGraphQLRequest(String query) { } } + public record Route(String shortName, TransitMode mode) {} + public record VehicleRentalStation(String name, float lat, float lon) {} public record Position(String vehicleId) {} From f9cd85c2853080219712ca338e45a1eeefa767c4 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 7 Feb 2023 12:49:33 +0100 Subject: [PATCH 080/158] Convert Atlanta smoke test to let OTP download the feeds --- smoke-tests/Makefile | 11 ++--------- smoke-tests/atlanta/build-config.json | 19 ++++++++++++++++++- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/smoke-tests/Makefile b/smoke-tests/Makefile index 351a7b5a3b7..ed99c87ee7a 100644 --- a/smoke-tests/Makefile +++ b/smoke-tests/Makefile @@ -6,15 +6,8 @@ otp.jar: atlanta/osm.pbf: ${CURL} http://osm.ibi-transit.com/vex/33.654066160697056,-84.759521484375,33.994611584814606,-84.30976867675781.pbf -o $@ -atlanta/cobblinc.gtfs.zip: - # Cobblinc's own feed expired at the end of January 2022. This URL contains the feed with extended dates. - ${CURL} https://internal-test-gtfs-testing.s3.amazonaws.com/Cobblinc-static-extended-dates.zip -o $@ - -atlanta/cobblinc-flex.gtfs.zip: - ${CURL} https://internal-test-gtfs-testing.s3.amazonaws.com/cobblinc-gtfs-flex.zip -o $@ - -atlanta/gtfs.zip: atlanta/cobblinc.gtfs.zip atlanta/cobblinc-flex.gtfs.zip - ${CURL} https://itsmarta.com/google_transit_feed/google_transit.zip -o $@ +atlanta/gtfs.zip: + echo "Downloaded by OTP" houston/osm.pbf: ${CURL} http://osm.ibi-transit.com/vex/29.65285233056443,-95.48492431640624,29.857914952075095,-95.22193908691406.pbf -o $@ diff --git a/smoke-tests/atlanta/build-config.json b/smoke-tests/atlanta/build-config.json index 6711eb9f792..f6ada71ac40 100644 --- a/smoke-tests/atlanta/build-config.json +++ b/smoke-tests/atlanta/build-config.json @@ -2,5 +2,22 @@ "fares": "atlanta", "osmDefaults": { "osmTagMapping": "atlanta" - } + }, + "transitFeeds" : [ + { + "type" : "gtfs", + "feedId" : "cobblinc", + "source" : "https://internal-test-gtfs-testing.s3.amazonaws.com/Cobblinc-static-extended-dates.zip" + }, + { + "type" : "gtfs", + "feedId" : "cobblinc-flex", + "source" : "https://internal-test-gtfs-testing.s3.amazonaws.com/cobblinc-gtfs-flex.zip" + }, + { + "type" : "gtfs", + "feedId" : "MARTA", + "source" : "https://itsmarta.com/google_transit_feed/google_transit.zip" + } + ] } From 1da874acf14fb5b74fca775341fafefb905cad5d Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 15 Feb 2023 13:44:57 +0100 Subject: [PATCH 081/158] Add smoke test for flex in Seattle --- .../opentripplanner/smoketest/SeattleSmokeTest.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java index 78ea70a1b78..520df4010a1 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java @@ -18,6 +18,9 @@ public class SeattleSmokeTest { WgsCoordinate sodo = new WgsCoordinate(47.5811, -122.3290); WgsCoordinate clydeHill = new WgsCoordinate(47.6316, -122.2173); + WgsCoordinate boeingCreekPark = new WgsCoordinate(47.755872, -122.361645); + WgsCoordinate ronaldBogPark = new WgsCoordinate(47.75601664, -122.33141); + @Test public void acrossTheCity() { SmokeTest.basicRouteTest( @@ -28,6 +31,16 @@ public void acrossTheCity() { ); } + @Test + public void flexAndTransit() { + SmokeTest.basicRouteTest( + boeingCreekPark, + ronaldBogPark, + Set.of("WALK", "BUS", "FLEX", "FLEX_DIRECT", "FLEX_EGRESS", "FLEX_ACCESS"), + List.of("BUS") + ); + } + @Test public void monorailRoute() { var modes = GraphQLClient From 02a12d3680656eba345bcbea0e41584f0404a493 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 17 Feb 2023 14:38:50 +0100 Subject: [PATCH 082/158] Restore consistency in workflow definition --- .github/workflows/cibuild.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/cibuild.yml b/.github/workflows/cibuild.yml index 31a6849753e..0a1b54dd59f 100644 --- a/.github/workflows/cibuild.yml +++ b/.github/workflows/cibuild.yml @@ -173,7 +173,6 @@ jobs: if: github.repository_owner == 'opentripplanner' && github.event_name == 'push' && github.ref == 'refs/heads/dev-2.x' runs-on: ubuntu-latest needs: - - build-windows - build-linux env: CONTAINER_REPO: docker.io/opentripplanner/opentripplanner From a570ed4f7a641b51903f7bab62cedfa70e635218 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 17 Feb 2023 15:07:22 +0100 Subject: [PATCH 083/158] Move test date two weeks into the future --- smoke-tests/Makefile | 7 ++----- smoke-tests/septa/build-config.json | 4 ++-- src/test/java/org/opentripplanner/smoketest/SmokeTest.java | 4 ++-- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/smoke-tests/Makefile b/smoke-tests/Makefile index ed99c87ee7a..aaa6f1dea60 100644 --- a/smoke-tests/Makefile +++ b/smoke-tests/Makefile @@ -24,11 +24,8 @@ denver/gtfs.zip: septa/osm.pbf: ${CURL} http://osm.ibi-transit.com/vex/39.85441086976069,-75.29136657714844,40.0433862595006,-75.06202697753906.pbf -o $@ -septa/bus.gtfs.zip: - ${CURL} https://www3.septa.org/developer/google_bus.zip -o $@ - -septa/gtfs.zip: septa/bus.gtfs.zip - ${CURL} https://www3.septa.org/developer/google_rail.zip -o $@ +septa/gtfs.zip: + echo "Downloaded by OTP" portland/osm.pbf: ${CURL} http://osm.ibi-transit.com/vex/45.424388,-122.885443,45.684746,-122.44084.pbf -o $@ diff --git a/smoke-tests/septa/build-config.json b/smoke-tests/septa/build-config.json index 74d5a1dadaf..194b24b9ee2 100644 --- a/smoke-tests/septa/build-config.json +++ b/smoke-tests/septa/build-config.json @@ -2,12 +2,12 @@ "transitFeeds": [ { "type": "gtfs", - "source": "gtfs.zip", + "source": "https://www3.septa.org/developer/google_rail.zip", "feedId": "septa-rail" }, { "type": "gtfs", - "source": "bus.gtfs.zip", + "source": "https://www3.septa.org/developer/google_bus.zip", "feedId": "septa-bus" } ], diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index f448b76ad34..79ed40cda18 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -60,7 +60,7 @@ public class SmokeTest { * before the expiration date of the old one. */ public static LocalDate nextMonday() { - var today = LocalDate.now(); + var today = LocalDate.now().plusWeeks(1); return today.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); } @@ -101,7 +101,7 @@ static void basicRouteTest( var otpResponse = RestClient.sendPlanRequest(request); var itineraries = otpResponse.getPlan().itineraries; - assertTrue(itineraries.size() >= 1); + assertTrue(itineraries.size() >= 1, "Expected to see some itineraries but got zero."); assertThatItineraryHasModes(itineraries, expectedModes); } From 9a273ad722abc2c813c9cbed6e4d8787dfdf1a27 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 22 Feb 2023 12:14:05 +0100 Subject: [PATCH 084/158] Use matrix strategy for smoke tests --- .github/workflows/smoke-tests.yml | 75 ++++++++++++++++++------------- 1 file changed, 43 insertions(+), 32 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index ca901763078..498a8d53b53 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -9,57 +9,68 @@ on: - ibi-dev - ibi-dev-2.x jobs: - smoke-tests: + test: runs-on: ubuntu-latest - env: - MAVEN_OPTS: -Xmx2g - steps: + JAVA_OPTS: -Xmx4g + MAVEN_OPTS: -Xmx3g - - uses: actions/checkout@v3 + strategy: + matrix: + locations: + - name: seattle + sleep: 15 + - name: atlanta + sleep: 15 + - name: houston + sleep: 15 + - name: denver + sleep: 15 + - name: septa + sleep: 15 + - name: portland + # have to sleep longer since computing geofencing zones takes a while + sleep: 70 + steps: + - uses: actions/checkout@v3 - name: Set up Java uses: actions/setup-java@v3 with: java-version: 17 distribution: temurin + cache: maven - - name: Cache local Maven repository - uses: actions/cache@v3 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- + - name: Build jar file, compile tests + run: | + mvn --batch-mode clean package -Dmaven.test.skip -P prettierSkip + mvn org.apache.maven.plugins:maven-compiler-plugin:testCompile - name: Cache OSM files uses: actions/cache@v3 with: path: smoke-tests/**/*.pbf - key: osm-2022-10-04 + key: osm-${{ matrix.locations.name }}-2023-02-22 restore-keys: | - osm- + osm-${{ matrix.locations.name }} - - name: Build jar file, compile tests + - name: Run smoke tests run: | - mvn --batch-mode clean package -Dmaven.test.skip -P prettierSkip - mvn org.apache.maven.plugins:maven-compiler-plugin:testCompile - - - name: "[Seattle] Run smoke tests" - run: scripts/smoke-tests.sh seattle 15 - - - name: "[Atlanta] Run smoke tests" - run: scripts/smoke-tests.sh atlanta 15 + cd smoke-tests + make build-${{ matrix.locations.name }} + + make run-${{ matrix.locations.name }} & + + # OTP needs a little while to start up so we sleep + sleep ${{ matrix.locations.sleep }} - - name: "[Houston] Run smoke tests" - run: scripts/smoke-tests.sh houston 15 + cd .. - - name: "[Denver] Run smoke tests" - run: scripts/smoke-tests.sh denver 15 + # run the actual smoke tests + # we run surefire:test in order to not recompile the tests for each city + mvn surefire:test -Djunit.tags.included="${{ matrix.locations.name }}" -Djunit.tags.excluded="" -P prettierSkip - - name: "[SEPTA] Run smoke tests" - run: scripts/smoke-tests.sh septa 15 + # shutting down the OTP instance running in the background (via make) + killall make - - name: "[Portland] Run smoke tests" - # have to sleep longer since computing geofencing zones takes a while - run: scripts/smoke-tests.sh portland 70 + scripts/smoke-tests.sh ${{ matrix.locations.name }} 15 From 64437bda2dcf31362044f8234bfd40822f3d4a6f Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 22 Feb 2023 12:55:05 +0100 Subject: [PATCH 085/158] Go back to just next thursday --- .github/workflows/smoke-tests.yml | 1 - src/test/java/org/opentripplanner/smoketest/SmokeTest.java | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 498a8d53b53..3e61c49503d 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -12,7 +12,6 @@ jobs: test: runs-on: ubuntu-latest env: - JAVA_OPTS: -Xmx4g MAVEN_OPTS: -Xmx3g strategy: diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 79ed40cda18..57357837677 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -60,7 +60,7 @@ public class SmokeTest { * before the expiration date of the old one. */ public static LocalDate nextMonday() { - var today = LocalDate.now().plusWeeks(1); + var today = LocalDate.now(); return today.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); } From e7a430ee1f8d7fef756e8874fe206e73d5c00407 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 22 Feb 2023 13:06:30 +0100 Subject: [PATCH 086/158] Use next Friday as the date --- scripts/smoke-tests.sh | 21 ------------------- .../opentripplanner/smoketest/SmokeTest.java | 2 +- 2 files changed, 1 insertion(+), 22 deletions(-) delete mode 100755 scripts/smoke-tests.sh diff --git a/scripts/smoke-tests.sh b/scripts/smoke-tests.sh deleted file mode 100755 index 001d97db5ab..00000000000 --- a/scripts/smoke-tests.sh +++ /dev/null @@ -1,21 +0,0 @@ -#! /bin/bash -e - -LOCATION=$1 -SLEEP_SECS=$2 - -cd smoke-tests -make build-"${LOCATION}" - -make run-"${LOCATION}" & - -# OTP needs a little while to start up so we sleep -sleep "$SLEEP_SECS" - -cd .. - -# run the actual smoke tests -# we run surefire:test in order to not recompile the tests for each city -mvn surefire:test -Djunit.tags.included="${LOCATION}" -Djunit.tags.excluded="" -P prettierSkip - -# shutting down the OTP instance running in the background (via make) -killall make diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 57357837677..8530a321da6 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -61,7 +61,7 @@ public class SmokeTest { */ public static LocalDate nextMonday() { var today = LocalDate.now(); - return today.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); + return today.with(TemporalAdjusters.next(DayOfWeek.FRIDAY)); } public static void assertThatThereAreVehicleRentalStations() { From 2d6e198849c1ef70f311635f8e421ac26d9c6ae4 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 22 Feb 2023 13:11:46 +0100 Subject: [PATCH 087/158] Clean up CI job --- .github/workflows/smoke-tests.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 3e61c49503d..e6a7787e01d 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -70,6 +70,4 @@ jobs: mvn surefire:test -Djunit.tags.included="${{ matrix.locations.name }}" -Djunit.tags.excluded="" -P prettierSkip # shutting down the OTP instance running in the background (via make) - killall make - - scripts/smoke-tests.sh ${{ matrix.locations.name }} 15 + killall make \ No newline at end of file From fa13f59d502956e6eec5bff1638c683c56c94dd0 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 22 Feb 2023 13:20:28 +0100 Subject: [PATCH 088/158] Make it possible to run arriveBy tests --- .../smoketest/AtlantaSmokeTest.java | 5 +-- .../smoketest/DenverSmokeTest.java | 6 +-- .../smoketest/HoustonSmokeTest.java | 16 ++++---- .../smoketest/PortlandSmokeTest.java | 11 +++-- .../smoketest/SeattleSmokeTest.java | 11 +++-- .../smoketest/SeptaSmokeTest.java | 10 ++--- .../opentripplanner/smoketest/SmokeTest.java | 12 +----- .../smoketest/util/SmokeTestRequest.java | 41 +++++++++++-------- 8 files changed, 53 insertions(+), 59 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index b6bba028f73..5b5f4a78d79 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -33,10 +33,9 @@ public class AtlantaSmokeTest { @Test public void regularRouteFromCentralAtlantaToPowderSprings() { + Set modes = Set.of("TRANSIT", "WALK"); SmokeTest.basicRouteTest( - nearGeorgiaStateStation, - powderSpringsInsideFlexZone1, - Set.of("TRANSIT", "WALK"), + new SmokeTestRequest(nearGeorgiaStateStation, powderSpringsInsideFlexZone1, modes), List.of("WALK", "SUBWAY", "WALK", "BUS", "WALK", "BUS", "WALK") ); } diff --git a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java index 4a65559bead..939e3743ded 100644 --- a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java @@ -5,6 +5,7 @@ import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.opentripplanner.framework.geometry.WgsCoordinate; +import org.opentripplanner.smoketest.util.SmokeTestRequest; /** * This smoke test expects an OTP installation running at localhost:8080 @@ -20,10 +21,9 @@ public class DenverSmokeTest { @Test public void routeFromSouthToNorth() { + Set modes = Set.of("TRANSIT", "WALK"); SmokeTest.basicRouteTest( - southBroadway, - twinLakes, - Set.of("TRANSIT", "WALK"), + new SmokeTestRequest(southBroadway, twinLakes, modes), List.of("WALK", "TRAM", "WALK", "BUS", "WALK") ); } diff --git a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java index 38586f491ca..c3166c4bbe8 100644 --- a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java @@ -5,6 +5,7 @@ import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.opentripplanner.framework.geometry.WgsCoordinate; +import org.opentripplanner.smoketest.util.SmokeTestRequest; /** * This smoke test expects an OTP installation running at localhost:8080 @@ -20,26 +21,27 @@ public class HoustonSmokeTest { @Test public void routeFromSouthToNorth() { + Set modes = Set.of("TRANSIT", "WALK"); SmokeTest.basicRouteTest( - galvestonRoad, - northLindale, - Set.of("TRANSIT", "WALK"), + new SmokeTestRequest(galvestonRoad, northLindale, modes), List.of("WALK", "BUS", "BUS", "WALK", "TRAM", "WALK") ); } @Test public void selectOnlyBusses() { + Set modes = Set.of("BUS", "WALK"); SmokeTest.basicRouteTest( - galvestonRoad, - northLindale, - Set.of("BUS", "WALK"), + new SmokeTestRequest(galvestonRoad, northLindale, modes), List.of("WALK", "BUS", "BUS", "WALK", "BUS", "WALK") ); } @Test public void bikeRoute() { - SmokeTest.basicRouteTest(galvestonRoad, northLindale, Set.of("BICYCLE"), List.of("BICYCLE")); + SmokeTest.basicRouteTest( + new SmokeTestRequest(galvestonRoad, northLindale, Set.of("BICYCLE")), + List.of("BICYCLE") + ); } } diff --git a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java index ba57403a603..3b5e521f9d1 100644 --- a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java @@ -5,6 +5,7 @@ import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.opentripplanner.framework.geometry.WgsCoordinate; +import org.opentripplanner.smoketest.util.SmokeTestRequest; @Tag("smoke-test") @Tag("portland") @@ -15,10 +16,9 @@ public class PortlandSmokeTest { @Test public void railRouteAcrossTheCity() { + Set modes = Set.of("TRAM", "WALK"); SmokeTest.basicRouteTest( - cennentenial, - hillside, - Set.of("TRAM", "WALK"), + new SmokeTestRequest(cennentenial, hillside, modes), List.of("WALK", "TRAM", "WALK") ); } @@ -29,10 +29,9 @@ public void railRouteAcrossTheCity() { */ @Test public void geofencingZone() { + Set modes = Set.of("SCOOTER_RENT", "WALK"); SmokeTest.basicRouteTest( - cennentenial, - hillside, - Set.of("SCOOTER_RENT", "WALK"), + new SmokeTestRequest(cennentenial, hillside, modes), List.of("WALK", "SCOOTER", "WALK") ); } diff --git a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java index 520df4010a1..5449aef563c 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java @@ -10,6 +10,7 @@ import org.junit.jupiter.api.Test; import org.opentripplanner.framework.geometry.WgsCoordinate; import org.opentripplanner.smoketest.util.GraphQLClient; +import org.opentripplanner.smoketest.util.SmokeTestRequest; @Tag("smoke-test") @Tag("seattle") @@ -23,20 +24,18 @@ public class SeattleSmokeTest { @Test public void acrossTheCity() { + Set modes = Set.of("TRANSIT", "WALK"); SmokeTest.basicRouteTest( - sodo, - clydeHill, - Set.of("TRANSIT", "WALK"), + new SmokeTestRequest(sodo, clydeHill, modes), List.of("WALK", "BUS", "WALK", "BUS", "WALK") ); } @Test public void flexAndTransit() { + Set modes = Set.of("WALK", "BUS", "FLEX", "FLEX_DIRECT", "FLEX_EGRESS", "FLEX_ACCESS"); SmokeTest.basicRouteTest( - boeingCreekPark, - ronaldBogPark, - Set.of("WALK", "BUS", "FLEX", "FLEX_DIRECT", "FLEX_EGRESS", "FLEX_ACCESS"), + new SmokeTestRequest(boeingCreekPark, ronaldBogPark, modes), List.of("BUS") ); } diff --git a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java index 44996371420..2546482e4f4 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java @@ -5,6 +5,7 @@ import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.opentripplanner.framework.geometry.WgsCoordinate; +import org.opentripplanner.smoketest.util.SmokeTestRequest; /** * This smoke test expects an OTP installation running at localhost:8080 @@ -21,10 +22,9 @@ public class SeptaSmokeTest { @Test public void routeFromAirportToNorthPhiladelphia() { + Set modes = Set.of("TRANSIT", "WALK"); SmokeTest.basicRouteTest( - airport, - stPetersCemetary, - Set.of("TRANSIT", "WALK"), + new SmokeTestRequest(airport, stPetersCemetary, modes), List.of("WALK", "RAIL", "RAIL", "WALK", "SUBWAY", "WALK") ); } @@ -42,9 +42,7 @@ public void bikeRentalStations() { @Test public void routeWithBikeRental() { SmokeTest.basicRouteTest( - pierceStreet, - templeUniversity, - Set.of("BICYCLE_RENT"), + new SmokeTestRequest(pierceStreet, templeUniversity, Set.of("BICYCLE_RENT")), List.of("WALK", "BICYCLE", "WALK") ); } diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 8530a321da6..727cb057d8c 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -15,11 +15,9 @@ import java.time.LocalDate; import java.time.temporal.TemporalAdjusters; import java.util.List; -import java.util.Set; import org.opentripplanner.api.json.JSONObjectMapperProvider; import org.opentripplanner.api.model.ApiItinerary; import org.opentripplanner.api.resource.DebugOutput; -import org.opentripplanner.framework.geometry.WgsCoordinate; import org.opentripplanner.routing.core.ItineraryFares; import org.opentripplanner.smoketest.util.GraphQLClient; import org.opentripplanner.smoketest.util.RestClient; @@ -91,14 +89,8 @@ static void assertThatItineraryHasModes( ); } - static void basicRouteTest( - WgsCoordinate start, - WgsCoordinate end, - Set modes, - List expectedModes - ) { - var request = new SmokeTestRequest(start, end, modes); - var otpResponse = RestClient.sendPlanRequest(request); + static void basicRouteTest(SmokeTestRequest req, List expectedModes) { + var otpResponse = RestClient.sendPlanRequest(req); var itineraries = otpResponse.getPlan().itineraries; assertTrue(itineraries.size() >= 1, "Expected to see some itineraries but got zero."); diff --git a/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java b/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java index 841660bb526..86ca08dd87f 100644 --- a/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java +++ b/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java @@ -1,30 +1,35 @@ package org.opentripplanner.smoketest.util; +import static java.util.Map.entry; + import java.time.Duration; import java.util.Collection; import java.util.Map; +import java.util.Set; import org.opentripplanner.framework.geometry.WgsCoordinate; import org.opentripplanner.smoketest.SmokeTest; -public record SmokeTestRequest(WgsCoordinate from, WgsCoordinate to, Collection modes) { +public record SmokeTestRequest( + WgsCoordinate from, + WgsCoordinate to, + Collection modes, + boolean arriveBy +) { + public SmokeTestRequest(WgsCoordinate from, WgsCoordinate to, Set modes) { + this(from, to, modes, false); + } + public Map toMap() { - return Map.of( - "fromPlace", - toString(from), - "toPlace", - toString(to), - "time", - "1:00pm", - "date", - SmokeTest.nextMonday().toString(), - "mode", - String.join(",", modes), - "showIntermediateStops", - "true", - "locale", - "en", - "searchWindow", - Long.toString(Duration.ofHours(2).toSeconds()) + return Map.ofEntries( + entry("fromPlace", toString(from)), + entry("toPlace", toString(to)), + entry("time", "1:00pm"), + entry("date", SmokeTest.nextMonday().toString()), + entry("mode", String.join(",", modes)), + entry("showIntermediateStops", "true"), + entry("locale", "en"), + entry("searchWindow", Long.toString(Duration.ofHours(2).toSeconds())), + entry("arriveBy", Boolean.toString(arriveBy)) ); } From e85d60b05d886581cd8d301a2f6edf7adfd84be9 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 22 Feb 2023 13:37:08 +0100 Subject: [PATCH 089/158] Add test for arrive by scooter rentals --- .../smoketest/PortlandSmokeTest.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java index 3b5e521f9d1..2cd9758e1cb 100644 --- a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java @@ -4,6 +4,8 @@ import java.util.Set; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import org.opentripplanner.framework.geometry.WgsCoordinate; import org.opentripplanner.smoketest.util.SmokeTestRequest; @@ -13,12 +15,12 @@ public class PortlandSmokeTest { WgsCoordinate cennentenial = new WgsCoordinate(45.504602, -122.4968719); WgsCoordinate hillside = new WgsCoordinate(45.5275, -122.7110); + WgsCoordinate piedmont = new WgsCoordinate(45.5746, -122.6697); @Test public void railRouteAcrossTheCity() { - Set modes = Set.of("TRAM", "WALK"); SmokeTest.basicRouteTest( - new SmokeTestRequest(cennentenial, hillside, modes), + new SmokeTestRequest(cennentenial, hillside, Set.of("TRAM", "WALK")), List.of("WALK", "TRAM", "WALK") ); } @@ -29,10 +31,18 @@ public void railRouteAcrossTheCity() { */ @Test public void geofencingZone() { - Set modes = Set.of("SCOOTER_RENT", "WALK"); SmokeTest.basicRouteTest( - new SmokeTestRequest(cennentenial, hillside, modes), + new SmokeTestRequest(cennentenial, hillside, Set.of("SCOOTER_RENT", "WALK")), List.of("WALK", "SCOOTER", "WALK") ); } + + @ParameterizedTest(name = "scooter rental with arriveBy={0}") + @ValueSource(booleans = { true, false }) + void scooterRent(boolean arriveBy) { + SmokeTest.basicRouteTest( + new SmokeTestRequest(cennentenial, piedmont, Set.of("SCOOTER_RENT", "WALK"), arriveBy), + List.of("WALK", "SCOOTER") + ); + } } From 6743ef28d5ca4c235a60f0b18fddb98367c3794c Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 22 Feb 2023 13:53:17 +0100 Subject: [PATCH 090/158] Remove duplicate unit tests --- .github/workflows/cibuild.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/cibuild.yml b/.github/workflows/cibuild.yml index 0a1b54dd59f..d5aa1b3b1a3 100644 --- a/.github/workflows/cibuild.yml +++ b/.github/workflows/cibuild.yml @@ -52,9 +52,6 @@ jobs: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: ${{ secrets.AWS_REGION }} - # Build and test deployment. - - name: Build and Test - run: mvn clean verify --batch-mode --show-version --update-snapshots -Dgpg.skip # Only prepare deploy files on push events to avoid duplicate pushes to s3 when a commit is # pushed to a branch with an open pull request. - name: Prepare build files for deployment to s3 From ff2ab38bbbfe21862241e7d0ab27f504a89ec7ae Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 2 Mar 2023 12:24:08 +0100 Subject: [PATCH 091/158] Revert to next Monday --- src/test/java/org/opentripplanner/smoketest/SmokeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 727cb057d8c..2d9a23fcbfd 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -59,7 +59,7 @@ public class SmokeTest { */ public static LocalDate nextMonday() { var today = LocalDate.now(); - return today.with(TemporalAdjusters.next(DayOfWeek.FRIDAY)); + return today.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); } public static void assertThatThereAreVehicleRentalStations() { From 3faf86f75832bccdeaae4e2010fbf1dab3c753fa Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 2 Mar 2023 14:50:54 +0100 Subject: [PATCH 092/158] Test geofencing zones with arriveBy=true --- .../org/opentripplanner/smoketest/PortlandSmokeTest.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java index 2cd9758e1cb..5aa8c376d60 100644 --- a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java @@ -29,10 +29,11 @@ public void railRouteAcrossTheCity() { * Checks that a scooter rental finishes at the edge of the business area and is continued on * foot rather than scootering all the way to the destination. */ - @Test - public void geofencingZone() { + @ParameterizedTest(name = "scooter rental with arriveBy={0}") + @ValueSource(booleans = { true, false }) + public void geofencingZone(boolean arriveBy) { SmokeTest.basicRouteTest( - new SmokeTestRequest(cennentenial, hillside, Set.of("SCOOTER_RENT", "WALK")), + new SmokeTestRequest(cennentenial, hillside, Set.of("SCOOTER_RENT", "WALK"), arriveBy), List.of("WALK", "SCOOTER", "WALK") ); } From dae4b2df4df0b8ada1eca420ce99ff86b9169588 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 22 Mar 2023 17:06:35 +0100 Subject: [PATCH 093/158] Flesh out smoke test documentation --- smoke-tests/Readme.md | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/smoke-tests/Readme.md b/smoke-tests/Readme.md index ad91f10f302..f76c2aca5e6 100644 --- a/smoke-tests/Readme.md +++ b/smoke-tests/Readme.md @@ -1,9 +1,29 @@ ## IBI Group OTP Smoke Tests -This folder contains scripts and configuration files for running an OTP instance that can then be -used to run smoke tests against. These tests are intended as a last sanity check when we merge -upstream changes as these merges tend to be very large. It reduces the burden on the -reviewer and increases the confidence that the upstream merge won't break anything. +As of 2023 upstream OTP has over 3000 unit tests but is intentionally light on integration tests +as these tend to be brittle and hard to maintain over time. They also don't supply the desired +granularity to figure out a problem during development. + +For this reason this folder contains scripts and configuration files for running an OTP instance for +each OTP2 deployment that can then be used to run smoke tests against. +These tests are intended as a last sanity check when we merge upstream changes because these tend to +be very large. +It reduces the burden on the reviewer and increases the confidence that the upstream merge won't +break anything. + +### Details + +Each smoke test follows these steps: + +1. Takes the latest upstream code +2. Downloads up-to-date GTFS and OSM files +3. Builds a complete graph +4. Starts an OTP instance +5. Possibly configures realtime updates for transit and vehicle rental +6. Sends API requests against OTP and asserts that the result is within expected parameters + +Since the input data is variable, there is some maintenance involved because expected results can +change over time. However, the upside is that catastrophic data errors are also caught early on. ### Commands From 20d66725aae134e87e44e5d18e05a2ad829989e2 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 22 Mar 2023 17:12:48 +0100 Subject: [PATCH 094/158] Add screenshots --- smoke-tests/Readme.md | 7 +++++++ smoke-tests/smoke-tests.png | Bin 0 -> 1305824 bytes 2 files changed, 7 insertions(+) create mode 100644 smoke-tests/smoke-tests.png diff --git a/smoke-tests/Readme.md b/smoke-tests/Readme.md index f76c2aca5e6..e01bce52bf6 100644 --- a/smoke-tests/Readme.md +++ b/smoke-tests/Readme.md @@ -25,6 +25,13 @@ Each smoke test follows these steps: Since the input data is variable, there is some maintenance involved because expected results can change over time. However, the upside is that catastrophic data errors are also caught early on. +### Example results + +Here we see a screenshot of a typical smoke test run with the current locations (as of 2023) visible +in the left panel. + +![Smoke tests screnshot](smoke-tests.png) + ### Commands If you want to prepare an OTP instance for the smoke tests, run the following commands to build the diff --git a/smoke-tests/smoke-tests.png b/smoke-tests/smoke-tests.png new file mode 100644 index 0000000000000000000000000000000000000000..6f24b558d62f54ec2f514b0f4b83cd0a33b47f07 GIT binary patch literal 1305824 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

|fS49l5!_0e47ek2^K4s}#9;GSt1Ca4W25ls(? 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 z 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

rOrH+wo(9Wmv8KyU*68G{{Rj?*nnx+xodoqb4_v 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 KWXgPU0FP++j+gUveu(pzd%I@ykn427 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 ru`7uL9F~(UH^tx-ulT{u6+awXU8! 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

S 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 literal 0 HcmV?d00001 From 6a6e6aa4faee695daf5293d78a385043e1e57e34 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 11 Apr 2023 14:22:04 +0200 Subject: [PATCH 095/158] Update smoke test --- smoke-tests/Makefile | 2 +- smoke-tests/denver/build-config.json | 9 +++++++++ .../opentripplanner/smoketest/PortlandSmokeTest.java | 10 ++++++---- 3 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 smoke-tests/denver/build-config.json diff --git a/smoke-tests/Makefile b/smoke-tests/Makefile index aaa6f1dea60..0cc9f3e8f13 100644 --- a/smoke-tests/Makefile +++ b/smoke-tests/Makefile @@ -19,7 +19,7 @@ denver/osm.pbf: ${CURL} http://osm.ibi-transit.com/vex/39.65857056750545,-105.0567626953125,39.8578370694061,-104.86862182617188.pbf -o $@ denver/gtfs.zip: - ${CURL} https://www.rtd-denver.com/files/gtfs/google_transit.zip -o $@ + echo "Downloaded by OTP" septa/osm.pbf: ${CURL} http://osm.ibi-transit.com/vex/39.85441086976069,-75.29136657714844,40.0433862595006,-75.06202697753906.pbf -o $@ diff --git a/smoke-tests/denver/build-config.json b/smoke-tests/denver/build-config.json new file mode 100644 index 00000000000..f1ccbb9197b --- /dev/null +++ b/smoke-tests/denver/build-config.json @@ -0,0 +1,9 @@ +{ + "transitFeeds" : [ + { + "type" : "gtfs", + "feedId" : "denver", + "source" : "https://www.rtd-denver.com/files/gtfs/google_transit.zip" + } + ] +} diff --git a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java index 5aa8c376d60..a7ca7c3611b 100644 --- a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java @@ -14,13 +14,15 @@ public class PortlandSmokeTest { WgsCoordinate cennentenial = new WgsCoordinate(45.504602, -122.4968719); - WgsCoordinate hillside = new WgsCoordinate(45.5275, -122.7110); + WgsCoordinate hazelwood = new WgsCoordinate(45.52463, -122.5583); WgsCoordinate piedmont = new WgsCoordinate(45.5746, -122.6697); @Test - public void railRouteAcrossTheCity() { + public void railTrip() { + // this used to be across the city by since the train is interrupter in April '23 this is a + // much shorter trip SmokeTest.basicRouteTest( - new SmokeTestRequest(cennentenial, hillside, Set.of("TRAM", "WALK")), + new SmokeTestRequest(cennentenial, hazelwood, Set.of("TRAM", "WALK")), List.of("WALK", "TRAM", "WALK") ); } @@ -33,7 +35,7 @@ public void railRouteAcrossTheCity() { @ValueSource(booleans = { true, false }) public void geofencingZone(boolean arriveBy) { SmokeTest.basicRouteTest( - new SmokeTestRequest(cennentenial, hillside, Set.of("SCOOTER_RENT", "WALK"), arriveBy), + new SmokeTestRequest(cennentenial, hazelwood, Set.of("SCOOTER_RENT", "WALK"), arriveBy), List.of("WALK", "SCOOTER", "WALK") ); } From efb34f22dd0d2b955dc2c9c0f2b5ad1926cee101 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 11 Apr 2023 14:24:04 +0200 Subject: [PATCH 096/158] Always have OTP download the GTFS --- smoke-tests/Makefile | 20 +------------------- smoke-tests/denver/router-config.json | 2 +- smoke-tests/houston/build-config.json | 9 ++++++++- 3 files changed, 10 insertions(+), 21 deletions(-) diff --git a/smoke-tests/Makefile b/smoke-tests/Makefile index 0cc9f3e8f13..adc5ea8fbcd 100644 --- a/smoke-tests/Makefile +++ b/smoke-tests/Makefile @@ -6,40 +6,22 @@ otp.jar: atlanta/osm.pbf: ${CURL} http://osm.ibi-transit.com/vex/33.654066160697056,-84.759521484375,33.994611584814606,-84.30976867675781.pbf -o $@ -atlanta/gtfs.zip: - echo "Downloaded by OTP" - houston/osm.pbf: ${CURL} http://osm.ibi-transit.com/vex/29.65285233056443,-95.48492431640624,29.857914952075095,-95.22193908691406.pbf -o $@ -houston/gtfs.zip: - ${CURL} https://ridemetro-api.ibi-transit.com/download/liveGTFS.zip -o $@ - denver/osm.pbf: ${CURL} http://osm.ibi-transit.com/vex/39.65857056750545,-105.0567626953125,39.8578370694061,-104.86862182617188.pbf -o $@ -denver/gtfs.zip: - echo "Downloaded by OTP" - septa/osm.pbf: ${CURL} http://osm.ibi-transit.com/vex/39.85441086976069,-75.29136657714844,40.0433862595006,-75.06202697753906.pbf -o $@ -septa/gtfs.zip: - echo "Downloaded by OTP" - portland/osm.pbf: ${CURL} http://osm.ibi-transit.com/vex/45.424388,-122.885443,45.684746,-122.44084.pbf -o $@ -portland/gtfs.zip: - echo "Downloaded by OTP" - seattle/osm.pbf: ${CURL} http://osm.ibi-transit.com/vex/47.481002,-122.459681,47.734124,-122.224433.pbf -o $@ -seattle/gtfs.zip: - echo "Downloaded by OTP" - -build-%: otp.jar %/osm.pbf %/gtfs.zip +build-%: otp.jar %/osm.pbf java -Xmx6G -jar otp.jar --build --save $* run-%: otp.jar diff --git a/smoke-tests/denver/router-config.json b/smoke-tests/denver/router-config.json index b8dbc242f51..ed80cb617b2 100644 --- a/smoke-tests/denver/router-config.json +++ b/smoke-tests/denver/router-config.json @@ -3,7 +3,7 @@ { "type": "vehicle-positions", "url": "https://www.rtd-denver.com/files/gtfs-rt/VehiclePosition.pb", - "feedId": "1", + "feedId": "denver", "frequencySec": 60 } ] diff --git a/smoke-tests/houston/build-config.json b/smoke-tests/houston/build-config.json index a0968317469..00c16476c95 100644 --- a/smoke-tests/houston/build-config.json +++ b/smoke-tests/houston/build-config.json @@ -5,5 +5,12 @@ }, "osmDefaults": { "osmTagMapping": "houston" - } + }, + "transitFeeds": [ + { + "type": "gtfs", + "feedId": "ridemetro", + "source": "https://ridemetro-api.ibi-transit.com/download/liveGTFS.zip" + } + ] } From 38069e1d091cb978fbcfe88dab66df83cffd994f Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 11 Apr 2023 14:49:22 +0200 Subject: [PATCH 097/158] Increase sleep in Portland --- .github/workflows/smoke-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index e6a7787e01d..6595eba7be0 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -29,7 +29,7 @@ jobs: sleep: 15 - name: portland # have to sleep longer since computing geofencing zones takes a while - sleep: 70 + sleep: 80 steps: - uses: actions/checkout@v3 From 096e6fd5c1bca57907ccf8f99b1ba5965db0ae2d Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 11 Apr 2023 14:59:20 +0200 Subject: [PATCH 098/158] Update destination of scooter test --- .../org/opentripplanner/smoketest/PortlandSmokeTest.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java index a7ca7c3611b..3e50dfdcf7a 100644 --- a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java @@ -16,6 +16,7 @@ public class PortlandSmokeTest { WgsCoordinate cennentenial = new WgsCoordinate(45.504602, -122.4968719); WgsCoordinate hazelwood = new WgsCoordinate(45.52463, -122.5583); WgsCoordinate piedmont = new WgsCoordinate(45.5746, -122.6697); + WgsCoordinate mountTaborPark = new WgsCoordinate(45.511399,-122.594203); @Test public void railTrip() { @@ -28,14 +29,14 @@ public void railTrip() { } /** - * Checks that a scooter rental finishes at the edge of the business area and is continued on + * Checks that a scooter rental finishes at the edge of the park area and is continued on * foot rather than scootering all the way to the destination. */ @ParameterizedTest(name = "scooter rental with arriveBy={0}") @ValueSource(booleans = { true, false }) public void geofencingZone(boolean arriveBy) { SmokeTest.basicRouteTest( - new SmokeTestRequest(cennentenial, hazelwood, Set.of("SCOOTER_RENT", "WALK"), arriveBy), + new SmokeTestRequest(cennentenial, mountTaborPark, Set.of("SCOOTER_RENT", "WALK"), arriveBy), List.of("WALK", "SCOOTER", "WALK") ); } From 42f4278fd963c25bd5dfa6665c92fa63c722ce35 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 11 Apr 2023 15:03:23 +0200 Subject: [PATCH 099/158] Fix formatting --- .../java/org/opentripplanner/smoketest/PortlandSmokeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java index 3e50dfdcf7a..9dcfda6a775 100644 --- a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java @@ -16,7 +16,7 @@ public class PortlandSmokeTest { WgsCoordinate cennentenial = new WgsCoordinate(45.504602, -122.4968719); WgsCoordinate hazelwood = new WgsCoordinate(45.52463, -122.5583); WgsCoordinate piedmont = new WgsCoordinate(45.5746, -122.6697); - WgsCoordinate mountTaborPark = new WgsCoordinate(45.511399,-122.594203); + WgsCoordinate mountTaborPark = new WgsCoordinate(45.511399, -122.594203); @Test public void railTrip() { From 0f4f6026b801baaab907f340fa2be49d5b552276 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 17 Apr 2023 15:27:43 +0200 Subject: [PATCH 100/158] Don't plan too far into the future --- src/test/java/org/opentripplanner/smoketest/SmokeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 2d9a23fcbfd..6538076bb75 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -59,7 +59,7 @@ public class SmokeTest { */ public static LocalDate nextMonday() { var today = LocalDate.now(); - return today.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); + return today.with(TemporalAdjusters.next(DayOfWeek.TUESDAY)); } public static void assertThatThereAreVehicleRentalStations() { From f592a024ad32889442cb40328d15849507b5ea1e Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 2 May 2023 17:43:10 +0200 Subject: [PATCH 101/158] Update flex feed URLs --- smoke-tests/seattle/build-config.json | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/smoke-tests/seattle/build-config.json b/smoke-tests/seattle/build-config.json index 92abaaf7dbf..7ae045caa8d 100644 --- a/smoke-tests/seattle/build-config.json +++ b/smoke-tests/seattle/build-config.json @@ -4,13 +4,23 @@ "transitFeeds" : [ { "type" : "gtfs", - "feedId" : "soundgenerations", - "source" : "https://data.trilliumtransit.com/gtfs/soundgenerations-wa-us/soundgenerations-wa-us--flex-v2.zip" + "feedId" : "hydeshuttle", + "source" : "https://data.trilliumtransit.com/gtfs/soundgenerations-wa-us/soundgenerations-wa-us-hyde--flex-v2.zip" }, { "type" : "gtfs", - "feedId" : "homage", - "source" : "https://data.trilliumtransit.com/gtfs/homage-wa-us/homage-wa-us--flex-v2.zip" + "feedId" : "volunteer", + "source" : "https://data.trilliumtransit.com/gtfs/soundgenerations-wa-us/soundgenerations-wa-us-volunteer--flex-v2.zip" + }, + { + "type" : "gtfs", + "feedId" : "payyourpal", + "source" : "https://data.trilliumtransit.com/gtfs/homage-wa-us/homage-wa-us-payyourpal--flex-v2.zip" + }, + { + "type" : "gtfs", + "feedId" : "tap", + "source" : "https://data.trilliumtransit.com/gtfs/homage-wa-us/homage-wa-us-tap--flex-v2.zip" }, { "type" : "gtfs", From 3fb8eb44e075b7381f73c76f0ae058e2c0b19b73 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 8 May 2023 15:33:41 +0200 Subject: [PATCH 102/158] Fix import --- src/test/java/org/opentripplanner/smoketest/SmokeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 6538076bb75..f49543e23f6 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -18,7 +18,7 @@ import org.opentripplanner.api.json.JSONObjectMapperProvider; import org.opentripplanner.api.model.ApiItinerary; import org.opentripplanner.api.resource.DebugOutput; -import org.opentripplanner.routing.core.ItineraryFares; +import org.opentripplanner.model.fare.ItineraryFares; import org.opentripplanner.smoketest.util.GraphQLClient; import org.opentripplanner.smoketest.util.RestClient; import org.opentripplanner.smoketest.util.SmokeTestRequest; From ba98ded4bc761a18ddcb96f7e8c789ac438e3288 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 23 May 2023 18:50:51 +0200 Subject: [PATCH 103/158] Add null check --- src/main/java/org/opentripplanner/astar/AStar.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/org/opentripplanner/astar/AStar.java b/src/main/java/org/opentripplanner/astar/AStar.java index 928f4154eb1..469f2aa6c1a 100644 --- a/src/main/java/org/opentripplanner/astar/AStar.java +++ b/src/main/java/org/opentripplanner/astar/AStar.java @@ -142,6 +142,9 @@ private boolean iterate() { // Iterate over traversal results. When an edge leads nowhere (as indicated by // returning null), the iteration is over. var states = edge.traverse(u); + if (states == null) { + throw new IllegalStateException("%s returned null when traversing".formatted(edge)); + } for (var v : states) { // Could be: for (State v : traverseEdge...) From 154d7afb21274899d11c0d186f1e58ee2ff93f0b Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 31 May 2023 11:04:53 +0200 Subject: [PATCH 104/158] Use next thursday --- smoke-tests/seattle/router-config.json | 3 --- src/test/java/org/opentripplanner/smoketest/SmokeTest.java | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/smoke-tests/seattle/router-config.json b/smoke-tests/seattle/router-config.json index 9462236e608..d5277f58aec 100644 --- a/smoke-tests/seattle/router-config.json +++ b/smoke-tests/seattle/router-config.json @@ -4,21 +4,18 @@ "type": "stop-time-updater", "frequencySec": 30, "url": "https://s3.amazonaws.com/kcm-alerts-realtime-prod/tripupdates.pb", - "sourceType": "gtfs-http", "feedId": "kcm" }, { "type": "real-time-alerts", "frequencySec": 30, "url": "https://s3.amazonaws.com/kcm-alerts-realtime-prod/alerts.pb", -"sourceType": "gtfs-http", "feedId": "kcm" }, { "type": "vehicle-positions", "frequencySec": 30, "url": "https://s3.amazonaws.com/kcm-alerts-realtime-prod/vehiclepositions.pb", -"sourceType": "gtfs-http", "feedId": "kcm" } ] diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index f49543e23f6..0d004037334 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -59,7 +59,7 @@ public class SmokeTest { */ public static LocalDate nextMonday() { var today = LocalDate.now(); - return today.with(TemporalAdjusters.next(DayOfWeek.TUESDAY)); + return today.with(TemporalAdjusters.next(DayOfWeek.THURSDAY)); } public static void assertThatThereAreVehicleRentalStations() { From cd12957a53fa62ee61fc91784609e66da62c8a5a Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 29 Jun 2023 16:09:16 +0200 Subject: [PATCH 105/158] Make Maven output a bit nicer --- .github/workflows/smoke-tests.yml | 4 ++-- smoke-tests/denver/otp-config.json | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 6595eba7be0..79a50b4c81b 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -42,7 +42,7 @@ jobs: - name: Build jar file, compile tests run: | - mvn --batch-mode clean package -Dmaven.test.skip -P prettierSkip + mvn --no-transfer-progress clean package -Dmaven.test.skip -P prettierSkip mvn org.apache.maven.plugins:maven-compiler-plugin:testCompile - name: Cache OSM files @@ -67,7 +67,7 @@ jobs: # run the actual smoke tests # we run surefire:test in order to not recompile the tests for each city - mvn surefire:test -Djunit.tags.included="${{ matrix.locations.name }}" -Djunit.tags.excluded="" -P prettierSkip + mvn --no-transfer-progress surefire:test -Djunit.tags.included="${{ matrix.locations.name }}" -Djunit.tags.excluded="" -P prettierSkip # shutting down the OTP instance running in the background (via make) killall make \ No newline at end of file diff --git a/smoke-tests/denver/otp-config.json b/smoke-tests/denver/otp-config.json index 084070b312c..7b0d1828144 100644 --- a/smoke-tests/denver/otp-config.json +++ b/smoke-tests/denver/otp-config.json @@ -1,5 +1,4 @@ { "otpFeatures" : { - "SandboxAPILegacyGraphQLApi": true } } \ No newline at end of file From 3a01fdc6f4a56a675794012b6699931d2b2e608b Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 29 Jun 2023 16:16:14 +0200 Subject: [PATCH 106/158] Add Seattle vehicle positions test --- smoke-tests/seattle/otp-config.json | 1 - smoke-tests/seattle/router-config.json | 6 +++--- .../org/opentripplanner/smoketest/SeattleSmokeTest.java | 5 +++++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/smoke-tests/seattle/otp-config.json b/smoke-tests/seattle/otp-config.json index 1625735b8bd..5c8d1d0d92a 100644 --- a/smoke-tests/seattle/otp-config.json +++ b/smoke-tests/seattle/otp-config.json @@ -1,6 +1,5 @@ { "otpFeatures" : { - "SandboxAPILegacyGraphQLApi": true, "FlexRouting": true } } \ No newline at end of file diff --git a/smoke-tests/seattle/router-config.json b/smoke-tests/seattle/router-config.json index d5277f58aec..87e991fbd52 100644 --- a/smoke-tests/seattle/router-config.json +++ b/smoke-tests/seattle/router-config.json @@ -2,19 +2,19 @@ "updaters": [ { "type": "stop-time-updater", - "frequencySec": 30, + "frequency": "30s", "url": "https://s3.amazonaws.com/kcm-alerts-realtime-prod/tripupdates.pb", "feedId": "kcm" }, { "type": "real-time-alerts", - "frequencySec": 30, + "frequency": "30s", "url": "https://s3.amazonaws.com/kcm-alerts-realtime-prod/alerts.pb", "feedId": "kcm" }, { "type": "vehicle-positions", - "frequencySec": 30, + "frequency": "30s", "url": "https://s3.amazonaws.com/kcm-alerts-realtime-prod/vehiclepositions.pb", "feedId": "kcm" } diff --git a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java index 5449aef563c..c9139eec987 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java @@ -51,4 +51,9 @@ public void monorailRoute() { assertEquals(Set.of("MONORAIL", "TRAM", "FERRY", "BUS"), modes); } + + @Test + public void vehiclePositions() { + SmokeTest.assertThereArePatternsWithVehiclePositions(); + } } From f7f8c526700b08ce8d281e1137d65f810c49b12b Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 8 Aug 2023 16:15:52 +0200 Subject: [PATCH 107/158] Simplify test --- src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java index 2546482e4f4..af04eda6e53 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java @@ -25,7 +25,7 @@ public void routeFromAirportToNorthPhiladelphia() { Set modes = Set.of("TRANSIT", "WALK"); SmokeTest.basicRouteTest( new SmokeTestRequest(airport, stPetersCemetary, modes), - List.of("WALK", "RAIL", "RAIL", "WALK", "SUBWAY", "WALK") + List.of("WALK", "RAIL", "WALK", "SUBWAY", "WALK") ); } From f746c38d5e2089d7d1d95cfa34ae9cedff6ac8b4 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 9 Aug 2023 17:25:27 +0200 Subject: [PATCH 108/158] Use external OTP client for smoke tests --- pom.xml | 6 ++ .../smoketest/AtlantaSmokeTest.java | 28 +++++---- .../smoketest/DenverSmokeTest.java | 11 ++-- .../smoketest/HoustonSmokeTest.java | 17 +++-- .../smoketest/PortlandSmokeTest.java | 20 +++--- .../smoketest/SeattleSmokeTest.java | 22 ++++--- .../smoketest/SeptaSmokeTest.java | 19 +++--- .../opentripplanner/smoketest/SmokeTest.java | 31 +++++++--- .../smoketest/util/RestClient.java | 62 ------------------- .../smoketest/util/SmokeTestRequest.java | 34 ++-------- 10 files changed, 106 insertions(+), 144 deletions(-) delete mode 100644 src/test/java/org/opentripplanner/smoketest/util/RestClient.java diff --git a/pom.xml b/pom.xml index 67420ed48bc..4a6a9d4e7e3 100644 --- a/pom.xml +++ b/pom.xml @@ -1008,6 +1008,12 @@ 1.23.0 test + + org.opentripplanner + otp-client + 0.0.4 + test + diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index 5b5f4a78d79..09ef914bbf7 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -1,14 +1,17 @@ package org.opentripplanner.smoketest; import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.opentripplanner.client.model.RequestMode.FLEX_EGRESS; +import static org.opentripplanner.client.model.RequestMode.TRANSIT; +import static org.opentripplanner.client.model.RequestMode.WALK; import static org.opentripplanner.smoketest.SmokeTest.assertThatItineraryHasModes; +import static org.opentripplanner.smoketest.SmokeTest.basicRouteTest; import java.util.List; import java.util.Set; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; -import org.opentripplanner.framework.geometry.WgsCoordinate; -import org.opentripplanner.smoketest.util.RestClient; +import org.opentripplanner.client.model.Coordinate; import org.opentripplanner.smoketest.util.SmokeTestRequest; /** @@ -25,15 +28,15 @@ @Tag("atlanta") public class AtlantaSmokeTest { - WgsCoordinate nearGeorgiaStateStation = new WgsCoordinate(33.74139944890028, -84.38607215881348); - WgsCoordinate powderSpringsInsideFlexZone1 = new WgsCoordinate( + Coordinate nearGeorgiaStateStation = new Coordinate(33.74139944890028, -84.38607215881348); + Coordinate powderSpringsInsideFlexZone1 = new Coordinate( 33.86916840022388, -84.66315507888794 ); @Test public void regularRouteFromCentralAtlantaToPowderSprings() { - Set modes = Set.of("TRANSIT", "WALK"); + var modes = Set.of(TRANSIT, WALK); SmokeTest.basicRouteTest( new SmokeTestRequest(nearGeorgiaStateStation, powderSpringsInsideFlexZone1, modes), List.of("WALK", "SUBWAY", "WALK", "BUS", "WALK", "BUS", "WALK") @@ -42,27 +45,26 @@ public void regularRouteFromCentralAtlantaToPowderSprings() { @Test public void flexRouteFromCentralAtlantaToPowderSprings() { - var params = new SmokeTestRequest( + var req = new SmokeTestRequest( nearGeorgiaStateStation, powderSpringsInsideFlexZone1, - Set.of("FLEX_EGRESS", "WALK", "TRANSIT") + Set.of(FLEX_EGRESS, WALK, TRANSIT) ); - var otpResponse = RestClient.sendPlanRequest(params); - var itineraries = otpResponse.getPlan().itineraries; - - assertTrue(itineraries.size() > 0); var expectedModes = List.of("WALK", "SUBWAY", "WALK", "BUS", "WALK", "BUS"); + var plan = basicRouteTest(req, expectedModes); + var itineraries = plan.itineraries(); + assertThatItineraryHasModes(itineraries, expectedModes); var transitLegs = itineraries .stream() - .flatMap(i -> i.legs.stream().filter(l -> l.transitLeg)) + .flatMap(i -> i.legs().stream().filter(l -> l.route() != null)) .toList(); var usesZone1Route = transitLegs .stream() - .map(l -> l.routeShortName) + .map(l -> l.route().shortName()) .anyMatch(name -> name.equals("Zone 1")); assertTrue(usesZone1Route); diff --git a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java index 939e3743ded..ea8a92402a4 100644 --- a/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/DenverSmokeTest.java @@ -1,10 +1,13 @@ package org.opentripplanner.smoketest; +import static org.opentripplanner.client.model.RequestMode.TRANSIT; +import static org.opentripplanner.client.model.RequestMode.WALK; + import java.util.List; import java.util.Set; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; -import org.opentripplanner.framework.geometry.WgsCoordinate; +import org.opentripplanner.client.model.Coordinate; import org.opentripplanner.smoketest.util.SmokeTestRequest; /** @@ -16,12 +19,12 @@ @Tag("denver") public class DenverSmokeTest { - WgsCoordinate southBroadway = new WgsCoordinate(39.7020, -104.9866); - WgsCoordinate twinLakes = new WgsCoordinate(39.8232, -105.0055); + Coordinate southBroadway = new Coordinate(39.7020, -104.9866); + Coordinate twinLakes = new Coordinate(39.8232, -105.0055); @Test public void routeFromSouthToNorth() { - Set modes = Set.of("TRANSIT", "WALK"); + var modes = Set.of(TRANSIT, WALK); SmokeTest.basicRouteTest( new SmokeTestRequest(southBroadway, twinLakes, modes), List.of("WALK", "TRAM", "WALK", "BUS", "WALK") diff --git a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java index c3166c4bbe8..1be6c8fd9ff 100644 --- a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java @@ -1,10 +1,15 @@ package org.opentripplanner.smoketest; +import static org.opentripplanner.client.model.RequestMode.BICYCLE; +import static org.opentripplanner.client.model.RequestMode.BUS; +import static org.opentripplanner.client.model.RequestMode.TRANSIT; +import static org.opentripplanner.client.model.RequestMode.WALK; + import java.util.List; import java.util.Set; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; -import org.opentripplanner.framework.geometry.WgsCoordinate; +import org.opentripplanner.client.model.Coordinate; import org.opentripplanner.smoketest.util.SmokeTestRequest; /** @@ -16,12 +21,12 @@ @Tag("houston") public class HoustonSmokeTest { - WgsCoordinate galvestonRoad = new WgsCoordinate(29.6598, -95.2342); - WgsCoordinate northLindale = new WgsCoordinate(29.8158, -95.3697); + Coordinate galvestonRoad = new Coordinate(29.6598, -95.2342); + Coordinate northLindale = new Coordinate(29.8158, -95.3697); @Test public void routeFromSouthToNorth() { - Set modes = Set.of("TRANSIT", "WALK"); + var modes = Set.of(TRANSIT, WALK); SmokeTest.basicRouteTest( new SmokeTestRequest(galvestonRoad, northLindale, modes), List.of("WALK", "BUS", "BUS", "WALK", "TRAM", "WALK") @@ -30,7 +35,7 @@ public void routeFromSouthToNorth() { @Test public void selectOnlyBusses() { - Set modes = Set.of("BUS", "WALK"); + var modes = Set.of(BUS, WALK); SmokeTest.basicRouteTest( new SmokeTestRequest(galvestonRoad, northLindale, modes), List.of("WALK", "BUS", "BUS", "WALK", "BUS", "WALK") @@ -40,7 +45,7 @@ public void selectOnlyBusses() { @Test public void bikeRoute() { SmokeTest.basicRouteTest( - new SmokeTestRequest(galvestonRoad, northLindale, Set.of("BICYCLE")), + new SmokeTestRequest(galvestonRoad, northLindale, Set.of(BICYCLE)), List.of("BICYCLE") ); } diff --git a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java index 9dcfda6a775..840c8922424 100644 --- a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java @@ -1,29 +1,33 @@ package org.opentripplanner.smoketest; +import static org.opentripplanner.client.model.RequestMode.SCOOTER_RENT; +import static org.opentripplanner.client.model.RequestMode.TRAM; +import static org.opentripplanner.client.model.RequestMode.WALK; + import java.util.List; import java.util.Set; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; -import org.opentripplanner.framework.geometry.WgsCoordinate; +import org.opentripplanner.client.model.Coordinate; import org.opentripplanner.smoketest.util.SmokeTestRequest; @Tag("smoke-test") @Tag("portland") public class PortlandSmokeTest { - WgsCoordinate cennentenial = new WgsCoordinate(45.504602, -122.4968719); - WgsCoordinate hazelwood = new WgsCoordinate(45.52463, -122.5583); - WgsCoordinate piedmont = new WgsCoordinate(45.5746, -122.6697); - WgsCoordinate mountTaborPark = new WgsCoordinate(45.511399, -122.594203); + Coordinate cennentenial = new Coordinate(45.504602, -122.4968719); + Coordinate hazelwood = new Coordinate(45.52463, -122.5583); + Coordinate piedmont = new Coordinate(45.5746, -122.6697); + Coordinate mountTaborPark = new Coordinate(45.511399, -122.594203); @Test public void railTrip() { // this used to be across the city by since the train is interrupter in April '23 this is a // much shorter trip SmokeTest.basicRouteTest( - new SmokeTestRequest(cennentenial, hazelwood, Set.of("TRAM", "WALK")), + new SmokeTestRequest(cennentenial, hazelwood, Set.of(TRAM, WALK)), List.of("WALK", "TRAM", "WALK") ); } @@ -36,7 +40,7 @@ public void railTrip() { @ValueSource(booleans = { true, false }) public void geofencingZone(boolean arriveBy) { SmokeTest.basicRouteTest( - new SmokeTestRequest(cennentenial, mountTaborPark, Set.of("SCOOTER_RENT", "WALK"), arriveBy), + new SmokeTestRequest(cennentenial, mountTaborPark, Set.of(SCOOTER_RENT, WALK), arriveBy), List.of("WALK", "SCOOTER", "WALK") ); } @@ -45,7 +49,7 @@ public void geofencingZone(boolean arriveBy) { @ValueSource(booleans = { true, false }) void scooterRent(boolean arriveBy) { SmokeTest.basicRouteTest( - new SmokeTestRequest(cennentenial, piedmont, Set.of("SCOOTER_RENT", "WALK"), arriveBy), + new SmokeTestRequest(cennentenial, piedmont, Set.of(SCOOTER_RENT, WALK), arriveBy), List.of("WALK", "SCOOTER") ); } diff --git a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java index c9139eec987..6565fb8c70c 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java @@ -1,14 +1,22 @@ package org.opentripplanner.smoketest; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.opentripplanner.client.model.RequestMode.BUS; +import static org.opentripplanner.client.model.RequestMode.FLEX_ACCESS; +import static org.opentripplanner.client.model.RequestMode.FLEX_DIRECT; +import static org.opentripplanner.client.model.RequestMode.FLEX_EGRESS; +import static org.opentripplanner.client.model.RequestMode.TRANSIT; +import static org.opentripplanner.client.model.RequestMode.WALK; +import java.io.IOException; import java.util.List; import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; -import org.opentripplanner.framework.geometry.WgsCoordinate; +import org.opentripplanner.client.model.Coordinate; +import org.opentripplanner.client.model.RequestMode; import org.opentripplanner.smoketest.util.GraphQLClient; import org.opentripplanner.smoketest.util.SmokeTestRequest; @@ -16,15 +24,15 @@ @Tag("seattle") public class SeattleSmokeTest { - WgsCoordinate sodo = new WgsCoordinate(47.5811, -122.3290); - WgsCoordinate clydeHill = new WgsCoordinate(47.6316, -122.2173); + Coordinate sodo = new Coordinate(47.5811, -122.3290); + Coordinate clydeHill = new Coordinate(47.6316, -122.2173); - WgsCoordinate boeingCreekPark = new WgsCoordinate(47.755872, -122.361645); - WgsCoordinate ronaldBogPark = new WgsCoordinate(47.75601664, -122.33141); + Coordinate boeingCreekPark = new Coordinate(47.755872, -122.361645); + Coordinate ronaldBogPark = new Coordinate(47.75601664, -122.33141); @Test public void acrossTheCity() { - Set modes = Set.of("TRANSIT", "WALK"); + var modes = Set.of(TRANSIT, WALK); SmokeTest.basicRouteTest( new SmokeTestRequest(sodo, clydeHill, modes), List.of("WALK", "BUS", "WALK", "BUS", "WALK") @@ -33,7 +41,7 @@ public void acrossTheCity() { @Test public void flexAndTransit() { - Set modes = Set.of("WALK", "BUS", "FLEX", "FLEX_DIRECT", "FLEX_EGRESS", "FLEX_ACCESS"); + var modes = Set.of(WALK, BUS, FLEX_DIRECT, FLEX_EGRESS, FLEX_ACCESS); SmokeTest.basicRouteTest( new SmokeTestRequest(boeingCreekPark, ronaldBogPark, modes), List.of("BUS") diff --git a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java index af04eda6e53..50f68687bf0 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java @@ -1,10 +1,15 @@ package org.opentripplanner.smoketest; +import static org.opentripplanner.client.model.RequestMode.BICYCLE_RENT; +import static org.opentripplanner.client.model.RequestMode.TRANSIT; +import static org.opentripplanner.client.model.RequestMode.WALK; + +import java.io.IOException; import java.util.List; import java.util.Set; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; -import org.opentripplanner.framework.geometry.WgsCoordinate; +import org.opentripplanner.client.model.Coordinate; import org.opentripplanner.smoketest.util.SmokeTestRequest; /** @@ -14,15 +19,15 @@ @Tag("septa") public class SeptaSmokeTest { - WgsCoordinate airport = new WgsCoordinate(39.876151, -75.245189); - WgsCoordinate stPetersCemetary = new WgsCoordinate(39.98974, -75.09515); + Coordinate airport = new Coordinate(39.876151, -75.245189); + Coordinate stPetersCemetary = new Coordinate(39.98974, -75.09515); - WgsCoordinate pierceStreet = new WgsCoordinate(39.93014, -75.18047); - WgsCoordinate templeUniversity = new WgsCoordinate(39.98069, -75.14886); + Coordinate pierceStreet = new Coordinate(39.93014, -75.18047); + Coordinate templeUniversity = new Coordinate(39.98069, -75.14886); @Test public void routeFromAirportToNorthPhiladelphia() { - Set modes = Set.of("TRANSIT", "WALK"); + var modes = Set.of(TRANSIT, WALK); SmokeTest.basicRouteTest( new SmokeTestRequest(airport, stPetersCemetary, modes), List.of("WALK", "RAIL", "WALK", "SUBWAY", "WALK") @@ -42,7 +47,7 @@ public void bikeRentalStations() { @Test public void routeWithBikeRental() { SmokeTest.basicRouteTest( - new SmokeTestRequest(pierceStreet, templeUniversity, Set.of("BICYCLE_RENT")), + new SmokeTestRequest(pierceStreet, templeUniversity, Set.of(BICYCLE_RENT)), List.of("WALK", "BICYCLE", "WALK") ); } diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 0d004037334..37694fff17c 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -11,16 +11,20 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.module.paramnames.ParameterNamesModule; +import java.io.IOException; import java.time.DayOfWeek; import java.time.LocalDate; +import java.time.LocalTime; +import java.time.ZoneId; import java.time.temporal.TemporalAdjusters; import java.util.List; import org.opentripplanner.api.json.JSONObjectMapperProvider; -import org.opentripplanner.api.model.ApiItinerary; import org.opentripplanner.api.resource.DebugOutput; +import org.opentripplanner.client.OtpApiClient; +import org.opentripplanner.client.model.TripPlan; +import org.opentripplanner.client.model.TripPlan.Itinerary; import org.opentripplanner.model.fare.ItineraryFares; import org.opentripplanner.smoketest.util.GraphQLClient; -import org.opentripplanner.smoketest.util.RestClient; import org.opentripplanner.smoketest.util.SmokeTestRequest; /** @@ -72,12 +76,12 @@ public static void assertThatThereAreVehicleRentalStations() { * modes. */ static void assertThatItineraryHasModes( - List itineraries, + List itineraries, List expectedModes ) { var itineraryModes = itineraries .stream() - .map(i -> i.legs.stream().map(l -> l.mode).toList()) + .map(i -> i.legs().stream().map(l -> l.mode().toString()).toList()) .toList(); assertTrue( itineraryModes.contains(expectedModes), @@ -89,13 +93,22 @@ static void assertThatItineraryHasModes( ); } - static void basicRouteTest(SmokeTestRequest req, List expectedModes) { - var otpResponse = RestClient.sendPlanRequest(req); - var itineraries = otpResponse.getPlan().itineraries; + static TripPlan basicRouteTest(SmokeTestRequest req, List expectedModes) { + try { + var client = new OtpApiClient(ZoneId.of("America/New_York"), "localhost:8080"); + + TripPlan plan = client.plan(req.from(), req.to(), SmokeTest.nextMonday().atTime(LocalTime.of(12,0)), req.modes()); + var itineraries = plan.itineraries(); + + assertFalse(itineraries.isEmpty(), "Expected to see some itineraries but got zero."); + + assertThatItineraryHasModes(itineraries, expectedModes); + return plan; + } catch (InterruptedException|IOException e) { + throw new RuntimeException(e); + } - assertTrue(itineraries.size() >= 1, "Expected to see some itineraries but got zero."); - assertThatItineraryHasModes(itineraries, expectedModes); } static void assertThereArePatternsWithVehiclePositions() { diff --git a/src/test/java/org/opentripplanner/smoketest/util/RestClient.java b/src/test/java/org/opentripplanner/smoketest/util/RestClient.java deleted file mode 100644 index 80bd90efa63..00000000000 --- a/src/test/java/org/opentripplanner/smoketest/util/RestClient.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.opentripplanner.smoketest.util; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -import java.io.IOException; -import java.net.URI; -import java.net.http.HttpClient; -import java.net.http.HttpRequest; -import java.net.http.HttpResponse; -import java.util.Map; -import java.util.stream.Collectors; -import org.opentripplanner.api.resource.TripPlannerResponse; -import org.opentripplanner.smoketest.SmokeTest; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class RestClient { - - static final Logger LOG = LoggerFactory.getLogger(RestClient.class); - - static HttpClient client = HttpClient.newHttpClient(); - - /** - * Builds an HTTP request for sending to an OTP instance. - */ - static HttpRequest buildPlanRequest(Map params) { - var urlParams = params - .entrySet() - .stream() - .map(kv -> kv.getKey() + "=" + kv.getValue()) - .collect(Collectors.joining("&")); - - var uri = URI.create("http://localhost:8080/otp/routers/default/plan?" + urlParams); - - return HttpRequest.newBuilder().uri(uri).GET().build(); - } - - /** - * Sends an HTTP request to the OTP plan endpoint and deserializes the response. - */ - public static TripPlannerResponse sendPlanRequest(SmokeTestRequest req) { - var request = buildPlanRequest(req.toMap()); - LOG.info("Sending request to {}", request.uri()); - TripPlannerResponse otpResponse; - try { - var response = client.send(request, HttpResponse.BodyHandlers.ofInputStream()); - - assertEquals(200, response.statusCode(), "Status code returned by OTP server was not 200"); - otpResponse = SmokeTest.mapper.readValue(response.body(), TripPlannerResponse.class); - } catch (IOException | InterruptedException e) { - throw new RuntimeException(e); - } - - LOG.info( - "Request to {} returned {} itineraries", - request.uri(), - otpResponse.getPlan().itineraries.size() - ); - - return otpResponse; - } -} diff --git a/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java b/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java index 86ca08dd87f..25bafa2f1ad 100644 --- a/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java +++ b/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java @@ -1,39 +1,17 @@ package org.opentripplanner.smoketest.util; -import static java.util.Map.entry; - -import java.time.Duration; -import java.util.Collection; -import java.util.Map; import java.util.Set; -import org.opentripplanner.framework.geometry.WgsCoordinate; -import org.opentripplanner.smoketest.SmokeTest; +import org.opentripplanner.client.model.Coordinate; +import org.opentripplanner.client.model.RequestMode; public record SmokeTestRequest( - WgsCoordinate from, - WgsCoordinate to, - Collection modes, + Coordinate from, + Coordinate to, + Set modes, boolean arriveBy ) { - public SmokeTestRequest(WgsCoordinate from, WgsCoordinate to, Set modes) { + public SmokeTestRequest(Coordinate from, Coordinate to, Set modes) { this(from, to, modes, false); } - public Map toMap() { - return Map.ofEntries( - entry("fromPlace", toString(from)), - entry("toPlace", toString(to)), - entry("time", "1:00pm"), - entry("date", SmokeTest.nextMonday().toString()), - entry("mode", String.join(",", modes)), - entry("showIntermediateStops", "true"), - entry("locale", "en"), - entry("searchWindow", Long.toString(Duration.ofHours(2).toSeconds())), - entry("arriveBy", Boolean.toString(arriveBy)) - ); - } - - private static String toString(WgsCoordinate c) { - return "%s,%s".formatted(c.latitude(), c.longitude()); - } } From 26630b411ebd707d4c9c79dca5cf1d366d000162 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 9 Aug 2023 19:20:39 +0200 Subject: [PATCH 109/158] Bump client version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4a6a9d4e7e3..3941db52d7a 100644 --- a/pom.xml +++ b/pom.xml @@ -1011,7 +1011,7 @@ org.opentripplanner otp-client - 0.0.4 + 0.0.5 test From 6071055bf72c4478659a4b6dadc238b70082d042 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 9 Aug 2023 20:04:54 +0200 Subject: [PATCH 110/158] Fix formatting --- .../smoketest/AtlantaSmokeTest.java | 5 +---- .../opentripplanner/smoketest/SmokeTest.java | 20 +++++++++---------- .../smoketest/util/SmokeTestRequest.java | 1 - 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index 09ef914bbf7..fd6ff192f75 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -29,10 +29,7 @@ public class AtlantaSmokeTest { Coordinate nearGeorgiaStateStation = new Coordinate(33.74139944890028, -84.38607215881348); - Coordinate powderSpringsInsideFlexZone1 = new Coordinate( - 33.86916840022388, - -84.66315507888794 - ); + Coordinate powderSpringsInsideFlexZone1 = new Coordinate(33.86916840022388, -84.66315507888794); @Test public void regularRouteFromCentralAtlantaToPowderSprings() { diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 37694fff17c..ef8cab8c172 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -75,10 +75,7 @@ public static void assertThatThereAreVehicleRentalStations() { * Given a list of itineraries assert that at least one of them has legs that have the expected * modes. */ - static void assertThatItineraryHasModes( - List itineraries, - List expectedModes - ) { + static void assertThatItineraryHasModes(List itineraries, List expectedModes) { var itineraryModes = itineraries .stream() .map(i -> i.legs().stream().map(l -> l.mode().toString()).toList()) @@ -95,20 +92,23 @@ static void assertThatItineraryHasModes( static TripPlan basicRouteTest(SmokeTestRequest req, List expectedModes) { try { - var client = new OtpApiClient(ZoneId.of("America/New_York"), "localhost:8080"); - - TripPlan plan = client.plan(req.from(), req.to(), SmokeTest.nextMonday().atTime(LocalTime.of(12,0)), req.modes()); + var client = new OtpApiClient(ZoneId.of("America/New_York"), "localhost:8080"); + + TripPlan plan = client.plan( + req.from(), + req.to(), + SmokeTest.nextMonday().atTime(LocalTime.of(12, 0)), + req.modes() + ); var itineraries = plan.itineraries(); assertFalse(itineraries.isEmpty(), "Expected to see some itineraries but got zero."); assertThatItineraryHasModes(itineraries, expectedModes); return plan; - } catch (InterruptedException|IOException e) { + } catch (InterruptedException | IOException e) { throw new RuntimeException(e); } - - } static void assertThereArePatternsWithVehiclePositions() { diff --git a/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java b/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java index 25bafa2f1ad..8b1ea89cbad 100644 --- a/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java +++ b/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java @@ -13,5 +13,4 @@ public record SmokeTestRequest( public SmokeTestRequest(Coordinate from, Coordinate to, Set modes) { this(from, to, modes, false); } - } From 395261875739ab2d7d669f54cad23237f0f2d107 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 10 Aug 2023 08:21:14 +0200 Subject: [PATCH 111/158] Remove our own API client --- pom.xml | 2 +- .../smoketest/SeattleSmokeTest.java | 22 +-- .../opentripplanner/smoketest/SmokeTest.java | 39 +++-- .../smoketest/util/GraphQLClient.java | 146 ------------------ 4 files changed, 35 insertions(+), 174 deletions(-) delete mode 100644 src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java diff --git a/pom.xml b/pom.xml index 3941db52d7a..475cb523576 100644 --- a/pom.xml +++ b/pom.xml @@ -1011,7 +1011,7 @@ org.opentripplanner otp-client - 0.0.5 + 0.0.7 test diff --git a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java index 6565fb8c70c..fff55c46ae1 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java @@ -16,8 +16,7 @@ import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.opentripplanner.client.model.Coordinate; -import org.opentripplanner.client.model.RequestMode; -import org.opentripplanner.smoketest.util.GraphQLClient; +import org.opentripplanner.client.model.Route; import org.opentripplanner.smoketest.util.SmokeTestRequest; @Tag("smoke-test") @@ -50,14 +49,17 @@ public void flexAndTransit() { @Test public void monorailRoute() { - var modes = GraphQLClient - .routes() - .stream() - .map(GraphQLClient.Route::mode) - .map(Objects::toString) - .collect(Collectors.toSet()); - - assertEquals(Set.of("MONORAIL", "TRAM", "FERRY", "BUS"), modes); + try { + Set modes = SmokeTest.API_CLIENT + .routes() + .stream() + .map(Route::mode) + .map(Objects::toString) + .collect(Collectors.toSet()); + assertEquals(Set.of("MONORAIL", "TRAM", "FERRY", "BUS"), modes); + } catch (IOException | InterruptedException e) { + throw new RuntimeException(e); + } } @Test diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index ef8cab8c172..c1c474dcd72 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -23,8 +23,8 @@ import org.opentripplanner.client.OtpApiClient; import org.opentripplanner.client.model.TripPlan; import org.opentripplanner.client.model.TripPlan.Itinerary; +import org.opentripplanner.client.model.VehicleRentalStation; import org.opentripplanner.model.fare.ItineraryFares; -import org.opentripplanner.smoketest.util.GraphQLClient; import org.opentripplanner.smoketest.util.SmokeTestRequest; /** @@ -38,6 +38,10 @@ public class SmokeTest { public static final ObjectMapper mapper; + public static final OtpApiClient API_CLIENT = new OtpApiClient( + ZoneId.of("America/New_York"), + "http://localhost:8080" + ); static { var provider = new JSONObjectMapperProvider(); @@ -67,8 +71,12 @@ public static LocalDate nextMonday() { } public static void assertThatThereAreVehicleRentalStations() { - var stations = GraphQLClient.vehicleRentalStations(); - assertFalse(stations.isEmpty(), "Found no vehicle rental stations."); + try { + List stations = API_CLIENT.vehicleRentalStations(); + assertFalse(stations.isEmpty(), "Found no vehicle rental stations."); + } catch (IOException | InterruptedException e) { + throw new RuntimeException(e); + } } /** @@ -92,9 +100,7 @@ static void assertThatItineraryHasModes(List itineraries, List expectedModes) { try { - var client = new OtpApiClient(ZoneId.of("America/New_York"), "localhost:8080"); - - TripPlan plan = client.plan( + TripPlan plan = API_CLIENT.plan( req.from(), req.to(), SmokeTest.nextMonday().atTime(LocalTime.of(12, 0)), @@ -112,18 +118,17 @@ static TripPlan basicRouteTest(SmokeTestRequest req, List expectedModes) } static void assertThereArePatternsWithVehiclePositions() { - GraphQLClient.VehiclePositionResponse positions = GraphQLClient.patternWithVehiclePositionsQuery(); - - var vehiclePositions = positions - .patterns() - .stream() - .flatMap(p -> p.vehiclePositions().stream()) - .toList(); + try { + var patterns = API_CLIENT.patterns(); + var vehiclePositions = patterns.stream().flatMap(p -> p.vehiclePositions().stream()).toList(); - assertFalse( - vehiclePositions.isEmpty(), - "Found no patterns that have realtime vehicle positions." - ); + assertFalse( + vehiclePositions.isEmpty(), + "Found no patterns that have realtime vehicle positions." + ); + } catch (IOException | InterruptedException e) { + throw new RuntimeException(e); + } } /** diff --git a/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java b/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java deleted file mode 100644 index 8aa30988737..00000000000 --- a/src/test/java/org/opentripplanner/smoketest/util/GraphQLClient.java +++ /dev/null @@ -1,146 +0,0 @@ -package org.opentripplanner.smoketest.util; - -import static org.opentripplanner.smoketest.SmokeTest.mapper; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.JsonNode; -import java.io.IOException; -import java.net.URI; -import java.net.http.HttpClient; -import java.net.http.HttpRequest; -import java.net.http.HttpResponse; -import java.util.List; -import org.opentripplanner.smoketest.SmokeTest; -import org.opentripplanner.transit.model.basic.TransitMode; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class GraphQLClient { - - static final Logger LOG = LoggerFactory.getLogger(GraphQLClient.class); - - static final HttpClient httpClient = HttpClient.newHttpClient(); - - public static VehiclePositionResponse patternWithVehiclePositionsQuery() { - var json = GraphQLClient.sendGraphQLRequest( - """ - query { - patterns { - vehiclePositions { - vehicleId - lastUpdated - trip { - id - gtfsId - } - stopRelationship { - status - stop { - name - } - } - } - } - } - - """ - ); - - try { - return SmokeTest.mapper.treeToValue(json, VehiclePositionResponse.class); - } catch (JsonProcessingException e) { - throw new RuntimeException(e); - } - } - - public static List vehicleRentalStations() { - var json = GraphQLClient.sendGraphQLRequest( - """ - query { - vehicleRentalStations{ - name - lat - lon - realtime - vehiclesAvailable - } - } - """ - ); - - try { - List stations = SmokeTest.mapper.readValue( - json.path("vehicleRentalStations").toString(), - new TypeReference<>() {} - ); - - LOG.info("Fetched {} vehicle rental stations", stations.size()); - return stations; - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - public static List routes() { - var json = GraphQLClient.sendGraphQLRequest( - """ - query { - routes { - shortName - mode - } - } - """ - ); - - try { - List routes = SmokeTest.mapper.readValue( - json.path("routes").toString(), - new TypeReference<>() {} - ); - - LOG.info("Fetched {} routes", routes.size()); - return routes; - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - public static JsonNode sendGraphQLRequest(String query) { - var body = mapper.createObjectNode(); - body.put("query", query); - - try { - var bodyString = mapper.writeValueAsString(body); - - HttpRequest request = HttpRequest - .newBuilder() - .uri(URI.create("http://localhost:8080/otp/routers/default/index/graphql")) - .header("Content-Type", "application/json") - .POST(HttpRequest.BodyPublishers.ofString(bodyString)) - .build(); - HttpResponse response = httpClient.send( - request, - HttpResponse.BodyHandlers.ofString() - ); - - var responseJson = mapper.readTree(response.body()); - - LOG.info("Response JSON: {}", responseJson); - return responseJson.get("data"); - } catch (IOException | InterruptedException e) { - throw new RuntimeException(e); - } - } - - public record Route(String shortName, TransitMode mode) {} - - public record VehicleRentalStation(String name, float lat, float lon) {} - - public record Position(String vehicleId) {} - - public record Pattern(List vehiclePositions) {} - - public record VehiclePositionResponse(List patterns) {} -} From aa7ed7db7ce6546cacb41eff1a9c58f6bf1591cf Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 10 Aug 2023 11:11:03 +0200 Subject: [PATCH 112/158] Bump client version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 475cb523576..de7ac6ee440 100644 --- a/pom.xml +++ b/pom.xml @@ -1011,7 +1011,7 @@ org.opentripplanner otp-client - 0.0.7 + 0.0.9 test From e20e73d7f5a3b9a631a3557faa714de4bd7cf9ab Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 10 Aug 2023 12:19:07 +0200 Subject: [PATCH 113/158] Run tests next Monday --- .github/workflows/smoke-tests.yml | 7 +++++-- src/test/java/org/opentripplanner/smoketest/SmokeTest.java | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 79a50b4c81b..b6390da71da 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -53,11 +53,14 @@ jobs: restore-keys: | osm-${{ matrix.locations.name }} - - name: Run smoke tests + - name: Build graph tests + working-directory: smoke-tests run: | - cd smoke-tests make build-${{ matrix.locations.name }} + - name: Run smoke tests + working-directory: smoke-tests + run: | make run-${{ matrix.locations.name }} & # OTP needs a little while to start up so we sleep diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index c1c474dcd72..27fa3fbdfac 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -67,7 +67,7 @@ public class SmokeTest { */ public static LocalDate nextMonday() { var today = LocalDate.now(); - return today.with(TemporalAdjusters.next(DayOfWeek.THURSDAY)); + return today.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); } public static void assertThatThereAreVehicleRentalStations() { From 0dc93c28d701c6d1efebe36af5be5ff4a0ec7f09 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 10 Aug 2023 12:26:43 +0200 Subject: [PATCH 114/158] Switch to Friday --- src/test/java/org/opentripplanner/smoketest/SmokeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 27fa3fbdfac..5951ec860eb 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -67,7 +67,7 @@ public class SmokeTest { */ public static LocalDate nextMonday() { var today = LocalDate.now(); - return today.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); + return today.with(TemporalAdjusters.next(DayOfWeek.FRIDAY)); } public static void assertThatThereAreVehicleRentalStations() { From 01533b877bad610b380cccb028d6275623d026f5 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 10 Aug 2023 12:51:15 +0200 Subject: [PATCH 115/158] Clean up smoke tests --- .../org/opentripplanner/smoketest/SeattleSmokeTest.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java index fff55c46ae1..95f22c6485f 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java @@ -48,8 +48,7 @@ public void flexAndTransit() { } @Test - public void monorailRoute() { - try { + public void monorailRoute() throws IOException, InterruptedException { Set modes = SmokeTest.API_CLIENT .routes() .stream() @@ -57,9 +56,6 @@ public void monorailRoute() { .map(Objects::toString) .collect(Collectors.toSet()); assertEquals(Set.of("MONORAIL", "TRAM", "FERRY", "BUS"), modes); - } catch (IOException | InterruptedException e) { - throw new RuntimeException(e); - } } @Test From 02144212915bb4525ba754793e56618b621d28ef Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 10 Aug 2023 13:28:00 +0200 Subject: [PATCH 116/158] Update to version 0.0.10 --- .github/workflows/smoke-tests.yml | 2 +- pom.xml | 2 +- .../smoketest/PortlandSmokeTest.java | 7 ++++--- .../smoketest/SeattleSmokeTest.java | 14 +++++++------- .../org/opentripplanner/smoketest/SmokeTest.java | 16 ++++++++++------ .../smoketest/util/SmokeTestRequest.java | 9 +++++++++ 6 files changed, 32 insertions(+), 18 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index b6390da71da..72ec3f24f38 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -53,7 +53,7 @@ jobs: restore-keys: | osm-${{ matrix.locations.name }} - - name: Build graph tests + - name: Build graph working-directory: smoke-tests run: | make build-${{ matrix.locations.name }} diff --git a/pom.xml b/pom.xml index de7ac6ee440..5c7242ac8f2 100644 --- a/pom.xml +++ b/pom.xml @@ -1011,7 +1011,7 @@ org.opentripplanner otp-client - 0.0.9 + 0.0.10 test diff --git a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java index 840c8922424..538e4f9fc39 100644 --- a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java @@ -18,13 +18,14 @@ public class PortlandSmokeTest { Coordinate cennentenial = new Coordinate(45.504602, -122.4968719); + Coordinate buckman = new Coordinate(45.51720, -122.652289867); Coordinate hazelwood = new Coordinate(45.52463, -122.5583); Coordinate piedmont = new Coordinate(45.5746, -122.6697); Coordinate mountTaborPark = new Coordinate(45.511399, -122.594203); @Test public void railTrip() { - // this used to be across the city by since the train is interrupter in April '23 this is a + // this used to be across the city by since the train is interrupted in April '23 this is a // much shorter trip SmokeTest.basicRouteTest( new SmokeTestRequest(cennentenial, hazelwood, Set.of(TRAM, WALK)), @@ -36,11 +37,11 @@ public void railTrip() { * Checks that a scooter rental finishes at the edge of the park area and is continued on * foot rather than scootering all the way to the destination. */ - @ParameterizedTest(name = "scooter rental with arriveBy={0}") + @ParameterizedTest(name = "scooter rental in a geofencing zone with arriveBy={0}") @ValueSource(booleans = { true, false }) public void geofencingZone(boolean arriveBy) { SmokeTest.basicRouteTest( - new SmokeTestRequest(cennentenial, mountTaborPark, Set.of(SCOOTER_RENT, WALK), arriveBy), + new SmokeTestRequest(buckman, mountTaborPark, Set.of(SCOOTER_RENT, WALK), arriveBy), List.of("WALK", "SCOOTER", "WALK") ); } diff --git a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java index 95f22c6485f..737037acd2c 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java @@ -49,13 +49,13 @@ public void flexAndTransit() { @Test public void monorailRoute() throws IOException, InterruptedException { - Set modes = SmokeTest.API_CLIENT - .routes() - .stream() - .map(Route::mode) - .map(Objects::toString) - .collect(Collectors.toSet()); - assertEquals(Set.of("MONORAIL", "TRAM", "FERRY", "BUS"), modes); + Set modes = SmokeTest.API_CLIENT + .routes() + .stream() + .map(Route::mode) + .map(Objects::toString) + .collect(Collectors.toSet()); + assertEquals(Set.of("MONORAIL", "TRAM", "FERRY", "BUS"), modes); } @Test diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 5951ec860eb..d7de1c0891c 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -24,6 +24,7 @@ import org.opentripplanner.client.model.TripPlan; import org.opentripplanner.client.model.TripPlan.Itinerary; import org.opentripplanner.client.model.VehicleRentalStation; +import org.opentripplanner.client.parameters.TripPlanParameters; import org.opentripplanner.model.fare.ItineraryFares; import org.opentripplanner.smoketest.util.SmokeTestRequest; @@ -100,12 +101,15 @@ static void assertThatItineraryHasModes(List itineraries, List expectedModes) { try { - TripPlan plan = API_CLIENT.plan( - req.from(), - req.to(), - SmokeTest.nextMonday().atTime(LocalTime.of(12, 0)), - req.modes() - ); + var tpr = TripPlanParameters + .builder() + .withFrom(req.from()) + .withTo(req.to()) + .withModes(req.modes()) + .withTime(SmokeTest.nextMonday().atTime(LocalTime.of(12, 0))) + .withSearchDirection(req.searchDirection()) + .build(); + var plan = API_CLIENT.plan(tpr); var itineraries = plan.itineraries(); assertFalse(itineraries.isEmpty(), "Expected to see some itineraries but got zero."); diff --git a/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java b/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java index 8b1ea89cbad..6580405a1e1 100644 --- a/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java +++ b/src/test/java/org/opentripplanner/smoketest/util/SmokeTestRequest.java @@ -3,6 +3,7 @@ import java.util.Set; import org.opentripplanner.client.model.Coordinate; import org.opentripplanner.client.model.RequestMode; +import org.opentripplanner.client.parameters.TripPlanParameters; public record SmokeTestRequest( Coordinate from, @@ -13,4 +14,12 @@ public record SmokeTestRequest( public SmokeTestRequest(Coordinate from, Coordinate to, Set modes) { this(from, to, modes, false); } + + public TripPlanParameters.SearchDirection searchDirection() { + if (arriveBy) { + return TripPlanParameters.SearchDirection.ARRIVE_BY; + } else { + return TripPlanParameters.SearchDirection.DEPART_AT; + } + } } From c5f626da5067f37fb9d35d98db6d1e2e1a5a52b5 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 1 Sep 2023 12:36:28 +0200 Subject: [PATCH 117/158] Update Houston test assertion --- .../java/org/opentripplanner/smoketest/HoustonSmokeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java index 1be6c8fd9ff..ce60e58a8d7 100644 --- a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java @@ -38,7 +38,7 @@ public void selectOnlyBusses() { var modes = Set.of(BUS, WALK); SmokeTest.basicRouteTest( new SmokeTestRequest(galvestonRoad, northLindale, modes), - List.of("WALK", "BUS", "BUS", "WALK", "BUS", "WALK") + List.of("WALK", "BUS", "WALK", "BUS", "WALK", "BUS", "WALK") ); } From 22dacd7308898eff17b84dcb4239485881da45c4 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 1 Sep 2023 12:56:42 +0200 Subject: [PATCH 118/158] Update SEPTA assertion --- .../java/org/opentripplanner/smoketest/SeptaSmokeTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java index 50f68687bf0..5c781efbad9 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java @@ -4,7 +4,6 @@ import static org.opentripplanner.client.model.RequestMode.TRANSIT; import static org.opentripplanner.client.model.RequestMode.WALK; -import java.io.IOException; import java.util.List; import java.util.Set; import org.junit.jupiter.api.Tag; @@ -30,7 +29,7 @@ public void routeFromAirportToNorthPhiladelphia() { var modes = Set.of(TRANSIT, WALK); SmokeTest.basicRouteTest( new SmokeTestRequest(airport, stPetersCemetary, modes), - List.of("WALK", "RAIL", "WALK", "SUBWAY", "WALK") + List.of("WALK", "RAIL", "RAIL", "WALK", "SUBWAY", "WALK") ); } From 443f084b042eb9dd332c98d443bc324d9666caa6 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 6 Oct 2023 15:38:53 +0200 Subject: [PATCH 119/158] Add fares smoke test for SEPTA --- pom.xml | 2 +- .../smoketest/SeptaSmokeTest.java | 25 ++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index afe0af5a35d..1d7e88a3df9 100644 --- a/pom.xml +++ b/pom.xml @@ -987,7 +987,7 @@ org.opentripplanner otp-client - 0.0.10 + 0.0.14 test diff --git a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java index 5c781efbad9..710edb695c6 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java @@ -1,15 +1,21 @@ package org.opentripplanner.smoketest; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.opentripplanner.client.model.RequestMode.BICYCLE_RENT; import static org.opentripplanner.client.model.RequestMode.TRANSIT; import static org.opentripplanner.client.model.RequestMode.WALK; import java.util.List; import java.util.Set; +import java.util.stream.Collectors; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.opentripplanner.client.model.Coordinate; +import org.opentripplanner.client.model.TripPlan.FareProductUse; import org.opentripplanner.smoketest.util.SmokeTestRequest; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * This smoke test expects an OTP installation running at localhost:8080 @@ -18,6 +24,8 @@ @Tag("septa") public class SeptaSmokeTest { + private static final Logger LOG = LoggerFactory.getLogger(SeptaSmokeTest.class); + Coordinate airport = new Coordinate(39.876151, -75.245189); Coordinate stPetersCemetary = new Coordinate(39.98974, -75.09515); @@ -27,10 +35,25 @@ public class SeptaSmokeTest { @Test public void routeFromAirportToNorthPhiladelphia() { var modes = Set.of(TRANSIT, WALK); - SmokeTest.basicRouteTest( + var plan = SmokeTest.basicRouteTest( new SmokeTestRequest(airport, stPetersCemetary, modes), List.of("WALK", "RAIL", "RAIL", "WALK", "SUBWAY", "WALK") ); + var products = plan + .itineraries() + .stream() + .flatMap(i -> i.legs().stream()) + .flatMap(leg -> leg.fareProducts().stream()) + .map(FareProductUse::product) + .toList(); + + assertFalse(products.isEmpty()); + + var prices = products.stream().map(p -> p.price().amount().doubleValue()).collect(Collectors.toSet()); + + LOG.info("Received fare products {}", products); + + assertTrue(prices.contains(2.5d)); } @Test From c11bb689b66178ee7d0ebaed89c554ef278149a0 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 6 Oct 2023 17:44:20 +0200 Subject: [PATCH 120/158] Assert that all transit legs have fares --- smoke-tests/denver/router-config.json | 3 +-- smoke-tests/portland/otp-config.json | 1 - smoke-tests/portland/router-config.json | 5 ++--- smoke-tests/septa/otp-config.json | 1 - .../java/org/opentripplanner/smoketest/HoustonSmokeTest.java | 5 ++++- .../org/opentripplanner/smoketest/PortlandSmokeTest.java | 4 +++- src/test/java/org/opentripplanner/smoketest/SmokeTest.java | 5 +++++ 7 files changed, 15 insertions(+), 9 deletions(-) diff --git a/smoke-tests/denver/router-config.json b/smoke-tests/denver/router-config.json index ed80cb617b2..e68a9cc7629 100644 --- a/smoke-tests/denver/router-config.json +++ b/smoke-tests/denver/router-config.json @@ -3,8 +3,7 @@ { "type": "vehicle-positions", "url": "https://www.rtd-denver.com/files/gtfs-rt/VehiclePosition.pb", - "feedId": "denver", - "frequencySec": 60 + "feedId": "denver" } ] } \ No newline at end of file diff --git a/smoke-tests/portland/otp-config.json b/smoke-tests/portland/otp-config.json index 084070b312c..7b0d1828144 100644 --- a/smoke-tests/portland/otp-config.json +++ b/smoke-tests/portland/otp-config.json @@ -1,5 +1,4 @@ { "otpFeatures" : { - "SandboxAPILegacyGraphQLApi": true } } \ No newline at end of file diff --git a/smoke-tests/portland/router-config.json b/smoke-tests/portland/router-config.json index 13387faff95..00d362e83d5 100644 --- a/smoke-tests/portland/router-config.json +++ b/smoke-tests/portland/router-config.json @@ -3,20 +3,19 @@ "updaters": [ { "type": "real-time-alerts", - "frequencySec": 60, "earlyStartSec": 864000, "url": "https://trimet.org/transweb/ws/V1/FeedSpecAlerts/includeFuture/true/suppressSystemWideAlerts/true/", "feedId": "TriMet" }, { "type": "stop-time-updater", - "frequencySec": 30, + "frequency": "30s", "url": "https://trimet.org/transweb/ws/V1/TripUpdate", "feedId": "TriMet" }, { "type": "vehicle-rental", - "frequencySec": 90, + "frequency": "90s", "sourceType": "gbfs", "url": "https://mds.bird.co/gbfs/v2/public/portland/gbfs.json", "geofencingZones": "true" diff --git a/smoke-tests/septa/otp-config.json b/smoke-tests/septa/otp-config.json index 084070b312c..7b0d1828144 100644 --- a/smoke-tests/septa/otp-config.json +++ b/smoke-tests/septa/otp-config.json @@ -1,5 +1,4 @@ { "otpFeatures" : { - "SandboxAPILegacyGraphQLApi": true } } \ No newline at end of file diff --git a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java index ce60e58a8d7..be0aacd337e 100644 --- a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java @@ -1,5 +1,6 @@ package org.opentripplanner.smoketest; +import static org.junit.jupiter.api.Assertions.assertFalse; import static org.opentripplanner.client.model.RequestMode.BICYCLE; import static org.opentripplanner.client.model.RequestMode.BUS; import static org.opentripplanner.client.model.RequestMode.TRANSIT; @@ -27,10 +28,12 @@ public class HoustonSmokeTest { @Test public void routeFromSouthToNorth() { var modes = Set.of(TRANSIT, WALK); - SmokeTest.basicRouteTest( + var plan = SmokeTest.basicRouteTest( new SmokeTestRequest(galvestonRoad, northLindale, modes), List.of("WALK", "BUS", "BUS", "WALK", "TRAM", "WALK") ); + + SmokeTest.assertThatAllTransitLegsHaveFares(plan); } @Test diff --git a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java index 538e4f9fc39..51fffeb91ff 100644 --- a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java @@ -27,10 +27,12 @@ public class PortlandSmokeTest { public void railTrip() { // this used to be across the city by since the train is interrupted in April '23 this is a // much shorter trip - SmokeTest.basicRouteTest( + var plan = SmokeTest.basicRouteTest( new SmokeTestRequest(cennentenial, hazelwood, Set.of(TRAM, WALK)), List.of("WALK", "TRAM", "WALK") ); + + SmokeTest.assertThatAllTransitLegsHaveFares(plan); } /** diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index d7de1c0891c..87b2030c428 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -135,6 +135,11 @@ static void assertThereArePatternsWithVehiclePositions() { } } + static void assertThatAllTransitLegsHaveFares(TripPlan plan) { + var transitLegs = plan.transitItineraries().stream().flatMap(i-> i.transitLegs().stream()); + transitLegs.forEach(leg -> assertFalse(leg.fareProducts().isEmpty())); + } + /** * The Fare class is a little hard to deserialize, so we have a custom deserializer as we don't * run any assertions against the fares. (That is done during unit tests.) From 1f3876aba2ada2f081c78f123d5b0bbf10bd6385 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 6 Oct 2023 17:49:53 +0200 Subject: [PATCH 121/158] Fix formatting --- .../java/org/opentripplanner/smoketest/SeptaSmokeTest.java | 5 ++++- src/test/java/org/opentripplanner/smoketest/SmokeTest.java | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java index 710edb695c6..17e24fb297a 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java @@ -49,7 +49,10 @@ public void routeFromAirportToNorthPhiladelphia() { assertFalse(products.isEmpty()); - var prices = products.stream().map(p -> p.price().amount().doubleValue()).collect(Collectors.toSet()); + var prices = products + .stream() + .map(p -> p.price().amount().doubleValue()) + .collect(Collectors.toSet()); LOG.info("Received fare products {}", products); diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 87b2030c428..d1dad42bc96 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -136,7 +136,7 @@ static void assertThereArePatternsWithVehiclePositions() { } static void assertThatAllTransitLegsHaveFares(TripPlan plan) { - var transitLegs = plan.transitItineraries().stream().flatMap(i-> i.transitLegs().stream()); + var transitLegs = plan.transitItineraries().stream().flatMap(i -> i.transitLegs().stream()); transitLegs.forEach(leg -> assertFalse(leg.fareProducts().isEmpty())); } From 699f20c56099932b32bb371173502e4310d3da06 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 6 Oct 2023 17:51:43 +0200 Subject: [PATCH 122/158] Rename method --- .../java/org/opentripplanner/smoketest/HoustonSmokeTest.java | 3 +-- .../java/org/opentripplanner/smoketest/PortlandSmokeTest.java | 2 +- src/test/java/org/opentripplanner/smoketest/SmokeTest.java | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java index be0aacd337e..1cf43de7fde 100644 --- a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java @@ -1,6 +1,5 @@ package org.opentripplanner.smoketest; -import static org.junit.jupiter.api.Assertions.assertFalse; import static org.opentripplanner.client.model.RequestMode.BICYCLE; import static org.opentripplanner.client.model.RequestMode.BUS; import static org.opentripplanner.client.model.RequestMode.TRANSIT; @@ -33,7 +32,7 @@ public void routeFromSouthToNorth() { List.of("WALK", "BUS", "BUS", "WALK", "TRAM", "WALK") ); - SmokeTest.assertThatAllTransitLegsHaveFares(plan); + SmokeTest.assertThatAllTransitLegsHaveFareProducts(plan); } @Test diff --git a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java index 51fffeb91ff..f55810283ca 100644 --- a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java @@ -32,7 +32,7 @@ public void railTrip() { List.of("WALK", "TRAM", "WALK") ); - SmokeTest.assertThatAllTransitLegsHaveFares(plan); + SmokeTest.assertThatAllTransitLegsHaveFareProducts(plan); } /** diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index d1dad42bc96..a494f773883 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -135,7 +135,7 @@ static void assertThereArePatternsWithVehiclePositions() { } } - static void assertThatAllTransitLegsHaveFares(TripPlan plan) { + static void assertThatAllTransitLegsHaveFareProducts(TripPlan plan) { var transitLegs = plan.transitItineraries().stream().flatMap(i -> i.transitLegs().stream()); transitLegs.forEach(leg -> assertFalse(leg.fareProducts().isEmpty())); } From b8f491f1dc0a0dfe8565f70b7f5d75a961b5c80e Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 6 Oct 2023 19:46:12 +0200 Subject: [PATCH 123/158] Add spin scooters in Portland --- smoke-tests/portland/router-config.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/smoke-tests/portland/router-config.json b/smoke-tests/portland/router-config.json index 00d362e83d5..a6c1b64b90c 100644 --- a/smoke-tests/portland/router-config.json +++ b/smoke-tests/portland/router-config.json @@ -19,6 +19,13 @@ "sourceType": "gbfs", "url": "https://mds.bird.co/gbfs/v2/public/portland/gbfs.json", "geofencingZones": "true" + }, + { + "type": "vehicle-rental", + "frequency": "90s", + "sourceType": "gbfs", + "url": "https://gbfs.spin.pm/api/gbfs/v2_3/portland/gbfs", + "geofencingZones": "true" } ] } \ No newline at end of file From bbc7dd0ed57c9378dbff0d8da2a9685d45005030 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 6 Oct 2023 19:55:59 +0200 Subject: [PATCH 124/158] Remove unused serialization stuff --- .../opentripplanner/smoketest/SmokeTest.java | 51 ------------------- 1 file changed, 51 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index a494f773883..3ab7aa998c9 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -3,14 +3,6 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.module.SimpleModule; -import com.fasterxml.jackson.module.paramnames.ParameterNamesModule; import java.io.IOException; import java.time.DayOfWeek; import java.time.LocalDate; @@ -18,14 +10,11 @@ import java.time.ZoneId; import java.time.temporal.TemporalAdjusters; import java.util.List; -import org.opentripplanner.api.json.JSONObjectMapperProvider; -import org.opentripplanner.api.resource.DebugOutput; import org.opentripplanner.client.OtpApiClient; import org.opentripplanner.client.model.TripPlan; import org.opentripplanner.client.model.TripPlan.Itinerary; import org.opentripplanner.client.model.VehicleRentalStation; import org.opentripplanner.client.parameters.TripPlanParameters; -import org.opentripplanner.model.fare.ItineraryFares; import org.opentripplanner.smoketest.util.SmokeTestRequest; /** @@ -38,25 +27,11 @@ */ public class SmokeTest { - public static final ObjectMapper mapper; public static final OtpApiClient API_CLIENT = new OtpApiClient( ZoneId.of("America/New_York"), "http://localhost:8080" ); - static { - var provider = new JSONObjectMapperProvider(); - - SimpleModule module = new SimpleModule("SmokeTests"); - module.addDeserializer(ItineraryFares.class, new FareDeserializer()); - module.addDeserializer(DebugOutput.class, new DebugOutputDeserializer()); - - mapper = provider.getContext(null); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - mapper.registerModule(new ParameterNamesModule(JsonCreator.Mode.PROPERTIES)); - mapper.registerModule(module); - } - /** * In order to have somewhat predictable results we get the route for the next Monday. *

@@ -139,30 +114,4 @@ static void assertThatAllTransitLegsHaveFareProducts(TripPlan plan) { var transitLegs = plan.transitItineraries().stream().flatMap(i -> i.transitLegs().stream()); transitLegs.forEach(leg -> assertFalse(leg.fareProducts().isEmpty())); } - - /** - * The Fare class is a little hard to deserialize, so we have a custom deserializer as we don't - * run any assertions against the fares. (That is done during unit tests.) - */ - static class FareDeserializer extends JsonDeserializer { - - @Override - public ItineraryFares deserialize( - JsonParser jsonParser, - DeserializationContext deserializationContext - ) { - return null; - } - } - - static class DebugOutputDeserializer extends JsonDeserializer { - - @Override - public DebugOutput deserialize( - JsonParser jsonParser, - DeserializationContext deserializationContext - ) { - return null; - } - } } From 33c8c9c773f9700ccf4ad9f9bc5f63478c0be81f Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 6 Oct 2023 20:10:12 +0200 Subject: [PATCH 125/158] Increase sleep for Portland --- .github/workflows/smoke-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 72ec3f24f38..7c95ba05555 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -29,7 +29,7 @@ jobs: sleep: 15 - name: portland # have to sleep longer since computing geofencing zones takes a while - sleep: 80 + sleep: 125 steps: - uses: actions/checkout@v3 From d9c431745d4b611d8eb16b435477140db8d73b8c Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 9 Oct 2023 13:26:58 +0200 Subject: [PATCH 126/158] Check that Seattle has fare products --- .../java/org/opentripplanner/smoketest/SeattleSmokeTest.java | 4 +++- src/test/java/org/opentripplanner/smoketest/SmokeTest.java | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java index 737037acd2c..75c771d5b0c 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java @@ -32,10 +32,12 @@ public class SeattleSmokeTest { @Test public void acrossTheCity() { var modes = Set.of(TRANSIT, WALK); - SmokeTest.basicRouteTest( + var plan = SmokeTest.basicRouteTest( new SmokeTestRequest(sodo, clydeHill, modes), List.of("WALK", "BUS", "WALK", "BUS", "WALK") ); + + SmokeTest.assertThatAllTransitLegsHaveFareProducts(plan); } @Test diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 3ab7aa998c9..aa1d4bbd9ac 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -112,6 +112,8 @@ static void assertThereArePatternsWithVehiclePositions() { static void assertThatAllTransitLegsHaveFareProducts(TripPlan plan) { var transitLegs = plan.transitItineraries().stream().flatMap(i -> i.transitLegs().stream()); - transitLegs.forEach(leg -> assertFalse(leg.fareProducts().isEmpty())); + transitLegs.forEach(leg -> + assertFalse(leg.fareProducts().isEmpty(), "Leg %s should have fare products".formatted(leg)) + ); } } From d0318ba6d49298c2874571cc9c53675b7950cf63 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 9 Oct 2023 13:43:40 +0200 Subject: [PATCH 127/158] Upgrade to client version 0.0.16 --- pom.xml | 2 +- src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java | 2 +- src/test/java/org/opentripplanner/smoketest/SmokeTest.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index da1089dbc4e..71a62274d1c 100644 --- a/pom.xml +++ b/pom.xml @@ -987,7 +987,7 @@ org.opentripplanner otp-client - 0.0.14 + 0.0.16 test diff --git a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java index 17e24fb297a..3f263298c8e 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java @@ -12,7 +12,7 @@ import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.opentripplanner.client.model.Coordinate; -import org.opentripplanner.client.model.TripPlan.FareProductUse; +import org.opentripplanner.client.model.FareProductUse; import org.opentripplanner.smoketest.util.SmokeTestRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index aa1d4bbd9ac..6ae12c5bc30 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -11,8 +11,8 @@ import java.time.temporal.TemporalAdjusters; import java.util.List; import org.opentripplanner.client.OtpApiClient; +import org.opentripplanner.client.model.Itinerary; import org.opentripplanner.client.model.TripPlan; -import org.opentripplanner.client.model.TripPlan.Itinerary; import org.opentripplanner.client.model.VehicleRentalStation; import org.opentripplanner.client.parameters.TripPlanParameters; import org.opentripplanner.smoketest.util.SmokeTestRequest; From 43a5eb1c8b41d889f86112da19e1656a69bf0eda Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 9 Oct 2023 17:13:12 +0200 Subject: [PATCH 128/158] Improve logging of fare products --- .../opentripplanner/smoketest/SmokeTest.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 6ae12c5bc30..d7dbd924d28 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -16,6 +16,8 @@ import org.opentripplanner.client.model.VehicleRentalStation; import org.opentripplanner.client.parameters.TripPlanParameters; import org.opentripplanner.smoketest.util.SmokeTestRequest; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * This is both a utility class and a category to select or deselect smoke tests during test @@ -27,6 +29,8 @@ */ public class SmokeTest { + private static final Logger LOG = LoggerFactory.getLogger(SmokeTest.class); + public static final OtpApiClient API_CLIENT = new OtpApiClient( ZoneId.of("America/New_York"), "http://localhost:8080" @@ -112,8 +116,16 @@ static void assertThereArePatternsWithVehiclePositions() { static void assertThatAllTransitLegsHaveFareProducts(TripPlan plan) { var transitLegs = plan.transitItineraries().stream().flatMap(i -> i.transitLegs().stream()); - transitLegs.forEach(leg -> - assertFalse(leg.fareProducts().isEmpty(), "Leg %s should have fare products".formatted(leg)) - ); + transitLegs.forEach(leg -> { + assertFalse(leg.fareProducts().isEmpty(), "Leg %s should have fare products".formatted(leg)); + + LOG.info( + "Leg with mode {} from {} to {} has {} fare products.", + leg.mode(), + leg.from(), + leg.to(), + leg.fareProducts().size() + ); + }); } } From f88e12da2f08180ac4833a3e0591aa1b84530246 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 12 Oct 2023 21:35:19 +0200 Subject: [PATCH 129/158] Add assertion that all SEPTA legs have fares --- src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java index 3f263298c8e..1ec4f920afa 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java @@ -57,6 +57,8 @@ public void routeFromAirportToNorthPhiladelphia() { LOG.info("Received fare products {}", products); assertTrue(prices.contains(2.5d)); + + SmokeTest.assertThatAllTransitLegsHaveFareProducts(plan); } @Test From 8552aa2908133bf5e304c030ef2a5cf4220b7549 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 12 Oct 2023 21:49:16 +0200 Subject: [PATCH 130/158] Assert that all fare products are greater than 0 --- .../smoketest/HoustonSmokeTest.java | 4 +++- .../org/opentripplanner/smoketest/SmokeTest.java | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java index 1cf43de7fde..5f40fb25edf 100644 --- a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java @@ -38,10 +38,12 @@ public void routeFromSouthToNorth() { @Test public void selectOnlyBusses() { var modes = Set.of(BUS, WALK); - SmokeTest.basicRouteTest( + var plan = SmokeTest.basicRouteTest( new SmokeTestRequest(galvestonRoad, northLindale, modes), List.of("WALK", "BUS", "WALK", "BUS", "WALK", "BUS", "WALK") ); + + SmokeTest.assertThatAllTransitLegsHaveFareProducts(plan); } @Test diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index d7dbd924d28..1de1c3b6843 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -11,6 +11,7 @@ import java.time.temporal.TemporalAdjusters; import java.util.List; import org.opentripplanner.client.OtpApiClient; +import org.opentripplanner.client.model.FareProductUse; import org.opentripplanner.client.model.Itinerary; import org.opentripplanner.client.model.TripPlan; import org.opentripplanner.client.model.VehicleRentalStation; @@ -115,7 +116,11 @@ static void assertThereArePatternsWithVehiclePositions() { } static void assertThatAllTransitLegsHaveFareProducts(TripPlan plan) { - var transitLegs = plan.transitItineraries().stream().flatMap(i -> i.transitLegs().stream()); + var transitLegs = plan + .transitItineraries() + .stream() + .flatMap(i -> i.transitLegs().stream()) + .toList(); transitLegs.forEach(leg -> { assertFalse(leg.fareProducts().isEmpty(), "Leg %s should have fare products".formatted(leg)); @@ -127,5 +132,13 @@ static void assertThatAllTransitLegsHaveFareProducts(TripPlan plan) { leg.fareProducts().size() ); }); + + var fareProducts = transitLegs + .stream() + .flatMap(l -> l.fareProducts().stream().map(FareProductUse::product)); + assertTrue( + fareProducts.anyMatch(fp -> fp.price().amount().floatValue() > 0), + "There were no fare product with a price higher than 0." + ); } } From 992fa240356325467ace94e252bf2b4600577b2b Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 31 Oct 2023 14:47:19 +0100 Subject: [PATCH 131/158] Add assertions for complex CCSWW flex zones --- pom.xml | 2 +- smoke-tests/Makefile | 2 +- smoke-tests/seattle/build-config.json | 5 +++ .../smoketest/SeattleSmokeTest.java | 42 +++++++++++++++++-- .../opentripplanner/smoketest/SmokeTest.java | 6 +-- 5 files changed, 48 insertions(+), 9 deletions(-) diff --git a/pom.xml b/pom.xml index 0201ae46565..3d07ed94fa7 100644 --- a/pom.xml +++ b/pom.xml @@ -982,7 +982,7 @@ org.opentripplanner otp-client - 0.0.16 + 0.0.20 test diff --git a/smoke-tests/Makefile b/smoke-tests/Makefile index adc5ea8fbcd..9a2a1df965e 100644 --- a/smoke-tests/Makefile +++ b/smoke-tests/Makefile @@ -19,7 +19,7 @@ portland/osm.pbf: ${CURL} http://osm.ibi-transit.com/vex/45.424388,-122.885443,45.684746,-122.44084.pbf -o $@ seattle/osm.pbf: - ${CURL} http://osm.ibi-transit.com/vex/47.481002,-122.459681,47.734124,-122.224433.pbf -o $@ + ${CURL} http://osm.ibi-transit.com/vex/47.50925,-122.47458,47.786105,-122.224433.pbf -o $@ build-%: otp.jar %/osm.pbf java -Xmx6G -jar otp.jar --build --save $* diff --git a/smoke-tests/seattle/build-config.json b/smoke-tests/seattle/build-config.json index 7ae045caa8d..fed9ca170ad 100644 --- a/smoke-tests/seattle/build-config.json +++ b/smoke-tests/seattle/build-config.json @@ -12,6 +12,11 @@ "feedId" : "volunteer", "source" : "https://data.trilliumtransit.com/gtfs/soundgenerations-wa-us/soundgenerations-wa-us-volunteer--flex-v2.zip" }, + { + "type" : "gtfs", + "feedId" : "ccsww-nw", + "source" : "https://data.trilliumtransit.com/gtfs/catholiccommunity-wa-us/catholiccommunity-wa-us-northwest--flex-v2.zip" + }, { "type" : "gtfs", "feedId" : "payyourpal", diff --git a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java index 75c771d5b0c..a47e0265121 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java @@ -16,6 +16,7 @@ import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.opentripplanner.client.model.Coordinate; +import org.opentripplanner.client.model.LegMode; import org.opentripplanner.client.model.Route; import org.opentripplanner.smoketest.util.SmokeTestRequest; @@ -23,12 +24,15 @@ @Tag("seattle") public class SeattleSmokeTest { + private static final String CCSWW_ROUTE = "Volunteer Services: Northwest"; Coordinate sodo = new Coordinate(47.5811, -122.3290); Coordinate clydeHill = new Coordinate(47.6316, -122.2173); - Coordinate boeingCreekPark = new Coordinate(47.755872, -122.361645); Coordinate ronaldBogPark = new Coordinate(47.75601664, -122.33141); + Coordinate esperance = new Coordinate(47.7957, -122.3470); + Coordinate shoreline = new Coordinate(47.7568, -122.3483); + @Test public void acrossTheCity() { var modes = Set.of(TRANSIT, WALK); @@ -43,14 +47,44 @@ public void acrossTheCity() { @Test public void flexAndTransit() { var modes = Set.of(WALK, BUS, FLEX_DIRECT, FLEX_EGRESS, FLEX_ACCESS); - SmokeTest.basicRouteTest( - new SmokeTestRequest(boeingCreekPark, ronaldBogPark, modes), + SmokeTest.basicRouteTest(new SmokeTestRequest(shoreline, ronaldBogPark, modes), List.of("BUS")); + } + + @Test + public void ccswwIntoKingCounty() { + var modes = Set.of(WALK, FLEX_DIRECT); + var plan = SmokeTest.basicRouteTest( + new SmokeTestRequest(esperance, shoreline, modes), List.of("BUS") ); + var itin = plan.itineraries().get(0); + var flexLeg = itin.transitLegs().get(0); + assertEquals(CCSWW_ROUTE, flexLeg.route().name()); + assertEquals(CCSWW_ROUTE, flexLeg.route().agency().name()); + } + + @Test + public void ccswwIntoSnohomishCounty() { + var modes = Set.of(WALK, FLEX_DIRECT); + var plan = SmokeTest.basicRouteTest( + new SmokeTestRequest(shoreline, esperance, modes), + List.of("BUS", "WALK") + ); + var walkAndFlex = plan + .transitItineraries() + .stream() + .filter(i -> i.transitLegs().stream().anyMatch(l -> l.route().name().equals(CCSWW_ROUTE))) + .findFirst() + .get(); + assertEquals(2, walkAndFlex.legs().size()); + // walk to the border of King County + assertEquals(LegMode.WALK, walkAndFlex.legs().get(0).mode()); + // and take flex inside Snohomish County to the destination + assertEquals(LegMode.BUS, walkAndFlex.legs().get(1).mode()); } @Test - public void monorailRoute() throws IOException, InterruptedException { + public void monorailRoute() throws IOException { Set modes = SmokeTest.API_CLIENT .routes() .stream() diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 1de1c3b6843..e61bfe9f96e 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -55,7 +55,7 @@ public static void assertThatThereAreVehicleRentalStations() { try { List stations = API_CLIENT.vehicleRentalStations(); assertFalse(stations.isEmpty(), "Found no vehicle rental stations."); - } catch (IOException | InterruptedException e) { + } catch (IOException e) { throw new RuntimeException(e); } } @@ -96,7 +96,7 @@ static TripPlan basicRouteTest(SmokeTestRequest req, List expectedModes) assertThatItineraryHasModes(itineraries, expectedModes); return plan; - } catch (InterruptedException | IOException e) { + } catch (IOException e) { throw new RuntimeException(e); } } @@ -110,7 +110,7 @@ static void assertThereArePatternsWithVehiclePositions() { vehiclePositions.isEmpty(), "Found no patterns that have realtime vehicle positions." ); - } catch (IOException | InterruptedException e) { + } catch (IOException e) { throw new RuntimeException(e); } } From e4de6e4092c5e236d591aba951984acfd57873ac Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 31 Oct 2023 15:05:27 +0100 Subject: [PATCH 132/158] Use correct method for short name --- .../java/org/opentripplanner/smoketest/AtlantaSmokeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index fd6ff192f75..48da9124419 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -61,7 +61,7 @@ public void flexRouteFromCentralAtlantaToPowderSprings() { var usesZone1Route = transitLegs .stream() - .map(l -> l.route().shortName()) + .map(l -> l.route().name()) .anyMatch(name -> name.equals("Zone 1")); assertTrue(usesZone1Route); From 3d9582e09f753ddeaf7a89ce7597c683ba160205 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 31 Oct 2023 15:19:25 +0100 Subject: [PATCH 133/158] Update cache key --- .github/workflows/smoke-tests.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 7c95ba05555..a848e270caf 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -49,9 +49,7 @@ jobs: uses: actions/cache@v3 with: path: smoke-tests/**/*.pbf - key: osm-${{ matrix.locations.name }}-2023-02-22 - restore-keys: | - osm-${{ matrix.locations.name }} + key: osm-${{ matrix.locations.name }}-2023-10-31 - name: Build graph working-directory: smoke-tests From 2d43aeac7904e63bd4101faab5c3d686cf65fba6 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Tue, 14 Nov 2023 09:54:54 +0100 Subject: [PATCH 134/158] Upgrade smoke tests to Java 21 --- .github/workflows/smoke-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index a848e270caf..b8a79b0aeac 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -36,7 +36,7 @@ jobs: - name: Set up Java uses: actions/setup-java@v3 with: - java-version: 17 + java-version: 21 distribution: temurin cache: maven From 8ca02e54ba8977321b0479905effca38d5202ea8 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 20 Nov 2023 15:45:01 +0100 Subject: [PATCH 135/158] Add smoke test for accessible routing and accessibilityScore --- .github/workflows/smoke-tests.yml | 4 +- pom.xml | 2 +- smoke-tests/atlanta/router-config.json | 21 ++++++++++ smoke-tests/seattle/build-config.json | 11 +++++ smoke-tests/seattle/router-config.json | 17 ++++++++ .../smoketest/HoustonSmokeTest.java | 4 +- .../smoketest/SeattleSmokeTest.java | 41 ++++++++++++++++++- .../opentripplanner/smoketest/SmokeTest.java | 7 ++-- 8 files changed, 98 insertions(+), 9 deletions(-) create mode 100644 smoke-tests/atlanta/router-config.json diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index b8a79b0aeac..1a86cd9c333 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -23,8 +23,8 @@ jobs: sleep: 15 - name: houston sleep: 15 - - name: denver - sleep: 15 + #- name: denver + # sleep: 15 - name: septa sleep: 15 - name: portland diff --git a/pom.xml b/pom.xml index 468448b6bc0..229a053ddc4 100644 --- a/pom.xml +++ b/pom.xml @@ -971,7 +971,7 @@ org.opentripplanner otp-client - 0.0.20 + 0.0.23 test diff --git a/smoke-tests/atlanta/router-config.json b/smoke-tests/atlanta/router-config.json new file mode 100644 index 00000000000..fe4c160bd12 --- /dev/null +++ b/smoke-tests/atlanta/router-config.json @@ -0,0 +1,21 @@ +{ + "routingDefaults": { + "itineraryFilters": { + // add IBI accessibility score between 0 and 1 + "accessibilityScore": true + }, + // use stop and trip with unknown wheelchair accessibility during routing + "wheelchairAccessibility": { + "trip": { + "onlyConsiderAccessible": false, + "unknownCost": 600, + "inaccessibleCost": 3600 + }, + "stop": { + "onlyConsiderAccessible": false, + "unknownCost": 600, + "inaccessibleCost": 3600 + } + } + } +} diff --git a/smoke-tests/seattle/build-config.json b/smoke-tests/seattle/build-config.json index fed9ca170ad..2ab8a50787c 100644 --- a/smoke-tests/seattle/build-config.json +++ b/smoke-tests/seattle/build-config.json @@ -37,5 +37,16 @@ "feedId" : "monorail", "source" : "https://github.com/transitland/gtfs-archives-not-hosted-elsewhere/raw/master/seattlemonorail-wa-us.zip" } + ], + "transferRequests": [ + { + "modes": "WALK" + }, + { + "modes": "WALK", + "wheelchairAccessibility": { + "enabled": true + } + } ] } diff --git a/smoke-tests/seattle/router-config.json b/smoke-tests/seattle/router-config.json index 87e991fbd52..1d28a694b66 100644 --- a/smoke-tests/seattle/router-config.json +++ b/smoke-tests/seattle/router-config.json @@ -1,4 +1,21 @@ { + "routingDefaults": { + "itineraryFilters": { + "accessibilityScore": true + }, + "wheelchairAccessibility": { + "trip": { + "onlyConsiderAccessible": false, + "unknownCost": 600, + "inaccessibleCost": 3600 + }, + "stop": { + "onlyConsiderAccessible": false, + "unknownCost": 600, + "inaccessibleCost": 3600 + } + } + }, "updaters": [ { "type": "stop-time-updater", diff --git a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java index 5f40fb25edf..e609ad91757 100644 --- a/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/HoustonSmokeTest.java @@ -29,7 +29,7 @@ public void routeFromSouthToNorth() { var modes = Set.of(TRANSIT, WALK); var plan = SmokeTest.basicRouteTest( new SmokeTestRequest(galvestonRoad, northLindale, modes), - List.of("WALK", "BUS", "BUS", "WALK", "TRAM", "WALK") + List.of("WALK", "BUS", "WALK", "TRAM", "WALK") ); SmokeTest.assertThatAllTransitLegsHaveFareProducts(plan); @@ -40,7 +40,7 @@ public void selectOnlyBusses() { var modes = Set.of(BUS, WALK); var plan = SmokeTest.basicRouteTest( new SmokeTestRequest(galvestonRoad, northLindale, modes), - List.of("WALK", "BUS", "WALK", "BUS", "WALK", "BUS", "WALK") + List.of("WALK", "BUS", "WALK", "BUS", "WALK") ); SmokeTest.assertThatAllTransitLegsHaveFareProducts(plan); diff --git a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java index a47e0265121..98cddc8a958 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java @@ -1,6 +1,8 @@ package org.opentripplanner.smoketest; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.opentripplanner.client.model.RequestMode.BUS; import static org.opentripplanner.client.model.RequestMode.FLEX_ACCESS; import static org.opentripplanner.client.model.RequestMode.FLEX_DIRECT; @@ -13,11 +15,14 @@ import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.opentripplanner.client.model.Coordinate; import org.opentripplanner.client.model.LegMode; import org.opentripplanner.client.model.Route; +import org.opentripplanner.client.model.TripPlan; +import org.opentripplanner.client.parameters.TripPlanParametersBuilder; import org.opentripplanner.smoketest.util.SmokeTestRequest; @Tag("smoke-test") @@ -44,6 +49,40 @@ public void acrossTheCity() { SmokeTest.assertThatAllTransitLegsHaveFareProducts(plan); } + @Test + public void accessibleRouting() throws IOException { + var tripPlan = testAccessibleRouting(1.6f); + assertFalse(tripPlan.transitItineraries().isEmpty()); + } + + @Test + @Disabled + public void accessibleRoutingWithVeryHighWalkReluctance() throws IOException { + testAccessibleRouting(50); + } + + private TripPlan testAccessibleRouting(float walkReluctance) throws IOException { + var req = new TripPlanParametersBuilder() + .withFrom(sodo) + .withTo(clydeHill) + .withTime(SmokeTest.weekdayAtNoon()) + .withWheelchair(true) + .withModes(TRANSIT) + .withWalkReluctance(walkReluctance) + .build(); + + var tripPlan = SmokeTest.API_CLIENT.plan(req); + + // assert that accessibility score is there + tripPlan + .itineraries() + .forEach(i -> { + assertTrue(i.accessibilityScore().isPresent()); + i.legs().forEach(l -> assertTrue(l.accessibilityScore().isPresent())); + }); + return tripPlan; + } + @Test public void flexAndTransit() { var modes = Set.of(WALK, BUS, FLEX_DIRECT, FLEX_EGRESS, FLEX_ACCESS); @@ -85,7 +124,7 @@ public void ccswwIntoSnohomishCounty() { @Test public void monorailRoute() throws IOException { - Set modes = SmokeTest.API_CLIENT + var modes = SmokeTest.API_CLIENT .routes() .stream() .map(Route::mode) diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index e61bfe9f96e..1a1085b7029 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -6,6 +6,7 @@ import java.io.IOException; import java.time.DayOfWeek; import java.time.LocalDate; +import java.time.LocalDateTime; import java.time.LocalTime; import java.time.ZoneId; import java.time.temporal.TemporalAdjusters; @@ -46,9 +47,9 @@ public class SmokeTest { * This is a problem in particular in the case of MARTA as they only publish new data about 2 days * before the expiration date of the old one. */ - public static LocalDate nextMonday() { + public static LocalDateTime weekdayAtNoon() { var today = LocalDate.now(); - return today.with(TemporalAdjusters.next(DayOfWeek.FRIDAY)); + return today.with(TemporalAdjusters.next(DayOfWeek.TUESDAY)).atTime(LocalTime.of(12, 0)); } public static void assertThatThereAreVehicleRentalStations() { @@ -86,7 +87,7 @@ static TripPlan basicRouteTest(SmokeTestRequest req, List expectedModes) .withFrom(req.from()) .withTo(req.to()) .withModes(req.modes()) - .withTime(SmokeTest.nextMonday().atTime(LocalTime.of(12, 0))) + .withTime(SmokeTest.weekdayAtNoon()) .withSearchDirection(req.searchDirection()) .build(); var plan = API_CLIENT.plan(tpr); From fe326ffc233f64dc99ec8fcb95be7fa3e7524573 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 22 Nov 2023 13:15:20 +0100 Subject: [PATCH 136/158] Reactive accessible routing smoke test --- .../smoketest/SeattleSmokeTest.java | 69 ++++++++++--------- 1 file changed, 36 insertions(+), 33 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java index 98cddc8a958..cee1476feae 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java @@ -15,7 +15,7 @@ import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; -import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.opentripplanner.client.model.Coordinate; @@ -49,38 +49,41 @@ public void acrossTheCity() { SmokeTest.assertThatAllTransitLegsHaveFareProducts(plan); } - @Test - public void accessibleRouting() throws IOException { - var tripPlan = testAccessibleRouting(1.6f); - assertFalse(tripPlan.transitItineraries().isEmpty()); - } - - @Test - @Disabled - public void accessibleRoutingWithVeryHighWalkReluctance() throws IOException { - testAccessibleRouting(50); - } - - private TripPlan testAccessibleRouting(float walkReluctance) throws IOException { - var req = new TripPlanParametersBuilder() - .withFrom(sodo) - .withTo(clydeHill) - .withTime(SmokeTest.weekdayAtNoon()) - .withWheelchair(true) - .withModes(TRANSIT) - .withWalkReluctance(walkReluctance) - .build(); - - var tripPlan = SmokeTest.API_CLIENT.plan(req); - - // assert that accessibility score is there - tripPlan - .itineraries() - .forEach(i -> { - assertTrue(i.accessibilityScore().isPresent()); - i.legs().forEach(l -> assertTrue(l.accessibilityScore().isPresent())); - }); - return tripPlan; + @Nested + class AccessibleRouting { + + @Test + public void accessibleRouting() throws IOException { + var tripPlan = testAccessibleRouting(1.6f); + assertFalse(tripPlan.transitItineraries().isEmpty()); + } + + @Test + public void accessibleRoutingWithVeryHighWalkReluctance() throws IOException { + testAccessibleRouting(50); + } + + private TripPlan testAccessibleRouting(float walkReluctance) throws IOException { + var req = new TripPlanParametersBuilder() + .withFrom(sodo) + .withTo(clydeHill) + .withTime(SmokeTest.weekdayAtNoon()) + .withWheelchair(true) + .withModes(TRANSIT) + .withWalkReluctance(walkReluctance) + .build(); + + var tripPlan = SmokeTest.API_CLIENT.plan(req); + + // assert that accessibility score is there + tripPlan + .itineraries() + .forEach(i -> { + assertTrue(i.accessibilityScore().isPresent()); + i.legs().forEach(l -> assertTrue(l.accessibilityScore().isPresent())); + }); + return tripPlan; + } } @Test From 7450fd45c8c252793664c6bce2f3aeaf1465e0dc Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 22 Nov 2023 13:37:01 +0100 Subject: [PATCH 137/158] Reactivate Denver smoke test --- .github/workflows/smoke-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 1a86cd9c333..b8a79b0aeac 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -23,8 +23,8 @@ jobs: sleep: 15 - name: houston sleep: 15 - #- name: denver - # sleep: 15 + - name: denver + sleep: 15 - name: septa sleep: 15 - name: portland From 283d337ac56e123761b72178446c963d8c0621f8 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 22 Nov 2023 15:00:17 +0100 Subject: [PATCH 138/158] Build combinations requests --- pom.xml | 2 +- .../smoketest/AtlantaSmokeTest.java | 33 +++++++- .../util/RequestCombinationsBuilder.java | 82 +++++++++++++++++++ 3 files changed, 114 insertions(+), 3 deletions(-) create mode 100644 src/test/java/org/opentripplanner/smoketest/util/RequestCombinationsBuilder.java diff --git a/pom.xml b/pom.xml index 4f0fe973da3..39fd75b0f39 100644 --- a/pom.xml +++ b/pom.xml @@ -971,7 +971,7 @@ org.opentripplanner otp-client - 0.0.23 + 0.0.24 test diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index 48da9124419..e0bbdd3e8b6 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -1,5 +1,6 @@ package org.opentripplanner.smoketest; +import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.opentripplanner.client.model.RequestMode.FLEX_EGRESS; import static org.opentripplanner.client.model.RequestMode.TRANSIT; @@ -7,11 +8,16 @@ import static org.opentripplanner.smoketest.SmokeTest.assertThatItineraryHasModes; import static org.opentripplanner.smoketest.SmokeTest.basicRouteTest; +import java.io.IOException; import java.util.List; import java.util.Set; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import org.opentripplanner.client.model.Coordinate; +import org.opentripplanner.client.parameters.TripPlanParameters; +import org.opentripplanner.smoketest.util.RequestCombinationsBuilder; import org.opentripplanner.smoketest.util.SmokeTestRequest; /** @@ -28,8 +34,14 @@ @Tag("atlanta") public class AtlantaSmokeTest { - Coordinate nearGeorgiaStateStation = new Coordinate(33.74139944890028, -84.38607215881348); - Coordinate powderSpringsInsideFlexZone1 = new Coordinate(33.86916840022388, -84.66315507888794); + static Coordinate nearGeorgiaStateStation = new Coordinate(33.74139944890028, -84.38607215881348); + static Coordinate powderSpringsInsideFlexZone1 = new Coordinate( + 33.86916840022388, + -84.66315507888794 + ); + + static Coordinate peachtreeCreek = new Coordinate(33.7310, -84.3823); + static Coordinate lindberghCenter = new Coordinate(33.8235, -84.3674); @Test public void regularRouteFromCentralAtlantaToPowderSprings() { @@ -66,4 +78,21 @@ public void flexRouteFromCentralAtlantaToPowderSprings() { assertTrue(usesZone1Route); } + + static List buildCombinations() { + return new RequestCombinationsBuilder() + .withLocations(lindberghCenter, peachtreeCreek) + .withModes(TRANSIT, WALK) + .withTime(SmokeTest.weekdayAtNoon()) + .includeWheelchair() + .includeArriveBy() + .build(); + } + + @ParameterizedTest + @MethodSource("buildCombinations") + public void accessibleRouting(TripPlanParameters params) throws IOException { + var tripPlan = SmokeTest.API_CLIENT.plan(params); + assertFalse(tripPlan.transitItineraries().isEmpty()); + } } diff --git a/src/test/java/org/opentripplanner/smoketest/util/RequestCombinationsBuilder.java b/src/test/java/org/opentripplanner/smoketest/util/RequestCombinationsBuilder.java new file mode 100644 index 00000000000..bc83e70645d --- /dev/null +++ b/src/test/java/org/opentripplanner/smoketest/util/RequestCombinationsBuilder.java @@ -0,0 +1,82 @@ +package org.opentripplanner.smoketest.util; + +import static org.opentripplanner.client.parameters.TripPlanParameters.SearchDirection.ARRIVE_BY; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Stream; +import org.opentripplanner.client.model.Coordinate; +import org.opentripplanner.client.model.RequestMode; +import org.opentripplanner.client.parameters.TripPlanParameters; +import org.opentripplanner.client.parameters.TripPlanParametersBuilder; + +/** + * Generates all possible combinations of requests given input parameters. + * For the coordinates will be used for start and end, wheelchair will be on/off and the search + * direction (depart at/arrive by) toggled. + */ +public class RequestCombinationsBuilder { + + private Coordinate p1; + private Coordinate p2; + private LocalDateTime time; + private Set modes; + private boolean includeWheelchair = false; + private boolean includeArriveBy = false; + + public RequestCombinationsBuilder withLocations(Coordinate p1, Coordinate p2) { + this.p1 = p1; + this.p2 = p2; + return this; + } + + public RequestCombinationsBuilder withTime(LocalDateTime time) { + this.time = time; + return this; + } + + public RequestCombinationsBuilder includeWheelchair() { + includeWheelchair = true; + return this; + } + + public RequestCombinationsBuilder includeArriveBy() { + includeArriveBy = true; + return this; + } + + public RequestCombinationsBuilder withModes(RequestMode... requestMode) { + this.modes = Set.copyOf(List.of(requestMode)); + return this; + } + + public List build() { + var builder1 = new TripPlanParametersBuilder().withFrom(p1).withTo(p2); + var builder2 = new TripPlanParametersBuilder().withFrom(p2).withTo(p1); + + return Stream + .of(builder1, builder2) + .map(b -> b.withTime(time).withModes(modes)) + .flatMap(original -> duplicateIf(includeWheelchair, original, o -> o.withWheelchair(true))) + .flatMap(original -> + duplicateIf(includeArriveBy, original, o -> o.withSearchDirection(ARRIVE_BY)) + ) + .map(TripPlanParametersBuilder::build) + .toList(); + } + + private Stream duplicateIf( + boolean includeWheelchair1, + TripPlanParametersBuilder original, + Function duplicate + ) { + if (includeWheelchair1) { + var withWheelchair = duplicate.apply(original.copy()); + return Stream.of(original, withWheelchair); + } else { + return Stream.of(original); + } + } +} From 1e75a5c781e8b8faf0b1d4799524a988f6077384 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 22 Nov 2023 15:04:01 +0100 Subject: [PATCH 139/158] Also pre-compute accessible transfers in Atlanta --- smoke-tests/atlanta/build-config.json | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/smoke-tests/atlanta/build-config.json b/smoke-tests/atlanta/build-config.json index f6ada71ac40..091663f4833 100644 --- a/smoke-tests/atlanta/build-config.json +++ b/smoke-tests/atlanta/build-config.json @@ -19,5 +19,16 @@ "feedId" : "MARTA", "source" : "https://itsmarta.com/google_transit_feed/google_transit.zip" } + ], + "transferRequests": [ + { + "modes": "WALK" + }, + { + "modes": "WALK", + "wheelchairAccessibility": { + "enabled": true + } + } ] } From 78d9736e04f711df2dd0e5681e667dbbf3ba78b8 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 22 Nov 2023 15:17:58 +0100 Subject: [PATCH 140/158] Also combine with multiple locations to increase number of tests quite dramatically --- .../smoketest/AtlantaSmokeTest.java | 4 ++- .../util/RequestCombinationsBuilder.java | 29 ++++++++++++------- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index e0bbdd3e8b6..b9c529289ec 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -42,6 +42,8 @@ public class AtlantaSmokeTest { static Coordinate peachtreeCreek = new Coordinate(33.7310, -84.3823); static Coordinate lindberghCenter = new Coordinate(33.8235, -84.3674); + static Coordinate maddoxPark = new Coordinate(33.7705, -84.4265); + static Coordinate druidHills = new Coordinate(33.77933, -84.33689); @Test public void regularRouteFromCentralAtlantaToPowderSprings() { @@ -81,7 +83,7 @@ public void flexRouteFromCentralAtlantaToPowderSprings() { static List buildCombinations() { return new RequestCombinationsBuilder() - .withLocations(lindberghCenter, peachtreeCreek) + .withLocations(lindberghCenter, peachtreeCreek, maddoxPark, druidHills) .withModes(TRANSIT, WALK) .withTime(SmokeTest.weekdayAtNoon()) .includeWheelchair() diff --git a/src/test/java/org/opentripplanner/smoketest/util/RequestCombinationsBuilder.java b/src/test/java/org/opentripplanner/smoketest/util/RequestCombinationsBuilder.java index bc83e70645d..ce2bdacb334 100644 --- a/src/test/java/org/opentripplanner/smoketest/util/RequestCombinationsBuilder.java +++ b/src/test/java/org/opentripplanner/smoketest/util/RequestCombinationsBuilder.java @@ -3,6 +3,7 @@ import static org.opentripplanner.client.parameters.TripPlanParameters.SearchDirection.ARRIVE_BY; import java.time.LocalDateTime; +import java.util.Arrays; import java.util.List; import java.util.Set; import java.util.function.Function; @@ -11,24 +12,23 @@ import org.opentripplanner.client.model.RequestMode; import org.opentripplanner.client.parameters.TripPlanParameters; import org.opentripplanner.client.parameters.TripPlanParametersBuilder; +import org.opentripplanner.framework.collection.ListUtils; /** * Generates all possible combinations of requests given input parameters. - * For the coordinates will be used for start and end, wheelchair will be on/off and the search - * direction (depart at/arrive by) toggled. + * For example the coordinates will be used for start and end, wheelchair will be on/off and the + * search direction (depart at/arrive by) toggled. */ public class RequestCombinationsBuilder { - private Coordinate p1; - private Coordinate p2; + private List places; private LocalDateTime time; private Set modes; private boolean includeWheelchair = false; private boolean includeArriveBy = false; - public RequestCombinationsBuilder withLocations(Coordinate p1, Coordinate p2) { - this.p1 = p1; - this.p2 = p2; + public RequestCombinationsBuilder withLocations(Coordinate p1, Coordinate p2, Coordinate... p3) { + this.places = ListUtils.combine(List.of(p1, p2), Arrays.asList(p3)); return this; } @@ -53,11 +53,9 @@ public RequestCombinationsBuilder withModes(RequestMode... requestMode) { } public List build() { - var builder1 = new TripPlanParametersBuilder().withFrom(p1).withTo(p2); - var builder2 = new TripPlanParametersBuilder().withFrom(p2).withTo(p1); + Stream builder = combineLocations(places); - return Stream - .of(builder1, builder2) + return builder .map(b -> b.withTime(time).withModes(modes)) .flatMap(original -> duplicateIf(includeWheelchair, original, o -> o.withWheelchair(true))) .flatMap(original -> @@ -79,4 +77,13 @@ private Stream duplicateIf( return Stream.of(original); } } + + private static Stream combineLocations(List places) { + return places + .stream() + .flatMap(place -> { + var builder = TripPlanParameters.builder().withFrom(place); + return places.stream().filter(p -> !p.equals(place)).map(p -> builder.copy().withTo(p)); + }); + } } From d44d6d6db2099f3a6daf893c9056e32f8f6d55c5 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 13 Dec 2023 22:10:42 +0100 Subject: [PATCH 141/158] MARTA has not released their data for next week, switch date to tomorrow --- src/test/java/org/opentripplanner/smoketest/SmokeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index 1a1085b7029..f9f52424b88 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -49,7 +49,7 @@ public class SmokeTest { */ public static LocalDateTime weekdayAtNoon() { var today = LocalDate.now(); - return today.with(TemporalAdjusters.next(DayOfWeek.TUESDAY)).atTime(LocalTime.of(12, 0)); + return today.with(TemporalAdjusters.next(DayOfWeek.THURSDAY)).atTime(LocalTime.of(12, 0)); } public static void assertThatThereAreVehicleRentalStations() { From 8da528ee794ba63b5f03dedce1ca62a35831e350 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 11 Jan 2024 10:54:11 +0100 Subject: [PATCH 142/158] Disable Portland scooter rental tests, seems like they are closed for the winter --- .../smoketest/PortlandSmokeTest.java | 45 +++++++++++-------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java index f55810283ca..11ec17bea19 100644 --- a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java @@ -6,6 +6,8 @@ import java.util.List; import java.util.Set; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; @@ -35,25 +37,30 @@ public void railTrip() { SmokeTest.assertThatAllTransitLegsHaveFareProducts(plan); } - /** - * Checks that a scooter rental finishes at the edge of the park area and is continued on - * foot rather than scootering all the way to the destination. - */ - @ParameterizedTest(name = "scooter rental in a geofencing zone with arriveBy={0}") - @ValueSource(booleans = { true, false }) - public void geofencingZone(boolean arriveBy) { - SmokeTest.basicRouteTest( - new SmokeTestRequest(buckman, mountTaborPark, Set.of(SCOOTER_RENT, WALK), arriveBy), - List.of("WALK", "SCOOTER", "WALK") - ); - } + @Nested + @Disabled + class GeofencingZones { - @ParameterizedTest(name = "scooter rental with arriveBy={0}") - @ValueSource(booleans = { true, false }) - void scooterRent(boolean arriveBy) { - SmokeTest.basicRouteTest( - new SmokeTestRequest(cennentenial, piedmont, Set.of(SCOOTER_RENT, WALK), arriveBy), - List.of("WALK", "SCOOTER") - ); + /** + * Checks that a scooter rental finishes at the edge of the park area and is continued on + * foot rather than scootering all the way to the destination. + */ + @ParameterizedTest(name = "scooter rental in a geofencing zone with arriveBy={0}") + @ValueSource(booleans = { true, false }) + public void geofencingZone(boolean arriveBy) { + SmokeTest.basicRouteTest( + new SmokeTestRequest(buckman, mountTaborPark, Set.of(SCOOTER_RENT, WALK), arriveBy), + List.of("WALK", "SCOOTER", "WALK") + ); + } + + @ParameterizedTest(name = "scooter rental with arriveBy={0}") + @ValueSource(booleans = { true, false }) + void scooterRent(boolean arriveBy) { + SmokeTest.basicRouteTest( + new SmokeTestRequest(cennentenial, piedmont, Set.of(SCOOTER_RENT, WALK), arriveBy), + List.of("WALK", "SCOOTER") + ); + } } } From fdb900f1b38709ead9df393b0e357ad441f54d38 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 11 Jan 2024 11:10:18 +0100 Subject: [PATCH 143/158] Add combinations to Portland smoke test --- .../smoketest/PortlandSmokeTest.java | 36 +++++++++++++++---- 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java index 11ec17bea19..31b4f29faf6 100644 --- a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java @@ -1,9 +1,12 @@ package org.opentripplanner.smoketest; +import static org.junit.jupiter.api.Assertions.assertFalse; import static org.opentripplanner.client.model.RequestMode.SCOOTER_RENT; import static org.opentripplanner.client.model.RequestMode.TRAM; +import static org.opentripplanner.client.model.RequestMode.TRANSIT; import static org.opentripplanner.client.model.RequestMode.WALK; +import java.io.IOException; import java.util.List; import java.util.Set; import org.junit.jupiter.api.Disabled; @@ -11,19 +14,22 @@ import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import org.junit.jupiter.params.provider.ValueSource; import org.opentripplanner.client.model.Coordinate; +import org.opentripplanner.client.parameters.TripPlanParameters; +import org.opentripplanner.smoketest.util.RequestCombinationsBuilder; import org.opentripplanner.smoketest.util.SmokeTestRequest; @Tag("smoke-test") @Tag("portland") public class PortlandSmokeTest { - Coordinate cennentenial = new Coordinate(45.504602, -122.4968719); - Coordinate buckman = new Coordinate(45.51720, -122.652289867); - Coordinate hazelwood = new Coordinate(45.52463, -122.5583); - Coordinate piedmont = new Coordinate(45.5746, -122.6697); - Coordinate mountTaborPark = new Coordinate(45.511399, -122.594203); + final static Coordinate cennentenial = new Coordinate(45.504602, -122.4968719); + final static Coordinate buckman = new Coordinate(45.51720, -122.652289867); + final static Coordinate hazelwood = new Coordinate(45.52463, -122.5583); + final static Coordinate piedmont = new Coordinate(45.5746, -122.6697); + final static Coordinate mountTaborPark = new Coordinate(45.511399, -122.594203); @Test public void railTrip() { @@ -37,8 +43,26 @@ public void railTrip() { SmokeTest.assertThatAllTransitLegsHaveFareProducts(plan); } + static List buildCombinations() { + return new RequestCombinationsBuilder() + .withLocations(cennentenial, buckman, hazelwood, piedmont, mountTaborPark) + .withModes(TRANSIT, WALK) + .withTime(SmokeTest.weekdayAtNoon()) + .includeWheelchair() + .includeArriveBy() + .build(); + } + + @ParameterizedTest + @MethodSource("buildCombinations") + public void accessibleRouting(TripPlanParameters params) throws IOException { + var tripPlan = SmokeTest.API_CLIENT.plan(params); + assertFalse(tripPlan.transitItineraries().isEmpty()); + SmokeTest.assertThatAllTransitLegsHaveFareProducts(tripPlan); + } + @Nested - @Disabled + @Disabled("Disabled because it seems that the rental services have closed for the winter") class GeofencingZones { /** From dab4d736864119bd0b40bb038d236139e56d9ad4 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 11 Jan 2024 11:13:21 +0100 Subject: [PATCH 144/158] Format code --- .../opentripplanner/smoketest/PortlandSmokeTest.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java index 31b4f29faf6..9881b6eb0a2 100644 --- a/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/PortlandSmokeTest.java @@ -25,11 +25,11 @@ @Tag("portland") public class PortlandSmokeTest { - final static Coordinate cennentenial = new Coordinate(45.504602, -122.4968719); - final static Coordinate buckman = new Coordinate(45.51720, -122.652289867); - final static Coordinate hazelwood = new Coordinate(45.52463, -122.5583); - final static Coordinate piedmont = new Coordinate(45.5746, -122.6697); - final static Coordinate mountTaborPark = new Coordinate(45.511399, -122.594203); + static final Coordinate cennentenial = new Coordinate(45.504602, -122.4968719); + static final Coordinate buckman = new Coordinate(45.51720, -122.652289867); + static final Coordinate hazelwood = new Coordinate(45.52463, -122.5583); + static final Coordinate piedmont = new Coordinate(45.5746, -122.6697); + static final Coordinate mountTaborPark = new Coordinate(45.511399, -122.594203); @Test public void railTrip() { From e704e9a36ce65581597f404123917cf406e3dd54 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 18 Jan 2024 19:42:37 +0100 Subject: [PATCH 145/158] Run tests on Friday --- src/test/java/org/opentripplanner/smoketest/SmokeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java index f9f52424b88..1319e7f8fd9 100644 --- a/src/test/java/org/opentripplanner/smoketest/SmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SmokeTest.java @@ -49,7 +49,7 @@ public class SmokeTest { */ public static LocalDateTime weekdayAtNoon() { var today = LocalDate.now(); - return today.with(TemporalAdjusters.next(DayOfWeek.THURSDAY)).atTime(LocalTime.of(12, 0)); + return today.with(TemporalAdjusters.next(DayOfWeek.FRIDAY)).atTime(LocalTime.of(12, 0)); } public static void assertThatThereAreVehicleRentalStations() { From fb0e2058be307750fd874dbc816c01037298010b Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 18 Jan 2024 19:50:15 +0100 Subject: [PATCH 146/158] Change test assertion --- src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java index 1ec4f920afa..fa347ea5b24 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java @@ -56,7 +56,7 @@ public void routeFromAirportToNorthPhiladelphia() { LOG.info("Received fare products {}", products); - assertTrue(prices.contains(2.5d)); + assertTrue(prices.contains(6.75d)); SmokeTest.assertThatAllTransitLegsHaveFareProducts(plan); } From 16e07364e7babbdb6619aa02a78f1499c0307d6b Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 18 Jan 2024 20:19:34 +0100 Subject: [PATCH 147/158] Make fare check a little more forgiving --- .../java/org/opentripplanner/smoketest/SeptaSmokeTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java index fa347ea5b24..8997971e614 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeptaSmokeTest.java @@ -57,8 +57,7 @@ public void routeFromAirportToNorthPhiladelphia() { LOG.info("Received fare products {}", products); assertTrue(prices.contains(6.75d)); - - SmokeTest.assertThatAllTransitLegsHaveFareProducts(plan); + //SmokeTest.assertThatAllTransitLegsHaveFareProducts(plan); } @Test From 741e2f27c265c22a4fdbbe9a9c1c4f7d097ddc75 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Wed, 31 Jan 2024 09:52:02 +0100 Subject: [PATCH 148/158] Update actions version --- .github/workflows/smoke-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index b8a79b0aeac..5345d7cc77f 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -32,9 +32,9 @@ jobs: sleep: 125 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Java - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: 21 distribution: temurin From 0a42a1dcc7d2386cdc1e99265082cf71e42b68ae Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 5 Feb 2024 16:53:26 +0100 Subject: [PATCH 149/158] Use different source for monorail --- smoke-tests/seattle/build-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smoke-tests/seattle/build-config.json b/smoke-tests/seattle/build-config.json index 2ab8a50787c..1f8d05db3cc 100644 --- a/smoke-tests/seattle/build-config.json +++ b/smoke-tests/seattle/build-config.json @@ -35,7 +35,7 @@ { "type" : "gtfs", "feedId" : "monorail", - "source" : "https://github.com/transitland/gtfs-archives-not-hosted-elsewhere/raw/master/seattlemonorail-wa-us.zip" + "source" : "https://gtfs.sound.obaweb.org/prod/96_gtfs.zip" } ], "transferRequests": [ From 4a78301cfbf0bd7c8b027f3e788667dd52059c77 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 8 Feb 2024 10:31:16 +0100 Subject: [PATCH 150/158] Update Atlanta smoke test --- .../java/org/opentripplanner/smoketest/AtlantaSmokeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index b9c529289ec..6ff83c32ddd 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -62,7 +62,7 @@ public void flexRouteFromCentralAtlantaToPowderSprings() { Set.of(FLEX_EGRESS, WALK, TRANSIT) ); - var expectedModes = List.of("WALK", "SUBWAY", "WALK", "BUS", "WALK", "BUS"); + var expectedModes = List.of("WALK", "SUBWAY", "WALK", "BUS", "WALK", "BUS", "WALK", "BUS"); var plan = basicRouteTest(req, expectedModes); var itineraries = plan.itineraries(); From c2afe268a84fb4f2a6e8d969971c70efe62600cb Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 8 Feb 2024 12:15:19 +0100 Subject: [PATCH 151/158] Add penalty for Cobb County flex --- smoke-tests/atlanta/router-config.json | 8 ++++++++ .../org/opentripplanner/smoketest/AtlantaSmokeTest.java | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/smoke-tests/atlanta/router-config.json b/smoke-tests/atlanta/router-config.json index fe4c160bd12..b882746ab1f 100644 --- a/smoke-tests/atlanta/router-config.json +++ b/smoke-tests/atlanta/router-config.json @@ -16,6 +16,14 @@ "unknownCost": 600, "inaccessibleCost": 3600 } + }, + "accessEgress": { + "penalty": { + "FLEXIBLE" : { + "timePenalty" : "10m + 1.3t", + "costFactor" : 1.2 + } + } } } } diff --git a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java index 6ff83c32ddd..b9c529289ec 100644 --- a/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/AtlantaSmokeTest.java @@ -62,7 +62,7 @@ public void flexRouteFromCentralAtlantaToPowderSprings() { Set.of(FLEX_EGRESS, WALK, TRANSIT) ); - var expectedModes = List.of("WALK", "SUBWAY", "WALK", "BUS", "WALK", "BUS", "WALK", "BUS"); + var expectedModes = List.of("WALK", "SUBWAY", "WALK", "BUS", "WALK", "BUS"); var plan = basicRouteTest(req, expectedModes); var itineraries = plan.itineraries(); From 9258efabffb13f2a2d3de78615cc6b27794aab05 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 15 Feb 2024 14:48:51 +0100 Subject: [PATCH 152/158] Flesh out Seattle smoke test --- smoke-tests/seattle/build-config.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/smoke-tests/seattle/build-config.json b/smoke-tests/seattle/build-config.json index 1f8d05db3cc..dc6ffdb551a 100644 --- a/smoke-tests/seattle/build-config.json +++ b/smoke-tests/seattle/build-config.json @@ -32,6 +32,21 @@ "feedId" : "kcm", "source" : "https://metro.kingcounty.gov/GTFS/google_transit.zip" }, + { + "type" : "gtfs", + "feedId" : "pierce", + "source" : "https://gtfs.sound.obaweb.org/prod/3_gtfs.zip" + }, + { + "type" : "gtfs", + "feedId" : "soundtransit", + "source" : "https://gtfs.sound.obaweb.org/prod/40_gtfs.zip" + }, + { + "type" : "gtfs", + "feedId" : "commtrans", + "source" : "https://picsapi.commtrans.org/download/liveGTFS.zip" + }, { "type" : "gtfs", "feedId" : "monorail", From 79047510c1c98bbaad992665b31e0629f743f6ef Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 15 Feb 2024 14:54:35 +0100 Subject: [PATCH 153/158] Configure stop consolidation --- smoke-tests/seattle/build-config.json | 3 +- smoke-tests/seattle/consolidated-stops.csv | 314 +++++++++++++++++++++ 2 files changed, 316 insertions(+), 1 deletion(-) create mode 100644 smoke-tests/seattle/consolidated-stops.csv diff --git a/smoke-tests/seattle/build-config.json b/smoke-tests/seattle/build-config.json index dc6ffdb551a..f2346a2c002 100644 --- a/smoke-tests/seattle/build-config.json +++ b/smoke-tests/seattle/build-config.json @@ -63,5 +63,6 @@ "enabled": true } } - ] + ], + "stopConsolidationFile":"consolidated-stops.csv" } diff --git a/smoke-tests/seattle/consolidated-stops.csv b/smoke-tests/seattle/consolidated-stops.csv new file mode 100644 index 00000000000..48166db3c4f --- /dev/null +++ b/smoke-tests/seattle/consolidated-stops.csv @@ -0,0 +1,314 @@ +stop_group_id,feed_id,stop_id,is_primary +1,pierce,1705867009,0 +1,kcm,10225,1 +2,pierce,1569,0 +2,commtrans,473,0 +2,kcm,1040,1 +3,pierce,7157,0 +3,kcm,10911,1 +4,pierce,8783,0 +4,kcm,10914,1 +5,commtrans,40,0 +5,kcm,16140,1 +6,commtrans,41,0 +6,kcm,16770,1 +7,commtrans,546,0 +7,kcm,1710,1 +8,kcm,1907,0 +8,kcm,1889,1 +9,pierce,27940,0 +9,kcm,21280,1 +10,pierce,28354,0 +10,kcm,22256,1 +11,pierce,15742,0 +11,commtrans,1079,0 +11,kcm,280,1 +12,pierce,4705,0 +12,kcm,29240,1 +13,pierce,19473,0 +13,kcm,29247,1 +14,pierce,23561,0 +14,kcm,29865,1 +15,pierce,52843,0 +15,kcm,300,1 +16,pierce,33993,0 +16,kcm,31731,1 +17,pierce,3886,0 +17,commtrans,2909,0 +17,kcm,320,1 +18,pierce,20510,0 +18,kcm,340,1 +19,pierce,223,0 +19,commtrans,2631,0 +19,kcm,360,1 +20,pierce,12914,0 +20,kcm,361,1 +21,pierce,227,0 +21,commtrans,2349,0 +21,kcm,375,1 +22,pierce,30709,0 +22,kcm,390,1 +23,pierce,15709,0 +23,kcm,39990,1 +24,pierce,23731,0 +24,kcm,45191,1 +25,pierce,18916,0 +25,kcm,45219,1 +26,pierce,40868,0 +26,kcm,46520,1 +27,pierce,7909,0 +27,kcm,46530,1 +28,pierce,18489,0 +28,kcm,46541,1 +29,pierce,25846,0 +29,kcm,47970,1 +30,pierce,3351,0 +30,kcm,47972,1 +31,pierce,3351,0 +31,kcm,47972,1 +32,pierce,24394,0 +32,kcm,51480,1 +33,pierce,5184,0 +33,kcm,51520,1 +34,pierce,23059,0 +34,kcm,52200,1 +35,pierce,11908,0 +35,kcm,52240,1 +36,pierce,18005,0 +36,kcm,52304,1 +37,pierce,3284,0 +37,kcm,52306,1 +38,pierce,17059,0 +38,kcm,52636,1 +39,pierce,16997,0 +39,kcm,52638,1 +40,pierce,15501,0 +40,kcm,52639,1 +41,pierce,21878,0 +41,kcm,53501,1 +42,pierce,14524,0 +42,kcm,53502,1 +43,pierce,18598,0 +43,kcm,53503,1 +44,pierce,18598,0 +44,kcm,53503,1 +45,pierce,18598,0 +45,kcm,53503,1 +46,pierce,3818,0 +46,kcm,53504,1 +47,pierce,16561,0 +47,kcm,53505,1 +48,commtrans,759,0 +48,kcm,5419,1 +49,pierce,8770,0 +49,kcm,57775,1 +50,pierce,18728,0 +50,kcm,57776,1 +51,pierce,14363,0 +51,kcm,58782,1 +52,pierce,7885,0 +52,kcm,59860,1 +53,pierce,1796,0 +53,kcm,60620,1 +54,pierce,1793,0 +54,kcm,60632,1 +55,pierce,2267,0 +55,kcm,60634,1 +56,pierce,2270,0 +56,kcm,60636,1 +57,pierce,2255,0 +57,kcm,60637,1 +58,pierce,19162,0 +58,kcm,60880,1 +59,pierce,4933,0 +59,kcm,61090,1 +60,pierce,10625,0 +60,kcm,61335,1 +61,pierce,2269,0 +61,kcm,61336,1 +62,pierce,2268,0 +62,kcm,61338,1 +63,pierce,1792,0 +63,kcm,61340,1 +64,pierce,1794,0 +64,kcm,61342,1 +65,pierce,17305,0 +65,kcm,61437,1 +66,pierce,23974,0 +66,kcm,61453,1 +67,pierce,6908,0 +67,kcm,61454,1 +68,pierce,265,0 +68,kcm,61456,1 +69,pierce,264,0 +69,kcm,61468,1 +70,pierce,267,0 +70,commtrans,640,0 +70,kcm,620,1 +71,pierce,5698,0 +71,commtrans,635,0 +71,kcm,628,1 +72,pierce,266,0 +72,commtrans,2638,0 +72,kcm,648,1 +73,pierce,269,0 +73,commtrans,641,0 +73,kcm,670,1 +74,commtrans,2857,0 +74,kcm,67612,1 +75,commtrans,2860,0 +75,kcm,67655,1 +76,pierce,13217,0 +76,commtrans,2976,0 +76,kcm,700,1 +77,commtrans,2858,0 +77,kcm,70608,1 +78,commtrans,497,0 +78,kcm,71348,1 +79,commtrans,497,0 +79,kcm,71348,1 +80,commtrans,1859,0 +80,kcm,71355,1 +81,commtrans,1859,0 +81,kcm,71355,1 +82,commtrans,2698,0 +82,kcm,760,1 +83,commtrans,2234,0 +83,kcm,76009,1 +84,commtrans,2705,0 +84,kcm,76014,1 +85,commtrans,2219,0 +85,kcm,76216,1 +86,commtrans,2904,0 +86,kcm,76218,1 +87,commtrans,2220,0 +87,kcm,76220,1 +88,commtrans,374,0 +88,kcm,76222,1 +89,commtrans,372,0 +89,kcm,76224,1 +90,commtrans,375,0 +90,kcm,76226,1 +91,commtrans,815,0 +91,kcm,76228,1 +92,commtrans,2233,0 +92,kcm,76234,1 +93,commtrans,2325,0 +93,kcm,76299,1 +94,commtrans,1744,0 +94,kcm,76301,1 +95,commtrans,2903,0 +95,kcm,76309,1 +96,commtrans,2704,0 +96,kcm,76970,1 +97,commtrans,3160,0 +97,kcm,77390,1 +98,commtrans,39,0 +98,kcm,77391,1 +99,commtrans,2700,0 +99,kcm,790,1 +100,pierce,22308,0 +100,kcm,80322,1 +101,pierce,23125,0 +101,kcm,80431,1 +102,pierce,4136,0 +102,kcm,80432,1 +103,pierce,7910,0 +103,kcm,80437,1 +104,pierce,12344,0 +104,kcm,80438,1 +105,commtrans,2702,0 +105,kcm,810,1 +106,commtrans,2290,0 +106,kcm,820,1 +107,commtrans,2851,0 +107,kcm,82687,1 +108,commtrans,2151,0 +108,kcm,82700,1 +109,pierce,11537,0 +109,kcm,82780,1 +110,commtrans,2850,0 +110,kcm,82878,1 +111,commtrans,2862,0 +111,kcm,85800,1 +112,commtrans,492,0 +112,kcm,85810,1 +113,commtrans,685,0 +113,kcm,860,1 +114,commtrans,37,0 +114,kcm,89990,1 +115,pierce,862238654,0 +115,kcm,905,1 +116,pierce,2644,0 +116,commtrans,1909,0 +116,kcm,940,1 +117,commtrans,1908,0 +117,kcm,950,1 +118,pierce,2137019669,0 +118,kcm,950,1 +119,commtrans,1907,0 +119,kcm,970,1 +120,pierce,2011772586,0 +120,kcm,970,1 +121,commtrans,430,0 +121,kcm,992,1 +122,pierce,425,0 +122,kcm,992,1 +123,pierce,596,0 +123,kcm,99252,1 +124,pierce,597,0 +124,kcm,99253,1 +125,pierce,593,0 +125,kcm,99254,1 +126,pierce,592,0 +126,kcm,99263,1 +127,pierce,590,0 +127,kcm,99264,1 +128,pierce,591,0 +128,kcm,99266,1 +129,pierce,594,0 +129,kcm,99267,1 +130,pierce,595,0 +130,kcm,99271,1 +131,kcm,52140,0 +131,pierce,31002,1 +132,kcm,61999,0 +132,pierce,7644,1 +133,wsf,16,0 +133,pierce,853,1 +134,pierce,623,0 +134,intercity,5,1 +135,kcm,91695,0 +135,commtrans,1695,1 +136,kcm,91696,0 +136,commtrans,1696,1 +137,kcm,91697,0 +137,commtrans,1697,1 +138,kcm,91698,0 +138,commtrans,1698,1 +139,kcm,91699,0 +139,commtrans,1699,1 +140,kcm,2203,0 +140,commtrans,1920,1 +141,commtrans,2981,0 +141,commtrans,2131,1 +142,kcm,76305,0 +142,commtrans,2229,1 +143,kcm,98319,0 +143,commtrans,319,1 +144,kcm,91730,0 +144,commtrans,320,1 +145,kcm,91710,0 +145,commtrans,322,1 +146,kcm,98324,0 +146,commtrans,324,1 +147,pierce,24330,0 +147,commtrans,431,1 +148,commtrans,2192,0 +148,kcm,16380,1 +149,commtrans,2191,0 +149,kcm,35319,1 +150,pierce,19280,0 +150,kcm,10917,1 +151,pierce,790447569,0 +151,kcm,10912,1 From 9dab4fb31914e37e927d286ae64ad5e5acd667c6 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 15 Feb 2024 14:56:53 +0100 Subject: [PATCH 154/158] Add RAIL to assertion --- .../java/org/opentripplanner/smoketest/SeattleSmokeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java index cee1476feae..7ad041ecd6b 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java @@ -133,7 +133,7 @@ public void monorailRoute() throws IOException { .map(Route::mode) .map(Objects::toString) .collect(Collectors.toSet()); - assertEquals(Set.of("MONORAIL", "TRAM", "FERRY", "BUS"), modes); + assertEquals(Set.of("MONORAIL", "TRAM", "FERRY", "BUS", "RAIL"), modes); } @Test From a7bebeec671b0c1d910efa23fe9e5476a45920b8 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 15 Feb 2024 17:25:16 +0100 Subject: [PATCH 155/158] Add actual test --- .../smoketest/SeattleSmokeTest.java | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java index 7ad041ecd6b..5acb1e61613 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java @@ -22,6 +22,7 @@ import org.opentripplanner.client.model.LegMode; import org.opentripplanner.client.model.Route; import org.opentripplanner.client.model.TripPlan; +import org.opentripplanner.client.parameters.TripPlanParameters; import org.opentripplanner.client.parameters.TripPlanParametersBuilder; import org.opentripplanner.smoketest.util.SmokeTestRequest; @@ -99,8 +100,8 @@ public void ccswwIntoKingCounty() { new SmokeTestRequest(esperance, shoreline, modes), List.of("BUS") ); - var itin = plan.itineraries().get(0); - var flexLeg = itin.transitLegs().get(0); + var itin = plan.itineraries().getFirst(); + var flexLeg = itin.transitLegs().getFirst(); assertEquals(CCSWW_ROUTE, flexLeg.route().name()); assertEquals(CCSWW_ROUTE, flexLeg.route().agency().name()); } @@ -136,6 +137,25 @@ public void monorailRoute() throws IOException { assertEquals(Set.of("MONORAIL", "TRAM", "FERRY", "BUS", "RAIL"), modes); } + @Test + public void sharedStop() throws IOException { + Coordinate OLIVE_WAY = new Coordinate(47.61309420, -122.336314916); + Coordinate MOUNTAINLAKE_TERRACE = new Coordinate(47.78682093, -122.315694093); + var tpr = TripPlanParameters + .builder() + .withFrom(OLIVE_WAY) + .withTo(MOUNTAINLAKE_TERRACE) + .withModes(BUS, WALK) + .withTime(SmokeTest.weekdayAtNoon().withHour(14).withMinute(30)) + .build(); + var plan = SmokeTest.API_CLIENT.plan(tpr); + var itineraries = plan.itineraries(); + + var first = itineraries.getFirst(); + var leg = first.transitLegs().getFirst(); + assertEquals("510", leg.route().shortName().get()); + } + @Test public void vehiclePositions() { SmokeTest.assertThereArePatternsWithVehiclePositions(); From 25dc513bd129f8b5f9955bf294be5f9332e6d143 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Thu, 15 Feb 2024 21:13:11 +0100 Subject: [PATCH 156/158] Add assertion for particular bus 510 trip --- pom.xml | 2 +- .../org/opentripplanner/smoketest/SeattleSmokeTest.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 406bcea932a..85a0c24db7d 100644 --- a/pom.xml +++ b/pom.xml @@ -949,7 +949,7 @@ org.opentripplanner otp-client - 0.0.24 + 0.0.27 test diff --git a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java index 5acb1e61613..e791edac651 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java @@ -154,6 +154,12 @@ public void sharedStop() throws IOException { var first = itineraries.getFirst(); var leg = first.transitLegs().getFirst(); assertEquals("510", leg.route().shortName().get()); + assertEquals("Sound Transit", leg.route().agency().name()); + + var stop = leg.from().stop().get(); + assertEquals("Olive Way & 6th Ave", stop.name()); + assertEquals("kcm:1040", stop.id()); + assertEquals("1040", stop.code().get()); } @Test From 4e6da15f36d08ccfcb0d05174b37532b6bc794f9 Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Fri, 16 Feb 2024 16:10:49 +0100 Subject: [PATCH 157/158] Add combinations to Seattle smoke test --- .../smoketest/SeattleSmokeTest.java | 49 ++++++++++++++----- 1 file changed, 36 insertions(+), 13 deletions(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java index e791edac651..186c7871ef7 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java @@ -18,12 +18,15 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import org.opentripplanner.client.model.Coordinate; import org.opentripplanner.client.model.LegMode; import org.opentripplanner.client.model.Route; import org.opentripplanner.client.model.TripPlan; import org.opentripplanner.client.parameters.TripPlanParameters; import org.opentripplanner.client.parameters.TripPlanParametersBuilder; +import org.opentripplanner.smoketest.util.RequestCombinationsBuilder; import org.opentripplanner.smoketest.util.SmokeTestRequest; @Tag("smoke-test") @@ -31,19 +34,21 @@ public class SeattleSmokeTest { private static final String CCSWW_ROUTE = "Volunteer Services: Northwest"; - Coordinate sodo = new Coordinate(47.5811, -122.3290); - Coordinate clydeHill = new Coordinate(47.6316, -122.2173); + static final Coordinate SODO = new Coordinate(47.5811, -122.3290); + static final Coordinate CLYDE_HILL = new Coordinate(47.6316, -122.2173); - Coordinate ronaldBogPark = new Coordinate(47.75601664, -122.33141); + static final Coordinate RONALD_BOG_PARK = new Coordinate(47.75601664, -122.33141); - Coordinate esperance = new Coordinate(47.7957, -122.3470); - Coordinate shoreline = new Coordinate(47.7568, -122.3483); + static final Coordinate ESPERANCE = new Coordinate(47.7957, -122.3470); + static final Coordinate SHORELINE = new Coordinate(47.7568, -122.3483); + static final Coordinate MOUNTAINLAKE_TERRACE = new Coordinate(47.78682093, -122.315694093); + static final Coordinate OLIVE_WAY = new Coordinate(47.61309420, -122.336314916); @Test public void acrossTheCity() { var modes = Set.of(TRANSIT, WALK); var plan = SmokeTest.basicRouteTest( - new SmokeTestRequest(sodo, clydeHill, modes), + new SmokeTestRequest(SODO, CLYDE_HILL, modes), List.of("WALK", "BUS", "WALK", "BUS", "WALK") ); @@ -66,8 +71,8 @@ public void accessibleRoutingWithVeryHighWalkReluctance() throws IOException { private TripPlan testAccessibleRouting(float walkReluctance) throws IOException { var req = new TripPlanParametersBuilder() - .withFrom(sodo) - .withTo(clydeHill) + .withFrom(SODO) + .withTo(CLYDE_HILL) .withTime(SmokeTest.weekdayAtNoon()) .withWheelchair(true) .withModes(TRANSIT) @@ -90,14 +95,17 @@ private TripPlan testAccessibleRouting(float walkReluctance) throws IOException @Test public void flexAndTransit() { var modes = Set.of(WALK, BUS, FLEX_DIRECT, FLEX_EGRESS, FLEX_ACCESS); - SmokeTest.basicRouteTest(new SmokeTestRequest(shoreline, ronaldBogPark, modes), List.of("BUS")); + SmokeTest.basicRouteTest( + new SmokeTestRequest(SHORELINE, RONALD_BOG_PARK, modes), + List.of("BUS") + ); } @Test public void ccswwIntoKingCounty() { var modes = Set.of(WALK, FLEX_DIRECT); var plan = SmokeTest.basicRouteTest( - new SmokeTestRequest(esperance, shoreline, modes), + new SmokeTestRequest(ESPERANCE, SHORELINE, modes), List.of("BUS") ); var itin = plan.itineraries().getFirst(); @@ -110,7 +118,7 @@ public void ccswwIntoKingCounty() { public void ccswwIntoSnohomishCounty() { var modes = Set.of(WALK, FLEX_DIRECT); var plan = SmokeTest.basicRouteTest( - new SmokeTestRequest(shoreline, esperance, modes), + new SmokeTestRequest(SHORELINE, ESPERANCE, modes), List.of("BUS", "WALK") ); var walkAndFlex = plan @@ -139,8 +147,6 @@ public void monorailRoute() throws IOException { @Test public void sharedStop() throws IOException { - Coordinate OLIVE_WAY = new Coordinate(47.61309420, -122.336314916); - Coordinate MOUNTAINLAKE_TERRACE = new Coordinate(47.78682093, -122.315694093); var tpr = TripPlanParameters .builder() .withFrom(OLIVE_WAY) @@ -162,6 +168,23 @@ public void sharedStop() throws IOException { assertEquals("1040", stop.code().get()); } + static List buildCombinations() { + return new RequestCombinationsBuilder() + .withLocations(SODO, ESPERANCE, CLYDE_HILL, RONALD_BOG_PARK, OLIVE_WAY, MOUNTAINLAKE_TERRACE) + .withModes(TRANSIT, WALK) + .withTime(SmokeTest.weekdayAtNoon()) + .includeWheelchair() + .includeArriveBy() + .build(); + } + + @ParameterizedTest + @MethodSource("buildCombinations") + public void accessibleRouting(TripPlanParameters params) throws IOException { + var tripPlan = SmokeTest.API_CLIENT.plan(params); + assertFalse(tripPlan.transitItineraries().isEmpty()); + } + @Test public void vehiclePositions() { SmokeTest.assertThereArePatternsWithVehiclePositions(); From 7ac7cf220675ece42eeab19563c3f29f832e35cd Mon Sep 17 00:00:00 2001 From: Leonard Ehrenfried Date: Mon, 4 Mar 2024 12:25:02 +0100 Subject: [PATCH 158/158] Fix monorail test assertion --- .../java/org/opentripplanner/smoketest/SeattleSmokeTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java index 186c7871ef7..69e693f2f7e 100644 --- a/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java +++ b/src/test/java/org/opentripplanner/smoketest/SeattleSmokeTest.java @@ -142,7 +142,8 @@ public void monorailRoute() throws IOException { .map(Route::mode) .map(Objects::toString) .collect(Collectors.toSet()); - assertEquals(Set.of("MONORAIL", "TRAM", "FERRY", "BUS", "RAIL"), modes); + // for some reason the monorail feed says its route is of type rail + assertEquals(Set.of("TRAM", "FERRY", "BUS", "RAIL"), modes); } @Test

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­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%0A@81S*WuF@vvjb6lR@mh&b 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