diff --git a/build.gradle b/build.gradle index bd26798e..e2084b7d 100644 --- a/build.gradle +++ b/build.gradle @@ -68,8 +68,8 @@ dependencies { compile group: 'com.amazonaws', name: 'aws-lambda-java-core', version: '1.1.0' compile group: "com.github.jknack", name: "handlebars", version: "4.2.0" compile group: 'org.xhtmlrenderer', name: 'flying-saucer-pdf-openpdf', version: '9.1.20' - compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.13.4.1' - compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: '2.14.0' + compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.15.0' + compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: '2.15.0' compile group: 'com.amazonaws', name: 'aws-lambda-java-log4j2', version: '1.5.1' compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.22.1' compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.22.1' @@ -78,7 +78,7 @@ dependencies { compile fileTree(dir: 'jars', include: '*.jar') testCompile group: 'junit', name: 'junit', version: '4.13.1' testCompile group: 'org.jsoup', name: 'jsoup', version: '1.15.3' - testCompile group: 'commons-io', name: 'commons-io', version: '2.7' + testCompile group: 'commons-io', name: 'commons-io', version: '2.14.0' testCompile group: 'com.itextpdf', name: 'itextpdf', version: '5.5.12' } diff --git a/manifest.json b/manifest.json index 4fecf3b2..c6a6ac56 100644 --- a/manifest.json +++ b/manifest.json @@ -2,8 +2,9 @@ "name": "doc-gen", "description": "", "team": "", - "documentation": "", - "language": "handlebars", + "documentation": "N/A", + "language": "java", + "language_version": "11", "terraform": false, "monorepo": false, "dynamo_tables": [] diff --git a/package-lock.json b/package-lock.json index fafc50c6..5047d672 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,174 +1,212 @@ { + "name": "cvs-svc-doc-gen", + "lockfileVersion": 3, "requires": true, - "lockfileVersion": 1, - "dependencies": { - "@babel/code-frame": { + "packages": { + "": { + "name": "cvs-svc-doc-gen", + "devDependencies": { + "husky": "^3.0.9" + } + }, + "node_modules/@babel/code-frame": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", "dev": true, - "requires": { + "dependencies": { "@babel/highlight": "^7.12.13" } }, - "@babel/helper-validator-identifier": { + "node_modules/@babel/helper-validator-identifier": { "version": "7.14.0", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", "dev": true }, - "@babel/highlight": { + "node_modules/@babel/highlight": { "version": "7.14.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-validator-identifier": "^7.14.0", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, - "@types/normalize-package-data": { + "node_modules/@types/normalize-package-data": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", "dev": true }, - "ansi-styles": { + "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "requires": { + "dependencies": { "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "argparse": { + "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "requires": { + "dependencies": { "sprintf-js": "~1.0.2" } }, - "caller-callsite": { + "node_modules/caller-callsite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", "dev": true, - "requires": { + "dependencies": { "callsites": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "caller-path": { + "node_modules/caller-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", "dev": true, - "requires": { + "dependencies": { "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "callsites": { + "node_modules/callsites": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "chalk": { + "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "requires": { + "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "ci-info": { + "node_modules/ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, - "color-convert": { + "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "requires": { + "dependencies": { "color-name": "1.1.3" } }, - "color-name": { + "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "cosmiconfig": { + "node_modules/cosmiconfig": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", "dev": true, - "requires": { + "dependencies": { "import-fresh": "^2.0.0", "is-directory": "^0.3.1", "js-yaml": "^3.13.1", "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" } }, - "cross-spawn": { + "node_modules/cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, - "requires": { + "dependencies": { "nice-try": "^1.0.4", "path-key": "^2.0.1", "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" } }, - "end-of-stream": { + "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, - "requires": { + "dependencies": { "once": "^1.4.0" } }, - "error-ex": { + "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "requires": { + "dependencies": { "is-arrayish": "^0.2.1" } }, - "escape-string-regexp": { + "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8.0" + } }, - "esprima": { + "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } }, - "execa": { + "node_modules/execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, - "requires": { + "dependencies": { "cross-spawn": "^6.0.0", "get-stream": "^4.0.0", "is-stream": "^1.1.0", @@ -176,66 +214,85 @@ "p-finally": "^1.0.0", "signal-exit": "^3.0.0", "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" } }, - "find-up": { + "node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "requires": { + "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "function-bind": { + "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "get-stdin": { + "node_modules/get-stdin": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "get-stream": { + "node_modules/get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, - "requires": { + "dependencies": { "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "has": { + "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, - "requires": { + "dependencies": { "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" } }, - "has-flag": { + "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "hosted-git-info": { + "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, - "husky": { + "node_modules/husky": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/husky/-/husky-3.1.0.tgz", "integrity": "sha512-FJkPoHHB+6s4a+jwPqBudBDvYZsoQW5/HBuMSehC8qDiCe50kpcxeqFoDSlow+9I6wg47YxBoT3WxaURlrDIIQ==", "dev": true, - "requires": { + "hasInstallScript": true, + "dependencies": { "chalk": "^2.4.2", "ci-info": "^2.0.0", "cosmiconfig": "^5.2.1", @@ -247,388 +304,494 @@ "read-pkg": "^5.2.0", "run-node": "^1.0.0", "slash": "^3.0.0" + }, + "bin": { + "husky-run": "run.js", + "husky-upgrade": "lib/upgrader/bin.js" + }, + "engines": { + "node": ">=8.6.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/husky" } }, - "import-fresh": { + "node_modules/import-fresh": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", "dev": true, - "requires": { + "dependencies": { "caller-path": "^2.0.0", "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "is-arrayish": { + "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, - "is-core-module": { + "node_modules/is-core-module": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", "dev": true, - "requires": { + "dependencies": { "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-directory": { + "node_modules/is-directory": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "is-stream": { + "node_modules/is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "isexe": { + "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "js-tokens": { + "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "js-yaml": { + "node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "requires": { + "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "json-parse-better-errors": { + "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, - "json-parse-even-better-errors": { + "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "lines-and-columns": { + "node_modules/lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", "dev": true }, - "locate-path": { + "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "requires": { + "dependencies": { "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "nice-try": { + "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, - "normalize-package-data": { + "node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, - "requires": { + "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" } }, - "npm-run-path": { + "node_modules/npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, - "requires": { + "dependencies": { "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "once": { + "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, - "requires": { + "dependencies": { "wrappy": "1" } }, - "opencollective-postinstall": { + "node_modules/opencollective-postinstall": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", - "dev": true + "dev": true, + "bin": { + "opencollective-postinstall": "index.js" + } }, - "p-finally": { + "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "p-limit": { + "node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "requires": { + "dependencies": { "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-locate": { + "node_modules/p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "requires": { + "dependencies": { "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, - "p-try": { + "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "parse-json": { + "node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, - "requires": { + "dependencies": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" } }, - "path-exists": { + "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "path-key": { + "node_modules/path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "path-parse": { + "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "pkg-dir": { + "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, - "requires": { + "dependencies": { "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "please-upgrade-node": { + "node_modules/please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", "dev": true, - "requires": { + "dependencies": { "semver-compare": "^1.0.0" } }, - "pump": { + "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, - "requires": { + "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, - "read-pkg": { + "node_modules/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, - "requires": { + "dependencies": { "@types/normalize-package-data": "^2.4.0", "normalize-package-data": "^2.5.0", "parse-json": "^5.0.0", "type-fest": "^0.6.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, "dependencies": { - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - } + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "resolve": { + "node_modules/resolve": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, - "requires": { + "dependencies": { "is-core-module": "^2.2.0", "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "resolve-from": { + "node_modules/resolve-from": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "run-node": { + "node_modules/run-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz", "integrity": "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==", - "dev": true + "dev": true, + "bin": { + "run-node": "run-node" + }, + "engines": { + "node": ">=4" + } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } }, - "semver-compare": { + "node_modules/semver-compare": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", "dev": true }, - "shebang-command": { + "node_modules/shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, - "requires": { + "dependencies": { "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "shebang-regex": { + "node_modules/shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "signal-exit": { + "node_modules/signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, - "slash": { + "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "spdx-correct": { + "node_modules/spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, - "requires": { + "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, - "spdx-exceptions": { + "node_modules/spdx-exceptions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, - "spdx-expression-parse": { + "node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, - "requires": { + "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, - "spdx-license-ids": { + "node_modules/spdx-license-ids": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", "dev": true }, - "sprintf-js": { + "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "strip-eof": { + "node_modules/strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "supports-color": { + "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "requires": { + "dependencies": { "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "type-fest": { + "node_modules/type-fest": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "validate-npm-package-license": { + "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, - "requires": { + "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, - "which": { + "node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, - "requires": { + "dependencies": { "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "wrappy": { + "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", diff --git a/src/main/java/uk/gov/dvsa/enums/CertificateTypes.java b/src/main/java/uk/gov/dvsa/enums/CertificateTypes.java index 54407460..242193d3 100644 --- a/src/main/java/uk/gov/dvsa/enums/CertificateTypes.java +++ b/src/main/java/uk/gov/dvsa/enums/CertificateTypes.java @@ -30,6 +30,7 @@ public enum CertificateTypes { CVS_FAIL_WELSH("CVS/VTP30W"), CVS_FAIL_BILINGUAL("CVS/VTP30_BILINGUAL"), CVS_PSV_PRS("CVS/PSV_PRS"), + CVS_PSV_PRS_BILINGUAL("CVS/PSV_PRS_BILINGUAL"), CVS_HGV_PASS("CVS/VTG5"), CVS_HGV_PASS_WELSH("CVS/VTG5W"), @@ -41,7 +42,9 @@ public enum CertificateTypes { CVS_HGV_TRL_FAIL_WELSH("CVS/VTG30W"), CVS_HGV_TRL_FAIL_BILINGUAL("CVS/VTG30_BILINGUAL"), CVS_HGV_PRS("CVS/HGV_PRS"), + CVS_HGV_PRS_BILINGUAL("CVS/HGV_PRS_BILINGUAL"), CVS_TRL_PRS("CVS/TRL_PRS"), + CVS_TRL_PRS_BILINGUAL("CVS/TRL_PRS_BILINGUAL"), RWT_DATA("CVS/RWT"), ADR_PASS("CVS/ADR_PASS"), VTG6_VTG7("CVS/VTG6_VTG7"), diff --git a/src/main/java/uk/gov/dvsa/enums/DocumentsConfig.java b/src/main/java/uk/gov/dvsa/enums/DocumentsConfig.java index 5912c46f..03e44fc5 100644 --- a/src/main/java/uk/gov/dvsa/enums/DocumentsConfig.java +++ b/src/main/java/uk/gov/dvsa/enums/DocumentsConfig.java @@ -44,6 +44,9 @@ public enum DocumentsConfig { CVS_PSV_PRS(CertificateTypes.CVS_PSV_PRS.getCertificateType(), CvsPsvPRS.class, new String[]{CertificateTemplates.VTP20.getCertificateTemplateName(), CertificateTemplates.VTP30.getCertificateTemplateName()}), + CVS_PSV_PRS_BILINGUAL(CertificateTypes.CVS_PSV_PRS_BILINGUAL.getCertificateType(), CvsPsvPRSBilingual.class, + new String[]{CertificateTemplates.VTP20.getCertificateTemplateName(), CertificateTemplates.VTP30.getCertificateTemplateName(), + CertificateTemplates.VTP20W.getCertificateTemplateName(), CertificateTemplates.VTP30W.getCertificateTemplateName()}), VTP20(CertificateTypes.CVS_PASS.getCertificateType(), uk.gov.dvsa.model.cvs.VTP20.class, new String[]{CertificateTemplates.VTP20.getCertificateTemplateName()}), VTP20W(CertificateTypes.CVS_PASS_WELSH.getCertificateType(), uk.gov.dvsa.model.cvs.VTP20W.class, @@ -80,6 +83,9 @@ public enum DocumentsConfig { new String[]{CertificateTemplates.RWT_DATA.getCertificateTemplateName()}), CVS_HGV_PRS(CertificateTypes.CVS_HGV_PRS.getCertificateType(), uk.gov.dvsa.model.cvs.CvsHgvPRS.class, new String[]{CertificateTemplates.VTG5.getCertificateTemplateName(), CertificateTemplates.VTG30.getCertificateTemplateName()}), + CVS_HGV_PRS_BILINGUAL(CertificateTypes.CVS_HGV_PRS_BILINGUAL.getCertificateType(), uk.gov.dvsa.model.cvs.CvsHgvPRSBilingual.class, + new String[]{CertificateTemplates.VTG5.getCertificateTemplateName(), CertificateTemplates.VTG30.getCertificateTemplateName(), + CertificateTemplates.VTG5W.getCertificateTemplateName(), CertificateTemplates.VTG30W.getCertificateTemplateName()}), CVS_PASS_BILINGUAL(CertificateTypes.CVS_PASS_BILINGUAL.getCertificateType(), uk.gov.dvsa.model.cvs.CvsPsvPassBilingual.class, new String[]{CertificateTemplates.VTP20.getCertificateTemplateName(), CertificateTemplates.VTP20W.getCertificateTemplateName()}), CVS_HGV_PASS_BILINGUAL(CertificateTypes.CVS_HGV_PASS_BILINGUAL.getCertificateType(), uk.gov.dvsa.model.cvs.CvsHgvPassBilingual.class, @@ -91,6 +97,10 @@ public enum DocumentsConfig { CVS_TRL_PRS(CertificateTypes.CVS_TRL_PRS.getCertificateType(), uk.gov.dvsa.model.cvs.CvsTrlPRS.class, new String[]{CertificateTemplates.VTG5A.getCertificateTemplateName(), CertificateTemplates.VTG30.getCertificateTemplateName()}), + CVS_TRL_PRS_BILINGUAL(CertificateTypes.CVS_TRL_PRS_BILINGUAL.getCertificateType(), uk.gov.dvsa.model.cvs.CvsTrlPRSBilingual.class, + new String[]{CertificateTemplates.VTG5A.getCertificateTemplateName(), CertificateTemplates.VTG30.getCertificateTemplateName(), + CertificateTemplates.VTG5AW.getCertificateTemplateName(), CertificateTemplates.VTG30W.getCertificateTemplateName()}), + INSPECTION_CHECKLIST(CertificateTypes.INSPECTION_CHECKLIST.getCertificateType(), InspectionChecklist.class, new String[]{CertificateTemplates.INSPECTION_CHECKLIST.getCertificateTemplateName()}), diff --git a/src/main/java/uk/gov/dvsa/model/cvs/CvsHgvPRSBilingual.java b/src/main/java/uk/gov/dvsa/model/cvs/CvsHgvPRSBilingual.java new file mode 100644 index 00000000..d0d9e1c5 --- /dev/null +++ b/src/main/java/uk/gov/dvsa/model/cvs/CvsHgvPRSBilingual.java @@ -0,0 +1,32 @@ +package uk.gov.dvsa.model.cvs; + +import uk.gov.dvsa.model.Document; +import uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateDataWelsh; + +public class CvsHgvPRSBilingual extends CvsHgvTrlFailBilingual { + + public String getTestType() { + return "HGV"; + } + + public String getPresentedDocumentNamePass() { + return "VTG5"; + } + + public String getPresentedDocumentNamePassWelsh() { + return "VTG5W"; + } + + public String getVersionNumberPass() { + return "1.0"; + } + + public String getVersionNumberPassWelsh() { + return "1.0"; + } + + public Document setData(CvsMotCertificateDataWelsh data) { + this.data = data; + return this; + } +} \ No newline at end of file diff --git a/src/main/java/uk/gov/dvsa/model/cvs/CvsPsvPRSBilingual.java b/src/main/java/uk/gov/dvsa/model/cvs/CvsPsvPRSBilingual.java new file mode 100644 index 00000000..dc63a758 --- /dev/null +++ b/src/main/java/uk/gov/dvsa/model/cvs/CvsPsvPRSBilingual.java @@ -0,0 +1,27 @@ +package uk.gov.dvsa.model.cvs; + +import uk.gov.dvsa.model.Document; +import uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateDataWelsh; + +public class CvsPsvPRSBilingual extends VTP30Bilingual { + public String getPresentedDocumentNamePass() { + return "VTP20"; + } + + public String getPresentedDocumentNamePassWelsh() { + return "VTP20W"; + } + + public String getVersionNumberPass() { + return "1.0"; + } + + public String getVersionNumberPassWelsh() { + return "1.0"; + } + + public Document setData(CvsMotCertificateDataWelsh data) { + this.data = data; + return this; + } +} diff --git a/src/main/java/uk/gov/dvsa/model/cvs/CvsTrlPRSBilingual.java b/src/main/java/uk/gov/dvsa/model/cvs/CvsTrlPRSBilingual.java new file mode 100644 index 00000000..50045362 --- /dev/null +++ b/src/main/java/uk/gov/dvsa/model/cvs/CvsTrlPRSBilingual.java @@ -0,0 +1,31 @@ +package uk.gov.dvsa.model.cvs; + +import uk.gov.dvsa.model.Document; +import uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateDataWelsh; + +public class CvsTrlPRSBilingual extends CvsHgvTrlFailBilingual { + public String getTestType() { + return "TRL"; + } + + public String getPresentedDocumentNamePass() { + return "VTG5A"; + } + + public String getPresentedDocumentNamePassWelsh() { + return "VTG5AW"; + } + + public String getVersionNumberPass() { + return "1.0"; + } + + public String getVersionNumberPassWelsh() { + return "1.0"; + } + + public Document setData(CvsMotCertificateDataWelsh data) { + this.data = data; + return this; + } +} diff --git a/src/main/java/uk/gov/dvsa/model/cvs/certificateData/MsvaFailCertificateData.java b/src/main/java/uk/gov/dvsa/model/cvs/certificateData/MsvaFailCertificateData.java index a2f3f7c9..721b09e5 100644 --- a/src/main/java/uk/gov/dvsa/model/cvs/certificateData/MsvaFailCertificateData.java +++ b/src/main/java/uk/gov/dvsa/model/cvs/certificateData/MsvaFailCertificateData.java @@ -19,8 +19,8 @@ public class MsvaFailCertificateData { private String model; @JsonProperty("date") private String date; - @JsonProperty("retestDate") - private String retestDate; + @JsonProperty("reapplicationDate") + private String reapplicationDate; @JsonProperty("station") private String station; @JsonProperty("testerName") @@ -86,12 +86,12 @@ public void setDate(String date) { this.date = date; } - public String getRetestDate() { - return retestDate; + public String getReapplicationDate() { + return reapplicationDate; } - public void setRetestDate(String retestDate) { - this.retestDate = retestDate; + public void setReapplicationDate(String reapplicationDate) { + this.reapplicationDate = reapplicationDate; } public String getStation() { diff --git a/src/main/resources/assets/stylesheets/cvs-version-1.hbs b/src/main/resources/assets/stylesheets/cvs-version-1.hbs index 9affbbd1..84ee0c49 100644 --- a/src/main/resources/assets/stylesheets/cvs-version-1.hbs +++ b/src/main/resources/assets/stylesheets/cvs-version-1.hbs @@ -534,7 +534,7 @@ margin-bottom: 11pt .seat-belt-information__two-columns-two { width: 50%; display: table-cell; -vertical-align: top; +vertical-align: bottom; text-align: left } diff --git a/src/main/resources/assets/stylesheets/iva-msva-30.hbs b/src/main/resources/assets/stylesheets/iva-msva-30.hbs index 3428c108..ac40fe33 100644 --- a/src/main/resources/assets/stylesheets/iva-msva-30.hbs +++ b/src/main/resources/assets/stylesheets/iva-msva-30.hbs @@ -141,14 +141,6 @@ text-align: center-left; width:100%; } -.separate-page{ -page-break-after: always; -} - -#back-page{ -page-break-after: avoid; -} - .section-border { border-style: solid; border-color: black; @@ -167,6 +159,10 @@ margin-left: -1px; width: 100.3%; } +#defect-section { +page-break-inside: auto; +} + #cert-subtitle{ margin-top: 0px; font-size: 85%; @@ -228,6 +224,11 @@ text-transform:uppercase; list-style-type: none; } +.required-standard-list-item { +page-break-inside: avoid; +margin-bottom: 20px; +} + .required-standard-section { text-transform:uppercase; } diff --git a/src/main/resources/views/CommercialVehicles/ADR_PASS.hbs b/src/main/resources/views/CommercialVehicles/ADR_PASS.hbs index 2f27e0b5..f53fd235 100644 --- a/src/main/resources/views/CommercialVehicles/ADR_PASS.hbs +++ b/src/main/resources/views/CommercialVehicles/ADR_PASS.hbs @@ -21,11 +21,16 @@ {{#if adrData.isApplicantDetailsNull}}
{{else}} -

{{#if adrData.applicantDetails.name}}{{adrData.applicantDetails.name}}{{/if}}

-

{{#if adrData.applicantDetails.address1}}{{adrData.applicantDetails.address1}}, {{/if}} - {{#if adrData.applicantDetails.address2}}{{adrData.applicantDetails.address2}}, {{/if}} - {{#if adrData.applicantDetails.city}}{{adrData.applicantDetails.city}}, {{/if}} - {{#if adrData.applicantDetails.postCode}}{{adrData.applicantDetails.postCode}}{{/if}}

+

{{#if adrData.applicantDetails.name}} + {{adrData.applicantDetails.name}}{{/if}}

+

{{#if adrData.applicantDetails.address1}} + {{adrData.applicantDetails.address1}}, {{/if}} + {{#if adrData.applicantDetails.postTown}} + {{adrData.applicantDetails.postTown}}, {{/if}} + {{#if adrData.applicantDetails.address2}} + {{adrData.applicantDetails.address2}}, {{/if}} + {{#if adrData.applicantDetails.postCode}} + {{adrData.applicantDetails.postCode}}{{/if}}

{{/if}}
diff --git a/src/main/resources/views/CommercialVehicles/IVA30.hbs b/src/main/resources/views/CommercialVehicles/IVA30.hbs index d02c491b..2e0e15e9 100644 --- a/src/main/resources/views/CommercialVehicles/IVA30.hbs +++ b/src/main/resources/views/CommercialVehicles/IVA30.hbs @@ -34,11 +34,10 @@
-

INDIVIDUAL VEHICLE APPROVAL (IVA)

NOTIFICATION OF REFUSAL TO ISSUE AN INDIVIDUAL APPROVAL CERTIFICATE

@@ -70,7 +69,7 @@ -
+

DEFECT DETAILS

@@ -81,12 +80,12 @@ {{#if ivaData.requiredStandards}}
    {{#each ivaData.requiredStandards}} -
  • +
  • {{this.sectionNumber}} - {{this.sectionDescription}}

    -

    RS{{this.rsNumber}}: {{this.requiredStandard}}

    +

    RS{{this.rsNumber}}: {{this.requiredStandard}} {{#if this.prs}} (PRS) {{/if}}

    {{#if this.additionalNotes}} Additional Information: {{this.additionalNotes}} {{/if}} @@ -97,55 +96,55 @@ {{/if}}
+
+

I hereby refuse an Individual Approval Certificate in respect of the above described vehicle on the + grounds that the vehicle fails to comply with the relevant requirements prescribed under The Road Vehicles + (Approval) Regulations 2020

-

I hereby refuse an Individual Approval Certificate in respect of the above described vehicle on the - grounds that the vehicle fails to comply with the relevant requirements prescribed under The Road Vehicles - (Approval) Regulations 2020

- - - - - - - - - - - - - - - - - -
-
- Signed: -
- signature
-
-
Reapplication required by: {{ivaData.reapplicationDate}}
Date: {{ivaData.date}}
Name: {{ivaData.testerName}} Station: {{ivaData.station}}

The following additional defects may result in the vehicle not complying with the requirements - of The Road Vehicles (Construction and Use) Regulations 1986. (See notes overleaf)

- {{#if ivaData.additionalDefects}} -
    - {{#each ivaData.additionalDefects}} -
  • -
    - - {{this.defectName}} - -
    -
    - - {{this.defectNotes}} - -
    -
  • - {{/each}} -
- {{/if}} -
+ + + + + + + + + + + + + + + +
+
+ Signed: +
+ signature
+
+
Reapplication required by: {{ivaData.reapplicationDate}}
Date: {{ivaData.date}}
Name: {{ivaData.testerName}} Station: {{ivaData.station}}

The following additional defects may result in the vehicle not complying with the requirements + of The Road Vehicles (Construction and Use) Regulations 1986. (See notes overleaf)

+ {{#if ivaData.additionalDefects}} +
    + {{#each ivaData.additionalDefects}} +
  • +
    + + {{this.defectName}} + +
    +
    + + {{this.defectNotes}} + +
    +
  • + {{/each}} +
+ {{/if}} +
+
@@ -159,10 +158,6 @@ investigation or to prevent fraud. Find out more at www.gov.uk/dvsa/privacy

-
- - -
@@ -171,7 +166,7 @@

This notification indicates the items of non-compliance being the reason(s) why an Individual Approval Certificate (IAC) has not been issued. An application - for re-examination can be made up to 6 calendar months following the issue date + for re-examination must be made no later than 6 months following the issue date of the first "Notification of Refusal" in respect of the original application. In any other case, a new application and a full fee must be submitted.

When modification/rectification has been completed, or additional evidence of @@ -271,6 +266,5 @@ test as this may affect the outcome of the appeal.

-
\ No newline at end of file diff --git a/src/main/resources/views/CommercialVehicles/MSVA30.hbs b/src/main/resources/views/CommercialVehicles/MSVA30.hbs index d262d539..266e73f7 100644 --- a/src/main/resources/views/CommercialVehicles/MSVA30.hbs +++ b/src/main/resources/views/CommercialVehicles/MSVA30.hbs @@ -34,11 +34,10 @@
-

MOTORCYCLE SINGLE VEHICLE APPROVAL (MSVA)

NOTIFICATION OF REFUSAL TO ISSUE A MINISTERS APPROVAL CERTIFICATE

@@ -51,7 +50,7 @@ - + @@ -65,7 +64,7 @@
Vehicle 'Z' No.: {{msvaData.vehicleZNumber}} Vehicle 'Z' No: {{msvaData.vehicleZNumber}} Type: {{msvaData.type}}
-
+

DEFECT DETAILS

@@ -76,12 +75,12 @@ {{#if msvaData.requiredStandards}}
    {{#each msvaData.requiredStandards}} -
  • +
  • {{this.sectionNumber}} - {{this.sectionDescription}}

    -

    RS{{this.rsNumber}}: {{this.requiredStandard}}

    +

    RS{{this.rsNumber}}: {{this.requiredStandard}} {{#if this.prs}} (PRS) {{/if}}

    {{#if this.additionalNotes}} Additional Information: {{this.additionalNotes}} {{/if}} @@ -92,56 +91,54 @@ {{/if}}
- -

I hereby refuse a Minister's Approval Certificate in respect of the above described vehicle on the - grounds that the vehicle fails to comply with the relevant requirements prescribed under section 54 of - The Road Traffic Act 1988

- - - - - - - - - - - - - - - - - -
-
- Signed: -
- signature
-
-
Retest required by: {{msvaData.retestDate}}
Date: {{msvaData.date}}
Name: {{msvaData.testerName}} Station: {{msvaData.station}}

The following additional defects may result in the vehicle not complying with the requirements - of The Road Vehicles (Construction and Use) Regulations 1986. (See notes overleaf)

- {{#if msvaData.additionalDefects}} -
    - {{#each msvaData.additionalDefects}} -
  • -
    - - {{this.defectName}} - -
    -
    - - {{this.defectNotes}} - -
    -
  • - {{/each}} -
- {{/if}} -
- - +
+

I hereby refuse a Minister's Approval Certificate in respect of the above described vehicle on the + grounds that the vehicle fails to comply with the relevant requirements prescribed under section 54 of + The Road Traffic Act 1988

+ + + + + + + + + + + + + + + + +
+
+ Signed: +
+ signature
+
+
Reapplication required by: {{msvaData.reapplicationDate}}
Date: {{msvaData.date}}
Name: {{msvaData.testerName}} Station: {{msvaData.station}}

The following additional defects may result in the vehicle not complying with the requirements + of The Road Vehicles (Construction and Use) Regulations 1986. (See notes overleaf)

+ {{#if msvaData.additionalDefects}} +
    + {{#each msvaData.additionalDefects}} +
  • +
    + + {{this.defectName}} + +
    +
    + + {{this.defectNotes}} + +
    +
  • + {{/each}} +
+ {{/if}} +
+
@@ -154,10 +151,6 @@ investigation or to prevent fraud. Find out more at www.gov.uk/dvsa/privacy

-
- - -
@@ -166,7 +159,7 @@

This notification indicates the items of non-compliance being the reason(s) why a Minister's Approval Certificate (MAC) has not been issued. An application - for re-examination can be made up to 6 calendar months following the issue date + for re-examination must be made no later than 6 months following the issue date of the first "Notification of Refusal" in respect of the original application. In any other case, a new application and a full fee must be submitted.

When modification/rectification, etc. has been completed an application for a re-examination (verbally or in writing) @@ -242,6 +235,5 @@ test as this may affect the outcome of the appeal.

-
\ No newline at end of file diff --git a/src/test/java/htmlverification/framework/component/DefectSummaryComponent.java b/src/test/java/htmlverification/framework/component/DefectSummaryComponent.java index 8c52c83a..082fdbff 100644 --- a/src/test/java/htmlverification/framework/component/DefectSummaryComponent.java +++ b/src/test/java/htmlverification/framework/component/DefectSummaryComponent.java @@ -19,9 +19,8 @@ public class DefectSummaryComponent { public static final String MAJOR_DEFECTS_HEADER_TEXT_WELSH_CVS = "Atgyweirio ar unwaith (diffygion mawr)"; public static final String DANGEROUS_DEFECTS_HEADER_PARTIAL_TEXT_WELSH = "Peidiwch â gyrru nes iddo gael ei drwsio (diffygion peryglus)"; public static final String DANGEROUS_DEFECTS_HEADER_PARTIAL_TEXT_WELSH_CVS = "Peidiwch â gyrru nes ei fod wedi cael ei atgyweirio (diffygion peryglus)"; - public static final String DANGEROUS_DEFECTS_HEADER_TEXT_WELSH_CVS = "Peidiwch â gyrru nes ei fod wedi cael ei atgyweirio"; - + public static final String PRS_DEFECTS_HEADER_TEXT_WELSH_CVS = "Diffygion wedi'u cywiro ar adeg y prawf"; //CVS only public static final String PRS_DEFECTS_HEADER_TEXT = "Monitor and repair if necessary (advisories)"; diff --git a/src/test/java/htmlverification/framework/page_object/MsvaPageObject.java b/src/test/java/htmlverification/framework/page_object/MsvaPageObject.java index ee731514..86f59815 100644 --- a/src/test/java/htmlverification/framework/page_object/MsvaPageObject.java +++ b/src/test/java/htmlverification/framework/page_object/MsvaPageObject.java @@ -37,7 +37,7 @@ public String getDate() { return getElementById(DATE.getSelector()).text(); } - public String getRetestDate() { + public String getReapplicationDate() { return getElementById(RE_APP_DATE.getSelector()).text(); } diff --git a/src/test/java/htmlverification/service/CvsCertificateTestDataProvider.java b/src/test/java/htmlverification/service/CvsCertificateTestDataProvider.java index 23028c5a..143cac15 100644 --- a/src/test/java/htmlverification/service/CvsCertificateTestDataProvider.java +++ b/src/test/java/htmlverification/service/CvsCertificateTestDataProvider.java @@ -281,7 +281,9 @@ public static VTP30W getVtp30w() { .setDangerousDefectsWelsh(generateRFRs(DANGEROUS_RFR_TEXT, 1)) .setMajorDefectsHeader(DefectSummaryComponent.MAJOR_DEFECTS_HEADER_TEXT_WELSH) .setDangerousDefectsHeader(DefectSummaryComponent.DANGEROUS_DEFECTS_HEADER_PARTIAL_TEXT_WELSH_CVS) - .setPrsDefects(generateRFRs(PRS_RFR_TEXT, 1)); + .setPrsDefects(generateRFRs(PRS_RFR_TEXT, 1)) + .setMajorDefects(generateRFRs(MAJOR_RFR_TEXT, 1)) + .setDangerousDefects(generateRFRs(DANGEROUS_RFR_TEXT, 1)); vtp30.setFailData(vtp30Data); @@ -626,6 +628,84 @@ public static CvsTrlPassBilingual getCvsTrlPassBilingual() { return trlPassBilingual; } + public static CvsTrlPRSBilingual getCvsTrlPrsBilingual() { + CvsTrlPRSBilingual trlPrsBilingual = new CvsTrlPRSBilingual(); + trlPrsBilingual.setDocumentName(CertificateTypes.CVS_TRL_PRS_BILINGUAL.getCertificateType()); + CvsMotFailCertificateDataWelsh failData = new CvsMotFailCertificateDataWelsh(); + CvsMotCertificateDataWelsh passData = new CvsMotCertificateDataWelsh(); + + passData + .setMinorDefectsWelsh(generateRFRs(MINOR_RFR_TEXT, 1)) + .setAdvisoryDefectsWelsh(generateRFRs(ADVISORY_RFR_TEXT, 1)) + .setMinorDefectsHeader(DefectSummaryComponent.MINOR_DEFECTS_HEADER_TEXT_WELSH_CVS) + .setAdvisoryDefectsHeader(DefectSummaryComponent.ADVISORIES_HEADER_TEXT_WELSH_CVS) + .setMinorDefects(generateRFRs(MINOR_RFR_TEXT, 1)) + .setAdvisoryDefects(generateRFRs(ADVISORY_RFR_TEXT, 1)) + .setCurrentOdometer( + new CvsOdometerReading("22341", "mi", "01.02.2019") + ) + .setOdometerHistoryList(Arrays.asList( + new CvsOdometerReading("120", "km", "01.02.2016"), + new CvsOdometerReading("330", "km", "30.01.2017") + )) + .setCountryOfRegistrationCode("GB") + .setRawVin(VIN) + .setDateOfTheTest("12.11.2018") + .setExpiryDate("12.10.2018") + .setTestStationPNumber("P12345") + .setTestStationName("TEST STATION NAME") + .setMake("Aston Martin") + .setModel("DB11") + .setIssuersName("R.DREWNO") + .setTestStationName("POPULAR GARAGES") + .setTestNumber("1806 8140 0628") + .setEarliestDateOfTheNextTest("13.10.2018") + .setTrn("ABC1234") + .setIsTrailer(true); + + failData + .setPrsDefectsHeaderWelsh(DefectSummaryComponent.PRS_DEFECTS_HEADER_TEXT_WELSH_CVS) + .setPrsDefectsWelsh(generateRFRs(PRS_RFR_TEXT, 1)) + .setPrsDefects(generateRFRs(PRS_RFR_TEXT, 1)) + .setSeatBeltNumber("10") + .setSeatBeltPreviousCheckDate("12.11.2018") + .setSeatBeltTested("Yes") + .setCountryOfRegistrationCode("GB") + .setRawVin(VIN) + .setDateOfTheTest("12.11.2018") + .setExpiryDate("12.10.2018") + .setMake("MERCEDES") + .setModel("Z WAGON") + .setVehicleEuClassification("M1") + .setRawVrm("KA1SAPH") + .setCurrentOdometer( + new CvsOdometerReading("20000", "mi", "22.08.2023") + ) + .setOdometerHistoryList(Arrays.asList( + new CvsOdometerReading("12000", "mi", "13.08.2022"), + new CvsOdometerReading("7000", "mi", "02.08.2021") + )) + .setIssuersName("TESTER NAME") + .setTestStationName("TEST STATION NAME") + .setTestStationPNumber("P12345") + .setTestNumber("X01X00001") + .setEarliestDateOfTheNextTest("01.07.2024") + .setTrn("ABC1234") + .setIsTrailer(true); + trlPrsBilingual.setFailData(failData); + + Signature signature = new Signature(); + signature + .setImageData("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==") + .setImageType("png"); + + trlPrsBilingual.setSignature(signature); + trlPrsBilingual.setData(passData); + trlPrsBilingual.setData(passData); + + return trlPrsBilingual; + } + public static CvsHgvTrlFailBilingual getCvsHgvTrlFailBilingual() { CvsHgvTrlFailBilingual hgvFailBilingual = new CvsHgvTrlFailBilingual(); hgvFailBilingual.setDocumentName(CertificateTypes.CVS_HGV_TRL_FAIL_BILINGUAL.getCertificateType()); @@ -679,7 +759,81 @@ public static CvsHgvTrlFailBilingual getCvsHgvTrlFailBilingual() { hgvFailBilingual.setSignature(signature); return hgvFailBilingual; - }; + } + + public static CvsHgvPRSBilingual getCvsHgvPRSBilingual() { + CvsHgvPRSBilingual hgvPRSBilingual = new CvsHgvPRSBilingual(); + hgvPRSBilingual.setDocumentName(CertificateTypes.CVS_HGV_PRS_BILINGUAL.getCertificateType()); + + CvsMotFailCertificateDataWelsh bilingualFailData = new CvsMotFailCertificateDataWelsh(); + bilingualFailData + .setPrsDefectsHeaderWelsh(DefectSummaryComponent.PRS_DEFECTS_HEADER_TEXT_WELSH_CVS) + .setPrsDefectsWelsh(generateRFRs(PRS_RFR_TEXT, 1)) + .setPrsDefects(generateRFRs(PRS_RFR_TEXT, 1)) + .setSeatBeltNumber("10") + .setSeatBeltPreviousCheckDate("12.11.2018") + .setSeatBeltTested("Yes") + .setCountryOfRegistrationCode("GB") + .setRawVin(VIN) + .setDateOfTheTest("22.08.2023") + .setExpiryDate("31.08.2024") + .setTestStationPNumber("P12345") + .setTestStationName("TEST STATION NAME") + .setMake("Aston Martin") + .setModel("DB11") + .setVehicleEuClassification("M1") + .setRawVrm("KA1SAPH") + .setCurrentOdometer( + new CvsOdometerReading("20000", "km", "22.08.2023") + ) + .setOdometerHistoryList(Arrays.asList( + new CvsOdometerReading("12000", "km", "13.08.2022"), + new CvsOdometerReading("7000", "km", "02.08.2021") + ) + ) + .setIssuersName("TESTER NAME") + .setTestStationName("TEST STATION NAME") + .setTestNumber("X01X00001") + .setEarliestDateOfTheNextTest("01.07.2024") + .setTrn(null) + .setIsTrailer(false); + + CvsMotCertificateDataWelsh bilingualData = new CvsMotCertificateDataWelsh(); + bilingualData + .setMinorDefectsWelsh(generateRFRs(MINOR_RFR_TEXT, 1)) + .setAdvisoryDefectsWelsh(generateRFRs(ADVISORY_RFR_TEXT, 1)) + .setMinorDefectsHeader(DefectSummaryComponent.MINOR_DEFECTS_HEADER_TEXT_WELSH_CVS) + .setAdvisoryDefectsHeader(DefectSummaryComponent.ADVISORIES_HEADER_TEXT_WELSH_CVS) + .setMinorDefects(generateRFRs(MINOR_RFR_TEXT, 1)) + .setAdvisoryDefects(generateRFRs(ADVISORY_RFR_TEXT, 1)) + .setCountryOfRegistrationCode("GB") + .setRawVin(VIN) + .setDateOfTheTest("22.08.2023") + .setExpiryDate("31.08.2024") + .setTestStationPNumber("P12345") + .setTestStationName("TEST STATION NAME") + .setMake("Aston Martin") + .setModel("DB11") + .setVehicleEuClassification("M1") + .setRawVrm("KA15APH") + .setCurrentOdometer( + new CvsOdometerReading("20000", "km", "22.08.2023") + ) + .setOdometerHistoryList(Arrays.asList( + new CvsOdometerReading("12000", "km", "13.08.2022"), + new CvsOdometerReading("7000", "km", "02.08.2021") + ) + ) + .setIssuersName("TESTER NAME") + .setTestStationName("TEST STATION NAME") + .setTestNumber("X01X00001") + .setEarliestDateOfTheNextTest("01.07.2024"); + + hgvPRSBilingual.setFailData(bilingualFailData); + hgvPRSBilingual.setData(bilingualData); + + return hgvPRSBilingual; + } public static VTP30Bilingual getVtp30Bilingual() { VTP30Bilingual hgvFailBilingual = new VTP30Bilingual(); @@ -894,7 +1048,18 @@ public static IVA30 getIVA30() { mockRS.setRsNumber(1); mockRS.setInspectionTypes(new String[]{"Normal"}); mockRS.setAdditionalNotes("Some additional defect"); - RequiredStandard[] requiredStandards = new RequiredStandard[]{mockRS}; + // PRS mock + RequiredStandard mockRSPrs = new RequiredStandard(); + mockRSPrs.setPrs(true); + mockRSPrs.setRequiredStandard("Noise"); + mockRSPrs.setRefCalculation("1.1"); + mockRSPrs.setSectionNumber("1"); + mockRSPrs.setAdditionalInfo(false); + mockRSPrs.setSectionDescription("description"); + mockRSPrs.setRsNumber(1); + mockRSPrs.setInspectionTypes(new String[]{"Normal"}); + mockRSPrs.setAdditionalNotes("Some additional defect"); + RequiredStandard[] requiredStandards = new RequiredStandard[]{mockRS, mockRSPrs}; iva30Data.setRequiredStandards(requiredStandards); iva30.setIvaData(iva30Data); @@ -920,7 +1085,7 @@ public static MSVA30 getMSVA30() { msva30Data.setModel("Model"); msva30Data.setDate("28/11/2023"); msva30Data.setTesterName("Tester One"); - msva30Data.setRetestDate("27/05/2024"); + msva30Data.setReapplicationDate("27/05/2024"); msva30Data.setStation("Abshire-Kub"); msva30Data.setAdditionalDefects(new AdditionalDefect[]{new AdditionalDefect("DefectName", "DefectNotes")}); RequiredStandard mockRS = new RequiredStandard(); @@ -933,7 +1098,18 @@ public static MSVA30 getMSVA30() { mockRS.setRsNumber(1); mockRS.setInspectionTypes(new String[]{"Normal"}); mockRS.setAdditionalNotes("Some additional defect"); - RequiredStandard[] requiredStandards = new RequiredStandard[]{mockRS}; + // PRS mock + RequiredStandard mockRSPrs = new RequiredStandard(); + mockRSPrs.setPrs(true); + mockRSPrs.setRequiredStandard("Noise"); + mockRSPrs.setRefCalculation("1.1"); + mockRSPrs.setSectionNumber("1"); + mockRSPrs.setAdditionalInfo(false); + mockRSPrs.setSectionDescription("description"); + mockRSPrs.setRsNumber(1); + mockRSPrs.setInspectionTypes(new String[]{"Normal"}); + mockRSPrs.setAdditionalNotes("Some additional defect"); + RequiredStandard[] requiredStandards = new RequiredStandard[]{mockRS, mockRSPrs}; msva30Data.setRequiredStandards(requiredStandards); msva30.setMsvaData(msva30Data); @@ -965,6 +1141,15 @@ public static VTG30W getVTG30WHavingInvalidXMLCharacter() { return document; } + public static CvsHgvPRSBilingual getCvsHgvPRSBilingualHavingInvalidXMLCharacter() { + CvsHgvPRSBilingual document = getCvsHgvPRSBilingual(); + + CvsMotFailCertificateData data = document.getFailData(); + data.setPrsDefects(generateRFRs(INVALID_XML_RFR_TEXT, 3)); + + return document; + } + private static List generateRFRs(String rfrName, int numberOfRfrs) { List reasonsForRejection = new ArrayList<>(); @@ -972,4 +1157,23 @@ private static List generateRFRs(String rfrName, int numberOfRfrs) { reasonsForRejection.add(rfrName + " #" + i); } return reasonsForRejection; } + + public static CvsPsvPRSBilingual getCvsPsvPRSBilingual() { + CvsPsvPRSBilingual cvsPsvPRSBilingual = new CvsPsvPRSBilingual(); + cvsPsvPRSBilingual.setDocumentName(CertificateTypes.CVS_PSV_PRS_BILINGUAL.getCertificateType()); + + cvsPsvPRSBilingual.setData(getVtp20W().getData()); + cvsPsvPRSBilingual.setFailData(getVtp30w().getFailData()); + + return cvsPsvPRSBilingual; + } + + public static CvsMotCertificate getCvsPsvPRSBilingualHavingInvalidXMLCharacter() { + CvsPsvPRSBilingual document = getCvsPsvPRSBilingual(); + + CvsMotFailCertificateData data = document.getFailData(); + data.setPrsDefects(generateRFRs(INVALID_XML_RFR_TEXT, 3)); + + return document; + } } diff --git a/src/test/java/htmlverification/tests/CvsHgvPRSBilingualTest.java b/src/test/java/htmlverification/tests/CvsHgvPRSBilingualTest.java new file mode 100644 index 00000000..31365c7c --- /dev/null +++ b/src/test/java/htmlverification/tests/CvsHgvPRSBilingualTest.java @@ -0,0 +1,247 @@ +package htmlverification.tests; + +import com.github.jknack.handlebars.Handlebars; +import htmlverification.framework.page_object.CertificatePageObject; +import htmlverification.service.CvsCertificateTestDataProvider; +import org.junit.Before; +import org.junit.Test; +import uk.gov.dvsa.model.cvs.CvsHgvPRSBilingual; +import uk.gov.dvsa.service.HtmlGenerator; + +import java.io.IOException; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateData.PASS_SUMMARY_HEADER; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateData.PASS_WITH_DEFECTS_HEADER; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateDataWelsh.PASS_SUMMARY_HEADER_WELSH; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateDataWelsh.PASS_WITH_DEFECTS_HEADER_WELSH; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotFailCertificateData.FAILED_SUMMARY_HEADER; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotFailCertificateDataWelsh.FAILED_SUMMARY_HEADER_WELSH; +import static uk.gov.dvsa.model.mot.results.Summary.EU_NUMBER_SUMMARY_HEADER; + +public class CvsHgvPRSBilingualTest { + + protected HtmlGenerator htmlGenerator; + protected CvsHgvPRSBilingual testCertificate; + protected CertificatePageObject certificatePageObjectVTG5; + protected CertificatePageObject certificatePageObjectVTG30; + + protected CertificatePageObject certificatePageObjectVTG5W; + protected CertificatePageObject certificatePageObjectVTG30W; + + public CvsHgvPRSBilingualTest() { + this.htmlGenerator = new HtmlGenerator(new Handlebars()); + } + + @Before + public void setup() throws IOException { + testCertificate = CvsCertificateTestDataProvider.getCvsHgvPRSBilingual(); + + String certHtmlVTG5 = htmlGenerator.generate(testCertificate).get(0); + String certHtmlVTG30 = htmlGenerator.generate(testCertificate).get(1); + String certHtmlVTV5W = htmlGenerator.generate(testCertificate).get(2); + String certHtmlVTG30W = htmlGenerator.generate(testCertificate).get(3); + + certificatePageObjectVTG5 = new CertificatePageObject(certHtmlVTG5); + certificatePageObjectVTG30 = new CertificatePageObject(certHtmlVTG30); + certificatePageObjectVTG5W = new CertificatePageObject(certHtmlVTV5W); + certificatePageObjectVTG30W = new CertificatePageObject(certHtmlVTG30W); + } + + @Test + public void verifyResultSummaries() { + String resultName = certificatePageObjectVTG5.getDefectSummaryComponent().getResultNameItem().text(); + String resultNameFail = certificatePageObjectVTG30.getDefectSummaryComponent().getResultNameItem().text(); + String resultNameWelsh = certificatePageObjectVTG5W.getDefectSummaryComponent().getResultNameItem().text(); + String resultNameFailWelsh = certificatePageObjectVTG30W.getDefectSummaryComponent().getResultNameItem().text(); + + assertEquals( + String.format("%s%s%s %s", "(", EU_NUMBER_SUMMARY_HEADER, ")", PASS_WITH_DEFECTS_HEADER), + resultName + ); + assertEquals( + String.format("%s%s%s %s", "(", EU_NUMBER_SUMMARY_HEADER, ")", FAILED_SUMMARY_HEADER), + resultNameFail + ); + assertEquals( + String.format("%s%s%s %s", "(", EU_NUMBER_SUMMARY_HEADER, ")", PASS_WITH_DEFECTS_HEADER_WELSH), + resultNameWelsh + ); + assertEquals( + String.format("%s%s%s %s", "(", EU_NUMBER_SUMMARY_HEADER, ")", FAILED_SUMMARY_HEADER_WELSH), + resultNameFailWelsh + ); + } + + @Test + public void verifyVin() { + String vin = certificatePageObjectVTG5.getVin(); + String vinFail = certificatePageObjectVTG30.getVin(); + String vinWelsh = certificatePageObjectVTG5W.getVin(); + String vinFailWelsh = certificatePageObjectVTG30W.getVin(); + + assertEquals(testCertificate.getData().getRawVin(), vin); + assertEquals(testCertificate.getFailData().getRawVin(), vinFail); + assertEquals(testCertificate.getData().getRawVin(), vinWelsh); + assertEquals(testCertificate.getFailData().getRawVin(), vinFailWelsh); + } + + @Test + public void verifyCountryOfRegistration() { + String country = certificatePageObjectVTG5.getCountryOfRegistration(); + String countryFail = certificatePageObjectVTG30.getCountryOfRegistration(); + String countryWelsh = certificatePageObjectVTG5W.getCountryOfRegistration(); + String countryFailWelsh = certificatePageObjectVTG30W.getCountryOfRegistration(); + + assertEquals(testCertificate.getData().getCountryOfRegistrationCode(), country); + assertEquals(testCertificate.getFailData().getCountryOfRegistrationCode(), countryFail); + assertEquals(testCertificate.getData().getCountryOfRegistrationCode(), countryWelsh); + assertEquals(testCertificate.getFailData().getCountryOfRegistrationCode(), countryFailWelsh); + } + + @Test + public void verifyMakeAndModel() { + String makeAndModel = certificatePageObjectVTG5.getMakeAndModel(); + String makeAndModelFail = certificatePageObjectVTG30.getMakeAndModel(); + String makeAndModelWelsh = certificatePageObjectVTG5W.getMakeAndModel(); + String makeAndModelFailWelsh = certificatePageObjectVTG30W.getMakeAndModel(); + + assertEquals( + String.format("%s%s %s", testCertificate.getData().getMake(), ",", testCertificate.getData().getModel()), + makeAndModel + ); + assertEquals( + String.format("%s%s %s", testCertificate.getFailData().getMake(), ",", testCertificate.getFailData().getModel()), + makeAndModelFail + ); + assertEquals( + String.format("%s%s %s", testCertificate.getData().getMake(), ",", testCertificate.getData().getModel()), + makeAndModelWelsh + ); + assertEquals( + String.format("%s%s %s", testCertificate.getFailData().getMake(), ",", testCertificate.getFailData().getModel()), + makeAndModelFailWelsh + ); + } + + @Test + public void verifyVehicleCategory() { + String vehicleCategory = certificatePageObjectVTG5.getVehicleCategory(); + String vehicleCategoryFail = certificatePageObjectVTG30.getVehicleCategory(); + String vehicleCategoryWelsh = certificatePageObjectVTG5W.getVehicleCategory(); + String vehicleCategoryFailWelsh = certificatePageObjectVTG30W.getVehicleCategory(); + + assertEquals(testCertificate.getData().getVehicleEuClassification(), vehicleCategory); + assertEquals(testCertificate.getFailData().getVehicleEuClassification(), vehicleCategoryFail); + assertEquals(testCertificate.getData().getVehicleEuClassification(), vehicleCategoryWelsh); + assertEquals(testCertificate.getFailData().getVehicleEuClassification(), vehicleCategoryFailWelsh); + } + + @Test + public void verifyMileage() { + String mileage = certificatePageObjectVTG5.getMileage(); + String mileageFail = certificatePageObjectVTG30.getMileage(); + String mileageWelsh = certificatePageObjectVTG5W.getMileage(); + String mileageFailWelsh = certificatePageObjectVTG30W.getMileage(); + + assertEquals(testCertificate.getData().getFormattedCurrentOdometer(), mileage); + assertEquals(testCertificate.getFailData().getFormattedCurrentOdometer(), mileageFail); + assertEquals("20,000 cilometrau", mileageWelsh); + assertEquals("20,000 cilometrau", mileageFailWelsh); + } + + @Test + public void verifyPrsDefects() { + List prsDefects = certificatePageObjectVTG5.getDefectSummaryComponent().getPrsDefects().eachText(); + } + + @Test + public void verifyAdvisoryDefects() { + List advisoryDefects = certificatePageObjectVTG5.getDefectSummaryComponent().getAdvisories().eachText(); + assertEquals(1, advisoryDefects.size()); + } + + @Test + public void verifyAdvisoryDefectsWelsh() { + List advisoryDefects = certificatePageObjectVTG5W.getDefectSummaryComponent().getAdvisoriesWelshCVS().eachText(); + assertEquals(1, advisoryDefects.size()); + } + + @Test + public void verifyMinorDefects() { + List minorDefects = certificatePageObjectVTG5.getDefectSummaryComponent().getMinorDefects().eachText(); + assertEquals(1, minorDefects.size()); + } + + @Test + public void verifyMinorDefectsWelsh() { + List minorDefects = certificatePageObjectVTG5W.getDefectSummaryComponent().getMinorDefectsWelshCVS().eachText(); + assertEquals(1, minorDefects.size()); + } + + @Test + public void verifyDateOfTheTest() { + String dateOfTheTest = certificatePageObjectVTG5.getDateOfTheTest(); + String dateOfTheTestFail = certificatePageObjectVTG30.getDateOfTheTest(); + String dateOfTheTestWelsh = certificatePageObjectVTG5W.getDateOfTheTest(); + String dateOfTheTestFailWelsh = certificatePageObjectVTG30W.getDateOfTheTest(); + + assertEquals(testCertificate.getData().getDateOfTheTest(), dateOfTheTest); + assertEquals(testCertificate.getFailData().getDateOfTheTest(), dateOfTheTestFail); + assertEquals(testCertificate.getData().getDateOfTheTest(), dateOfTheTestWelsh); + assertEquals(testCertificate.getFailData().getDateOfTheTest(), dateOfTheTestFailWelsh); + } + + @Test + public void verifyLocationOfTheTest() { + String locationOfTheTest = certificatePageObjectVTG5.getLocationOfTheTest(); + String locationOfTheTestFail = certificatePageObjectVTG30.getLocationOfTheTest(); + String locationOfTheTestWelsh = certificatePageObjectVTG5W.getLocationOfTheTest(); + String locationOfTheTestFailWelsh = certificatePageObjectVTG30W.getLocationOfTheTest(); + + String pNumber = testCertificate.getData().getTestStationPNumber(); + String testStationName = testCertificate.getData().getTestStationName(); + + String pNumberFail = testCertificate.getFailData().getTestStationPNumber(); + String testStationNameFail = testCertificate.getFailData().getTestStationName(); + + assertEquals(pNumber + ", " + testStationName, locationOfTheTest); + assertEquals(pNumberFail + ", " + testStationNameFail, locationOfTheTestFail); + assertEquals(pNumber + ", " + testStationName, locationOfTheTestWelsh); + assertEquals(pNumberFail + ", " + testStationNameFail, locationOfTheTestFailWelsh); + } + + @Test + public void verifyTestingOrganisationAndInspectorName() { + String orgName = certificatePageObjectVTG5.getTestingOrganisationAndInspectorsName(); + String orgNameFail = certificatePageObjectVTG30.getTestingOrganisationAndInspectorsName(); + String orgNameWelsh = certificatePageObjectVTG5W.getTestingOrganisationAndInspectorsName(); + String orgNameFailWelsh = certificatePageObjectVTG30W.getTestingOrganisationAndInspectorsName(); + + String organisation = testCertificate.getData().getTestingOrganisation(); + String organisationFail = testCertificate.getFailData().getTestingOrganisation(); + String organisationWelsh = testCertificate.getFailData().getTestingOrganisationWelsh(); + + String testerName = testCertificate.getData().getIssuersName(); + String testerNameFail = testCertificate.getFailData().getIssuersName(); + + assertEquals(organisation + " " + testerName, orgName); + assertEquals(organisationFail + " " + testerNameFail, orgNameFail); + assertEquals(organisationWelsh + " " + testerName, orgNameWelsh); + assertEquals(organisationWelsh + " " + testerNameFail, orgNameFailWelsh); + } + + @Test + public void verifyMotTestNumber() { + String testNumber = certificatePageObjectVTG5.getTestNumber(); + String testNumberFail = certificatePageObjectVTG30.getTestNumber(); + String testNumberWelsh = certificatePageObjectVTG5W.getTestNumber(); + String testNumberFailWelsh = certificatePageObjectVTG30W.getTestNumber(); + + assertEquals(testCertificate.getData().getTestNumber(), testNumber); + assertEquals(testCertificate.getFailData().getTestNumber(), testNumberFail); + assertEquals(testCertificate.getData().getTestNumber(), testNumberWelsh); + assertEquals(testCertificate.getFailData().getTestNumber(), testNumberFailWelsh); + } +} diff --git a/src/test/java/htmlverification/tests/CvsPsvPrsBilingualTest.java b/src/test/java/htmlverification/tests/CvsPsvPrsBilingualTest.java new file mode 100644 index 00000000..fb124163 --- /dev/null +++ b/src/test/java/htmlverification/tests/CvsPsvPrsBilingualTest.java @@ -0,0 +1,204 @@ +package htmlverification.tests; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.github.jknack.handlebars.Handlebars; +import htmlverification.framework.page_object.CertificatePageObject; +import htmlverification.service.CvsCertificateTestDataProvider; +import org.junit.Before; +import org.junit.Test; +import uk.gov.dvsa.model.cvs.CvsPsvPRSBilingual; +import uk.gov.dvsa.service.HtmlGenerator; + +import java.io.IOException; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateData.PASS_WITH_DEFECTS_HEADER; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateDataWelsh.PASS_WITH_DEFECTS_HEADER_WELSH; +import static uk.gov.dvsa.model.mot.results.Summary.EU_NUMBER_SUMMARY_HEADER; + +public class CvsPsvPrsBilingualTest { + protected HtmlGenerator htmlGenerator; + protected CvsPsvPRSBilingual testCertificate; + protected CertificatePageObject certificatePageObjectVTP20; + protected CertificatePageObject certificatePageObjectVTP30; + protected CertificatePageObject certificatePageObjectVTP20Welsh; + protected CertificatePageObject certificatePageObjectVTP30Welsh; + + public CvsPsvPrsBilingualTest() { + this.htmlGenerator = new HtmlGenerator(new Handlebars()); + } + + @Before + public void setup() throws IOException { + testCertificate = CvsCertificateTestDataProvider.getCvsPsvPRSBilingual(); + String certHtmlVTP20 = htmlGenerator.generate(testCertificate).get(0); + String certHtmlVTP30 = htmlGenerator.generate(testCertificate).get(1); + String certHtmlVTP20Welsh = htmlGenerator.generate(testCertificate).get(2); + String certHtmlVTP30Welsh = htmlGenerator.generate(testCertificate).get(3); + + certificatePageObjectVTP20 = new CertificatePageObject(certHtmlVTP20); + certificatePageObjectVTP30 = new CertificatePageObject(certHtmlVTP30); + certificatePageObjectVTP20Welsh = new CertificatePageObject(certHtmlVTP20Welsh); + certificatePageObjectVTP30Welsh = new CertificatePageObject(certHtmlVTP30Welsh); + } + + @Test + public void verifyResultSummaries() { + String resultName = certificatePageObjectVTP20.getDefectSummaryComponent().getResultNameItem().text(); + String resultNameWelsh = certificatePageObjectVTP20Welsh.getDefectSummaryComponent().getResultNameItem().text(); + + assertEquals( + String.format("%s%s%s %s", "(", EU_NUMBER_SUMMARY_HEADER, ")", PASS_WITH_DEFECTS_HEADER), + resultName); + assertEquals( + String.format("%s%s%s %s", "(", EU_NUMBER_SUMMARY_HEADER, ")", PASS_WITH_DEFECTS_HEADER_WELSH), + resultNameWelsh); + } + + @Test + public void verifyCountryOfRegistration() { + String vtp20CountryOfRegistration = certificatePageObjectVTP20.getCountryOfRegistration(); + String vtp30CountryOfRegistration = certificatePageObjectVTP30.getCountryOfRegistration(); + String vtp20WelshCountryOfRegistration = certificatePageObjectVTP20Welsh.getCountryOfRegistration(); + String vtp30WelshCountryOfRegistration = certificatePageObjectVTP30Welsh.getCountryOfRegistration(); + + assertEquals(testCertificate.getData().getCountryOfRegistrationCode(), vtp20CountryOfRegistration); + assertEquals(testCertificate.getData().getCountryOfRegistrationCode(), vtp30CountryOfRegistration); + assertEquals(testCertificate.getFailData().getCountryOfRegistrationCode(), vtp20WelshCountryOfRegistration); + assertEquals(testCertificate.getFailData().getCountryOfRegistrationCode(), vtp30WelshCountryOfRegistration); + } + + @Test + public void verifyMakeAndModel() { + String vtp20MakeAndModel = certificatePageObjectVTP20.getMakeAndModel(); + String vtp30MakeAndModel = certificatePageObjectVTP30.getMakeAndModel(); + String vtp20WelshMakeAndModel = certificatePageObjectVTP20Welsh.getMakeAndModel(); + String vtp30WelshMakeAndModel = certificatePageObjectVTP30Welsh.getMakeAndModel(); + + assertEquals( + String.format("%s%s %s", testCertificate.getData().getMake(), ",", testCertificate.getData().getModel()), + vtp20MakeAndModel + ); + assertEquals( + String.format("%s%s %s", testCertificate.getFailData().getMake(), ",", testCertificate.getFailData().getModel()), + vtp30MakeAndModel + ); + + assertEquals( + String.format("%s%s %s", testCertificate.getData().getMake(), ",", testCertificate.getData().getModel()), + vtp20WelshMakeAndModel + ); + assertEquals( + String.format("%s%s %s", testCertificate.getFailData().getMake(), ",", testCertificate.getFailData().getModel()), + vtp30WelshMakeAndModel + ); + } + + @Test + public void verifyAdvisoryDefects() { + List vtp20AdvisoryDefects = certificatePageObjectVTP20.getDefectSummaryComponent().getAdvisories().eachText(); + assertEquals(1, vtp20AdvisoryDefects.size()); + } + + @Test + public void verifyMinorDefects() { + List minorDefects = certificatePageObjectVTP20.getDefectSummaryComponent().getMinorDefects().eachText(); + assertEquals(1, minorDefects.size()); + } + + + @Test + public void verifyMajorDefects() { + List vtp30MajorDefects = certificatePageObjectVTP30.getDefectSummaryComponent().getMajorDefects().eachText(); + assertEquals(1, vtp30MajorDefects.size()); + } + + @Test + public void verifyDangerousDefects() { + List vtp30DangerousDefects = certificatePageObjectVTP30.getDefectSummaryComponent().getDangerousDefects().eachText(); + assertEquals(1, vtp30DangerousDefects.size()); + } + + @Test + public void verifyAdvisoryDefectsWelsh() { + List advisoryDefects = certificatePageObjectVTP30Welsh.getDefectSummaryComponent().getAdvisoriesWelshCVS().eachText(); + assertEquals(1, advisoryDefects.size()); + } + + @Test + public void verifyMinorDefectsWelsh() { + List minorDefects = certificatePageObjectVTP30Welsh.getDefectSummaryComponent().getMinorDefectsWelshCVS().eachText(); + assertEquals(1, minorDefects.size()); + } + + @Test + public void verifyMajorDefectsWelsh() { + List vtp30MajorDefects = certificatePageObjectVTP30Welsh.getDefectSummaryComponent().getMajorDefectsWelshCVS().eachText(); + assertEquals(1, vtp30MajorDefects.size()); + } + + @Test + public void verifyDangerousDefectsWelsh() { + List vtp30DangerousDefects = certificatePageObjectVTP30Welsh.getDefectSummaryComponent().getDangerousDefectsWelshCVS().eachText(); + assertEquals(1, vtp30DangerousDefects.size()); + } + + @Test + public void verifyDateOfTheTest() { + String vtp20DateOfTheTest = certificatePageObjectVTP20.getDateOfTheTest(); + String vtp30DateOfTheTest = certificatePageObjectVTP30.getDateOfTheTest(); + String vtp20WelshDateOfTheTest = certificatePageObjectVTP20Welsh.getDateOfTheTest(); + String vtp30WelshDateOfTheTest = certificatePageObjectVTP30Welsh.getDateOfTheTest(); + + assertEquals("12.11.2018", vtp20DateOfTheTest); + assertEquals("12.11.2018", vtp30DateOfTheTest); + assertEquals("12.11.2018", vtp20WelshDateOfTheTest); + assertEquals("12.11.2018", vtp30WelshDateOfTheTest); + } + + @Test + public void verifyLocationOfTheTest() { + String vtp20LocationOfTheTest = certificatePageObjectVTP20.getLocationOfTheTest(); + String vtp30LocationOfTheTest = certificatePageObjectVTP30.getLocationOfTheTest(); + String vtp20WelshLocationOfTheTest = certificatePageObjectVTP20Welsh.getLocationOfTheTest(); + String vtp30WelshLocationOfTheTest = certificatePageObjectVTP30Welsh.getLocationOfTheTest(); + + assertEquals("P12345, POPULAR GARAGES", vtp20LocationOfTheTest); + assertEquals("P12345, POPULAR GARAGES", vtp30LocationOfTheTest); + assertEquals("P12345, POPULAR GARAGES", vtp20WelshLocationOfTheTest); + assertEquals("P12345, POPULAR GARAGES", vtp30WelshLocationOfTheTest); + } + + @Test + public void verifyTestingOrganisationAndInspectorsName() { + String vtp20TestingOrganisationAndInspectorsName = certificatePageObjectVTP20.getTestingOrganisationAndInspectorsName(); + String vtp30TestingOrganisationAndInspectorsName = certificatePageObjectVTP30.getTestingOrganisationAndInspectorsName(); + String vtp20WelshTestingOrganisationAndInspectorsName = certificatePageObjectVTP20Welsh.getTestingOrganisationAndInspectorsName(); + String vtp30WelshTestingOrganisationAndInspectorsName1 = certificatePageObjectVTP30Welsh.getTestingOrganisationAndInspectorsName(); + + assertEquals("DRIVER AND VEHICLE STANDARDS AGENCY R.DREWNO", vtp20TestingOrganisationAndInspectorsName); + assertEquals("DRIVER AND VEHICLE STANDARDS AGENCY R.DREWNO", vtp30TestingOrganisationAndInspectorsName); + assertEquals("ASIANTAETH SAFONAU GYRWYR A CHERBYDAU R.DREWNO", vtp20WelshTestingOrganisationAndInspectorsName); + assertEquals("ASIANTAETH SAFONAU GYRWYR A CHERBYDAU R.DREWNO", vtp30WelshTestingOrganisationAndInspectorsName1); + } + + @Test + public void verifyMotTestNumber() { + String testNumber = certificatePageObjectVTP20.getTestNumber(); + String testNumber2 = certificatePageObjectVTP30.getTestNumber(); + + assertEquals("1806 8140 0628", testNumber); + assertEquals("1806 8140 0628", testNumber2); + } + + @Test + public void verifyExpiryDateOnPassIsPresent() { + String expiryDate = certificatePageObjectVTP20.getExpiryDate(); + String expiryDateWelsh = certificatePageObjectVTP20Welsh.getExpiryDate(); + + assertEquals("12.10.2018", expiryDate); + assertEquals("12.10.2018", expiryDateWelsh); + } +} + diff --git a/src/test/java/htmlverification/tests/CvsTrlPrsBilingualTest.java b/src/test/java/htmlverification/tests/CvsTrlPrsBilingualTest.java new file mode 100644 index 00000000..94705904 --- /dev/null +++ b/src/test/java/htmlverification/tests/CvsTrlPrsBilingualTest.java @@ -0,0 +1,196 @@ +package htmlverification.tests; + +import com.github.jknack.handlebars.Handlebars; +import htmlverification.framework.page_object.CertificatePageObject; +import htmlverification.service.CvsCertificateTestDataProvider; +import org.junit.Before; +import org.junit.Test; +import uk.gov.dvsa.model.cvs.CvsTrlPRSBilingual; +import uk.gov.dvsa.service.HtmlGenerator; + +import java.io.IOException; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateData.PASS_WITH_DEFECTS_HEADER; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateDataWelsh.PASS_WITH_DEFECTS_HEADER_WELSH; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotFailCertificateData.FAILED_SUMMARY_HEADER; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotFailCertificateDataWelsh.FAILED_SUMMARY_HEADER_WELSH; +import static uk.gov.dvsa.model.mot.results.Summary.EU_NUMBER_SUMMARY_HEADER; + +public class CvsTrlPrsBilingualTest { + protected HtmlGenerator htmlGenerator; + protected CvsTrlPRSBilingual testCertificate; + protected CertificatePageObject certificatePageObjectVTG5A; + protected CertificatePageObject certificatePageObjectVTG5AW; + protected CertificatePageObject certificatePageObjectVTG30; + protected CertificatePageObject certificatePageObjectVTG30W; + + public CvsTrlPrsBilingualTest() { + this.htmlGenerator = new HtmlGenerator(new Handlebars()); + } + + @Before + public void setup() throws IOException { + testCertificate = CvsCertificateTestDataProvider.getCvsTrlPrsBilingual(); + + String certHtmlVTG5A = htmlGenerator.generate(testCertificate).get(0); + String certHtmlVTG5AW = htmlGenerator.generate(testCertificate).get(2); + String certHtmlVTG30 = htmlGenerator.generate(testCertificate).get(1); + String certHtmlVTG30W = htmlGenerator.generate(testCertificate).get(3); + + certificatePageObjectVTG5A = new CertificatePageObject(certHtmlVTG5A); + certificatePageObjectVTG5AW = new CertificatePageObject(certHtmlVTG5AW); + certificatePageObjectVTG30 = new CertificatePageObject(certHtmlVTG30); + certificatePageObjectVTG30W = new CertificatePageObject(certHtmlVTG30W); + } + + @Test + public void verifyResultSummaries() { + String resultNameVTG5A = certificatePageObjectVTG5A.getDefectSummaryComponent().getResultNameItem().text(); + String resultNameVTG5AWelsh = certificatePageObjectVTG5AW.getDefectSummaryComponent().getResultNameItem().text(); + String resultNameVTG30 = certificatePageObjectVTG30.getDefectSummaryComponent().getResultNameItem().text(); + String resultNameVTG30Welsh = certificatePageObjectVTG30W.getDefectSummaryComponent().getResultNameItem().text(); + + assertEquals( + String.format("%s%s%s %s", "(", EU_NUMBER_SUMMARY_HEADER, ")", PASS_WITH_DEFECTS_HEADER), + resultNameVTG5A); + assertEquals( + String.format("%s%s%s %s", "(", EU_NUMBER_SUMMARY_HEADER, ")", PASS_WITH_DEFECTS_HEADER_WELSH), + resultNameVTG5AWelsh); + assertEquals( + String.format("%s%s%s %s", "(", EU_NUMBER_SUMMARY_HEADER, ")", FAILED_SUMMARY_HEADER), + resultNameVTG30 + ); + assertEquals( + String.format("%s%s%s %s", "(", EU_NUMBER_SUMMARY_HEADER, ")", FAILED_SUMMARY_HEADER_WELSH), + resultNameVTG30Welsh + ); + } + + @Test + public void verifyCountryOfRegistration() { + String country = certificatePageObjectVTG5A.getCountryOfRegistration(); + String country2 = certificatePageObjectVTG5AW.getCountryOfRegistration(); + String country3 = certificatePageObjectVTG30.getCountryOfRegistration(); + String country4 = certificatePageObjectVTG30W.getCountryOfRegistration(); + + assertEquals(testCertificate.getData().getCountryOfRegistrationCode(), country); + assertEquals(testCertificate.getData().getCountryOfRegistrationCode(), country2); + assertEquals(testCertificate.getData().getCountryOfRegistrationCode(), country3); + assertEquals(testCertificate.getData().getCountryOfRegistrationCode(), country4); + } + + @Test + public void verifyMakeAndModel() { + String makeAndModel = certificatePageObjectVTG5A.getMakeAndModel(); + String makeAndModel2 = certificatePageObjectVTG5AW.getMakeAndModel(); + String makeAndModel3 = certificatePageObjectVTG30.getMakeAndModel(); + String makeAndModel4 = certificatePageObjectVTG30W.getMakeAndModel(); + + assertEquals( + String.format("%s%s %s", testCertificate.getData().getMake(), ",", testCertificate.getData().getModel()), + makeAndModel + ); + assertEquals( + String.format("%s%s %s", testCertificate.getData().getMake(), ",", testCertificate.getData().getModel()), + makeAndModel2 + ); + assertEquals( + String.format("%s%s %s", testCertificate.getFailData().getMake(), ",", testCertificate.getFailData().getModel()), + makeAndModel3 + ); + assertEquals( + String.format("%s%s %s", testCertificate.getFailData().getMake(), ",", testCertificate.getFailData().getModel()), + makeAndModel4 + ); + } + + + @Test + public void verifyAdvisoryDefects() { + List advisoryDefects = certificatePageObjectVTG5A.getDefectSummaryComponent().getAdvisories().eachText(); + assertEquals(1, advisoryDefects.size()); + } + + @Test + public void verifyMinorDefects() { + List minorDefects = certificatePageObjectVTG5A.getDefectSummaryComponent().getMinorDefects().eachText(); + assertEquals(1, minorDefects.size()); + } + + @Test + public void verifyAdvisoryDefectsWelsh() { + List advisoryDefects = certificatePageObjectVTG5AW.getDefectSummaryComponent().getAdvisoriesWelshCVS().eachText(); + assertEquals(1, advisoryDefects.size()); + } + + @Test + public void verifyMinorDefectsWelsh() { + List minorDefects = certificatePageObjectVTG5AW.getDefectSummaryComponent().getMinorDefectsWelshCVS().eachText(); + assertEquals(1, minorDefects.size()); + } + + @Test + public void verifyDateOfTheTest() { + String dateOfTheTest = certificatePageObjectVTG5A.getDateOfTheTest(); + String dateOfTheTest2 = certificatePageObjectVTG5AW.getDateOfTheTest(); + String dateOfTheTest3 = certificatePageObjectVTG30.getDateOfTheTest(); + String dateOfTheTest4 = certificatePageObjectVTG30W.getDateOfTheTest(); + + assertEquals("12.11.2018", dateOfTheTest); + assertEquals("12.11.2018", dateOfTheTest2); + assertEquals("12.11.2018", dateOfTheTest3); + assertEquals("12.11.2018", dateOfTheTest4); + } + + @Test + public void verifyLocationOfTheTest() { + String location = certificatePageObjectVTG5A.getLocationOfTheTest(); + String location2 = certificatePageObjectVTG5AW.getLocationOfTheTest(); + String location3 = certificatePageObjectVTG30.getLocationOfTheTest(); + String location4 = certificatePageObjectVTG30W.getLocationOfTheTest(); + + assertEquals("P12345, POPULAR GARAGES", location); + assertEquals("P12345, POPULAR GARAGES", location2); + assertEquals("P12345, TEST STATION NAME", location3); + assertEquals("P12345, TEST STATION NAME", location4); + } + + @Test + public void verifyTestingOrganisationAndInspectorsName() { + String text = certificatePageObjectVTG5A.getTestingOrganisationAndInspectorsName(); + String text2 = certificatePageObjectVTG5AW.getTestingOrganisationAndInspectorsName(); + String text3 = certificatePageObjectVTG30.getTestingOrganisationAndInspectorsName(); + String text4 = certificatePageObjectVTG30W.getTestingOrganisationAndInspectorsName(); + + assertEquals("DRIVER AND VEHICLE STANDARDS AGENCY R.DREWNO", text); + assertEquals("ASIANTAETH SAFONAU GYRWYR A CHERBYDAU R.DREWNO", text2); + assertEquals("DRIVER AND VEHICLE STANDARDS AGENCY TESTER NAME", text3); + assertEquals("ASIANTAETH SAFONAU GYRWYR A CHERBYDAU TESTER NAME", text4); + } + + @Test + public void verifyMotTestNumber() { + String testNumber = certificatePageObjectVTG5A.getTestNumber(); + String testNumber2 = certificatePageObjectVTG5AW.getTestNumber(); + String testNumber3 = certificatePageObjectVTG30.getTestNumber(); + String testNumber4 = certificatePageObjectVTG30W.getTestNumber(); + + assertEquals("1806 8140 0628", testNumber); + assertEquals("1806 8140 0628", testNumber2); + assertEquals("X01X00001", testNumber3); + assertEquals("X01X00001", testNumber4); + } + + @Test + public void verifyExpiryDateOnPassIsPresent() { + String expiryDate = certificatePageObjectVTG5A.getExpiryDate(); + String expiryDate2 = certificatePageObjectVTG5AW.getExpiryDate(); + + assertEquals("12.10.2018", expiryDate); + assertEquals("12.10.2018", expiryDate2); + } +} + + diff --git a/src/test/java/htmlverification/tests/IVA30Test.java b/src/test/java/htmlverification/tests/IVA30Test.java index bdd9d856..81485b7e 100644 --- a/src/test/java/htmlverification/tests/IVA30Test.java +++ b/src/test/java/htmlverification/tests/IVA30Test.java @@ -86,7 +86,7 @@ public void verifyDate() { @Test public void verifyReapplicationDate() { String reapplicationDate = ivaPageObject.getReapplicationDate(); - assertEquals("Reapplication required by: ".concat(testCertificate.getIvaData().getReapplicationDate()), reapplicationDate); + assertEquals("Reapplication required by: 27/05/2024", reapplicationDate); } @Test @@ -112,7 +112,9 @@ public void verifyRequiredStandards() { String rs = requiredStandardsArray[0].getRequiredStandard(); String addNotes = requiredStandardsArray[0].getAdditionalNotes(); - assertEquals(sectionNo + " - " + description + " RS" + rsNo + ": " + rs + " Additional Information: " + addNotes, requiredStandards); + assertEquals(sectionNo + " - " + description + " RS" + rsNo + ": " + rs + " Additional Information: " + addNotes + + " " + sectionNo + " - " + description + " RS" + rsNo + ": " + rs + " (PRS)" + " Additional Information: " + addNotes + , requiredStandards); } @Test diff --git a/src/test/java/htmlverification/tests/MSVA30Test.java b/src/test/java/htmlverification/tests/MSVA30Test.java index 817a7610..087bca17 100644 --- a/src/test/java/htmlverification/tests/MSVA30Test.java +++ b/src/test/java/htmlverification/tests/MSVA30Test.java @@ -46,7 +46,7 @@ public void verifySerialNumber() { @Test public void verifyVehicleZNumber() { String vehicleZNumber = msvaPageObject.getVehicleZNumber(); - assertEquals("Vehicle 'Z' No.: ".concat(testCertificate.getMsvaData().getVehicleZNumber()), vehicleZNumber); + assertEquals("Vehicle 'Z' No: ".concat(testCertificate.getMsvaData().getVehicleZNumber()), vehicleZNumber); } @Test @@ -77,9 +77,9 @@ public void verifyDate() { } @Test - public void verifyRetestDate() { - String retestDate = msvaPageObject.getRetestDate(); - assertEquals("Retest required by: ".concat(testCertificate.getMsvaData().getRetestDate()), retestDate); + public void verifyReapplicationDate() { + String retestDate = msvaPageObject.getReapplicationDate(); + assertEquals("Reapplication required by: 27/05/2024", retestDate); } @Test @@ -105,7 +105,9 @@ public void verifyRequiredStandards() { String rs = requiredStandardsArray[0].getRequiredStandard(); String addNotes = requiredStandardsArray[0].getAdditionalNotes(); - assertEquals(sectionNo + " - " + description + " RS" + rsNo + ": " + rs + " Additional Information: " + addNotes, requiredStandards); + assertEquals(sectionNo + " - " + description + " RS" + rsNo + ": " + rs + " Additional Information: " + addNotes + + " " + sectionNo + " - " + description + " RS" + rsNo + ": " + rs + " (PRS)" + " Additional Information: " + addNotes + , requiredStandards); } @Test diff --git a/src/test/java/pdfverification/tests/HgvPRSBilingualTests.java b/src/test/java/pdfverification/tests/HgvPRSBilingualTests.java new file mode 100644 index 00000000..fda985f1 --- /dev/null +++ b/src/test/java/pdfverification/tests/HgvPRSBilingualTests.java @@ -0,0 +1,51 @@ +package pdfverification.tests; + +import com.github.jknack.handlebars.Handlebars; +import com.itextpdf.text.pdf.PdfReader; +import htmlverification.service.CvsCertificateTestDataProvider; +import org.junit.Before; +import org.junit.Test; +import org.xhtmlrenderer.pdf.ITextRenderer; +import pdfverification.service.PDFParser; +import uk.gov.dvsa.model.cvs.CvsMotCertificate; +import uk.gov.dvsa.service.HtmlGenerator; +import uk.gov.dvsa.service.PDFGenerationService; + +import java.io.IOException; + +import static org.junit.Assert.assertTrue; + +public class HgvPRSBilingualTests { + private HtmlGenerator htmlGenerator; + private PDFGenerationService pdfGenerationService; + private CvsMotCertificate testCertificate; + private PDFParser pdfParser; + private PdfReader pdfReader; + + public HgvPRSBilingualTests() { + this.testCertificate = CvsCertificateTestDataProvider.getCvsHgvPRSBilingual(); + this.htmlGenerator = new HtmlGenerator(new Handlebars()); + this.pdfGenerationService = new PDFGenerationService(new ITextRenderer()); + this.pdfParser = new PDFParser(); + } + + @Before + public void setup() throws Exception { + byte[] pdfData = pdfGenerationService.generate(htmlGenerator.generate(testCertificate)); + pdfReader = pdfParser.readPdf(pdfData); + } + + @Test + public void verifyTitle() throws IOException { + assertTrue(pdfParser.getRawText(pdfReader, 1).contains("MOT test certificate (HGV)")); + assertTrue(pdfParser.getRawText(pdfReader, 2).contains("Refusal of MOT test certificate")); + assertTrue(pdfParser.getRawText(pdfReader, 3).contains("Tystysgrif prawf MOT (HGV)")); + assertTrue(pdfParser.getRawText(pdfReader, 4).contains("Gwrthod tystysgrif prawf MOT")); + } + + @Test + public void verifySinglePageWithInvalidXMLCharacter() throws Exception { + this.testCertificate = CvsCertificateTestDataProvider.getCvsHgvPRSBilingualHavingInvalidXMLCharacter(); + pdfParser.getRawText(pdfReader, 1); + } +} diff --git a/src/test/java/pdfverification/tests/IVA30Tests.java b/src/test/java/pdfverification/tests/IVA30Tests.java index aa113f43..ab66945c 100644 --- a/src/test/java/pdfverification/tests/IVA30Tests.java +++ b/src/test/java/pdfverification/tests/IVA30Tests.java @@ -13,12 +13,13 @@ import static org.junit.Assert.assertTrue; +import java.io.FileOutputStream; import java.io.IOException; public class IVA30Tests { private static final String CERT_NAME = "INDIVIDUAL VEHICLE APPROVAL (IVA)"; private static final String FOOTER_DOC_NAME = "IVA30VTA (DVSA0842)"; - private static final String FOOTER_VERSION_DATE = "Version 1.0 Apr 2024"; + private static final String FOOTER_VERSION_DATE = "Version 1.2 July 2024"; private PDFGenerationService pdfGenerationService; private HtmlGenerator htmlGenerator; private PDFParser pdfParser; diff --git a/src/test/java/pdfverification/tests/MSVA30Tests.java b/src/test/java/pdfverification/tests/MSVA30Tests.java index 57b2dca1..5a0347b7 100644 --- a/src/test/java/pdfverification/tests/MSVA30Tests.java +++ b/src/test/java/pdfverification/tests/MSVA30Tests.java @@ -12,6 +12,7 @@ import uk.gov.dvsa.service.PDFGenerationService; +import java.io.FileOutputStream; import java.io.IOException; import static org.junit.Assert.assertTrue; @@ -21,7 +22,7 @@ public class MSVA30Tests { private final String FOOTER_DOC_NAME = "MSVA30VTA (DVSA0848)"; - private final String FOOTER_VERSION_DATE = "Version 1.0 May 2024"; + private final String FOOTER_VERSION_DATE = "Version 1.2 July 2024"; private PDFGenerationService pdfGenerationService; private HtmlGenerator htmlGenerator; diff --git a/src/test/java/pdfverification/tests/PsvPRSBilingualTests.java b/src/test/java/pdfverification/tests/PsvPRSBilingualTests.java new file mode 100644 index 00000000..d7b86205 --- /dev/null +++ b/src/test/java/pdfverification/tests/PsvPRSBilingualTests.java @@ -0,0 +1,52 @@ +package pdfverification.tests; + +import com.github.jknack.handlebars.Handlebars; +import com.itextpdf.text.pdf.PdfReader; +import htmlverification.service.CvsCertificateTestDataProvider; +import org.junit.Before; +import org.junit.Test; +import org.xhtmlrenderer.pdf.ITextRenderer; +import pdfverification.service.PDFParser; +import uk.gov.dvsa.model.cvs.CvsMotCertificate; +import uk.gov.dvsa.service.HtmlGenerator; +import uk.gov.dvsa.service.PDFGenerationService; + +import java.io.IOException; + +import static org.junit.Assert.assertTrue; + +public class PsvPRSBilingualTests { + private final HtmlGenerator htmlGenerator; + private final PDFGenerationService pdfGenerationService; + private CvsMotCertificate testCertificate; + private final PDFParser pdfParser; + private PdfReader pdfReader; + + public PsvPRSBilingualTests() { + this.testCertificate = CvsCertificateTestDataProvider.getCvsPsvPRSBilingual(); + this.htmlGenerator = new HtmlGenerator(new Handlebars()); + this.pdfGenerationService = new PDFGenerationService(new ITextRenderer()); + this.pdfParser = new PDFParser(); + } + + @Before + public void setup() throws Exception { + byte[] pdfData = pdfGenerationService.generate(htmlGenerator.generate(testCertificate)); + pdfReader = pdfParser.readPdf(pdfData); + } + + @Test + public void verifyTitle() throws IOException { + assertTrue(pdfParser.getRawText(pdfReader, 1).contains("MOT test certificate (PSV)")); + assertTrue(pdfParser.getRawText(pdfReader, 3).contains("Refusal of MOT test certificate")); + assertTrue(pdfParser.getRawText(pdfReader, 5).contains("Tystysgrif prawf MOT (PSV)")); + assertTrue(pdfParser.getRawText(pdfReader, 7).contains("Gwrthod tystysgrif prawf MOT")); + } + + @Test + public void verifySinglePageWithInvalidXMLCharacter() throws Exception { + this.testCertificate = CvsCertificateTestDataProvider.getCvsPsvPRSBilingualHavingInvalidXMLCharacter(); + pdfParser.getRawText(pdfReader, 1); + } +} + diff --git a/src/test/java/pdfverification/tests/TrlPrsBilingual.java b/src/test/java/pdfverification/tests/TrlPrsBilingual.java new file mode 100644 index 00000000..3e88ef13 --- /dev/null +++ b/src/test/java/pdfverification/tests/TrlPrsBilingual.java @@ -0,0 +1,65 @@ +package pdfverification.tests; + +import com.github.jknack.handlebars.Handlebars; +import com.itextpdf.text.pdf.PdfReader; +import htmlverification.service.CvsCertificateTestDataProvider; +import org.junit.Before; +import org.junit.Test; +import org.xhtmlrenderer.pdf.ITextRenderer; +import pdfverification.service.PDFParser; +import uk.gov.dvsa.model.cvs.CvsMotCertificate; +import uk.gov.dvsa.service.HtmlGenerator; +import uk.gov.dvsa.service.PDFGenerationService; + +import java.io.IOException; + +import static htmlverification.framework.component.DefectSummaryComponent.*; +import static org.junit.Assert.assertTrue; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateDataWelsh.MINOR_DEFECTS_HEADER_WELSH; + +public class TrlPrsBilingual { + private final HtmlGenerator htmlGenerator; + private final PDFGenerationService pdfGenerationService; + private final CvsMotCertificate testCertificate; + private final PDFParser pdfParser; + + private PdfReader pdfReader; + + public TrlPrsBilingual() { + this.testCertificate = CvsCertificateTestDataProvider.getCvsTrlPrsBilingual(); + this.htmlGenerator = new HtmlGenerator(new Handlebars()); + this.pdfGenerationService = new PDFGenerationService(new ITextRenderer()); + this.pdfParser = new PDFParser(); + } + + @Before + public void setup() throws Exception { + byte[] pdfData = pdfGenerationService.generate(htmlGenerator.generate(testCertificate)); + pdfReader = pdfParser.readPdf(pdfData); + } + + @Test + public void verifyEnglishTitles() throws IOException { + assertTrue(pdfParser.getRawText(pdfReader, 1).contains("MOT test certificate (TRL)")); + assertTrue(pdfParser.getRawText(pdfReader, 2).contains("Refusal of MOT test certificate")); + } + + @Test + public void verifyWelshTitles() throws IOException { + assertTrue(pdfParser.getRawText(pdfReader, 3).contains("Tystysgrif prawf MOT (TRL)")); + assertTrue(pdfParser.getRawText(pdfReader, 4).contains("Gwrthod tystysgrif prawf MOT")); + + } + + @Test + public void verifyBilingualMinorDefectsHeader() throws Exception { + assertTrue(pdfParser.getRawText(pdfReader, 1).contains(MINOR_DEFECTS_HEADER_TEXT)); + assertTrue(pdfParser.getRawText(pdfReader, 3).contains(MINOR_DEFECTS_HEADER_WELSH)); + } + + @Test + public void verifyBilingualAdvisoryDefectsHeader() throws Exception { + assertTrue(pdfParser.getRawText(pdfReader, 1).contains(ADVISORIES_HEADER_TEXT)); + assertTrue(pdfParser.getRawText(pdfReader, 3).contains(ADVISORIES_HEADER_TEXT_WELSH)); + } +} diff --git a/src/test/java/pdfverification/tests/VTG30WTests.java b/src/test/java/pdfverification/tests/VTG30WTests.java index 097145a6..039541d6 100644 --- a/src/test/java/pdfverification/tests/VTG30WTests.java +++ b/src/test/java/pdfverification/tests/VTG30WTests.java @@ -45,7 +45,7 @@ public void verifyTitle() throws IOException { } @Test - public void verifySinglePageWithInvaidXMLCharacter() throws Exception { + public void verifySinglePageWithInvalidXMLCharacter() throws Exception { this.testCertificate = CvsCertificateTestDataProvider.getVTG30WHavingInvalidXMLCharacter(); pdfParser.getRawText(pdfReader, 1); } diff --git a/src/test/java/pdfverification/tests/VTP30WTests.java b/src/test/java/pdfverification/tests/VTP30WTests.java index 5255fe19..835c524a 100644 --- a/src/test/java/pdfverification/tests/VTP30WTests.java +++ b/src/test/java/pdfverification/tests/VTP30WTests.java @@ -11,7 +11,6 @@ import uk.gov.dvsa.service.HtmlGenerator; import uk.gov.dvsa.service.PDFGenerationService; -import java.io.FileOutputStream; import java.io.IOException; import static htmlverification.framework.component.DefectSummaryComponent.*; import static org.junit.Assert.assertTrue;