ffc-pay-schemes 1.0.13 → 1.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/README.md +13 -7
  2. package/app/constants/manual-sources.js +79 -0
  3. package/app/constants/pillars.js +21 -0
  4. package/app/helpers/get-journal-source-from-pillar.js +15 -0
  5. package/app/pillar/get-pillar-from-scheme-id.js +11 -0
  6. package/app/pillar/get-pillars.js +9 -0
  7. package/index.js +6 -0
  8. package/package.json +1 -1
  9. package/test/unit/helpers/get-journal-source-from-pillar.test.js +25 -0
  10. package/test/unit/pillar/get-pillar-from-scheme-id.test.js +51 -0
  11. package/test/unit/pillar/get-pillars.test.js +8 -0
  12. package/test-output/cobertura-coverage.xml +76 -5
  13. package/test-output/junit.xml +325 -301
  14. package/test-output/lcov-report/ffc-pay-schemes/app/constants/account-codes/ap.js.html +1 -1
  15. package/test-output/lcov-report/ffc-pay-schemes/app/constants/account-codes/ar-admin.js.html +1 -1
  16. package/test-output/lcov-report/ffc-pay-schemes/app/constants/account-codes/ar-irregular.js.html +1 -1
  17. package/test-output/lcov-report/ffc-pay-schemes/app/constants/account-codes/index.html +1 -1
  18. package/test-output/lcov-report/ffc-pay-schemes/app/constants/delivery-bodies.js.html +1 -1
  19. package/test-output/lcov-report/ffc-pay-schemes/app/constants/description-codes.js.html +1 -1
  20. package/test-output/lcov-report/ffc-pay-schemes/app/constants/file-masks.js.html +1 -1
  21. package/test-output/lcov-report/ffc-pay-schemes/app/constants/frps-schemes.js.html +1 -1
  22. package/test-output/lcov-report/ffc-pay-schemes/app/constants/fund-codes.js.html +1 -1
  23. package/test-output/lcov-report/ffc-pay-schemes/app/constants/index.html +20 -5
  24. package/test-output/lcov-report/ffc-pay-schemes/app/constants/manual-sources.js.html +322 -0
  25. package/test-output/lcov-report/ffc-pay-schemes/app/constants/pillars.js.html +65 -2
  26. package/test-output/lcov-report/ffc-pay-schemes/app/constants/scheme-batch-properties.js.html +1 -1
  27. package/test-output/lcov-report/ffc-pay-schemes/app/constants/scheme-ids.js.html +2 -2
  28. package/test-output/lcov-report/ffc-pay-schemes/app/constants/scheme-names.js.html +1 -1
  29. package/test-output/lcov-report/ffc-pay-schemes/app/constants/schemes-not-requiring-ppas.js.html +1 -1
  30. package/test-output/lcov-report/ffc-pay-schemes/app/constants/schemes-providing-account-values.js.html +1 -1
  31. package/test-output/lcov-report/ffc-pay-schemes/app/constants/schemes.js.html +1 -1
  32. package/test-output/lcov-report/ffc-pay-schemes/app/constants/sequence-positions.js.html +1 -1
  33. package/test-output/lcov-report/ffc-pay-schemes/app/constants/siti-agri-schemes.js.html +1 -1
  34. package/test-output/lcov-report/ffc-pay-schemes/app/constants/source-systems.js.html +1 -1
  35. package/test-output/lcov-report/ffc-pay-schemes/app/constants/unknown.js.html +2 -2
  36. package/test-output/lcov-report/ffc-pay-schemes/app/create-invoice-number/create-default-invoice-number.js.html +1 -1
  37. package/test-output/lcov-report/ffc-pay-schemes/app/create-invoice-number/create-es-invoice-number.js.html +1 -1
  38. package/test-output/lcov-report/ffc-pay-schemes/app/create-invoice-number/create-imps-invoice-number.js.html +1 -1
  39. package/test-output/lcov-report/ffc-pay-schemes/app/create-invoice-number/create-siti-agri-invoice-number.js.html +1 -1
  40. package/test-output/lcov-report/ffc-pay-schemes/app/create-invoice-number/create-standard-scheme-invoice-number.js.html +1 -1
  41. package/test-output/lcov-report/ffc-pay-schemes/app/create-invoice-number/index.html +1 -1
  42. package/test-output/lcov-report/ffc-pay-schemes/app/create-invoice-number/index.js.html +1 -1
  43. package/test-output/lcov-report/ffc-pay-schemes/app/create-invoice-number/use-invoice-number-as-is.js.html +1 -1
  44. package/test-output/lcov-report/ffc-pay-schemes/app/create-split-invoice-number/create-default-invoice-number.js.html +1 -1
  45. package/test-output/lcov-report/ffc-pay-schemes/app/create-split-invoice-number/create-siti-agri-invoice-number.js.html +1 -1
  46. package/test-output/lcov-report/ffc-pay-schemes/app/create-split-invoice-number/index.html +1 -1
  47. package/test-output/lcov-report/ffc-pay-schemes/app/create-split-invoice-number/index.js.html +1 -1
  48. package/test-output/lcov-report/ffc-pay-schemes/app/get-account-code-map/bps-map.js.html +1 -1
  49. package/test-output/lcov-report/ffc-pay-schemes/app/get-account-code-map/cohtc-map.js.html +1 -1
  50. package/test-output/lcov-report/ffc-pay-schemes/app/get-account-code-map/cs-map.js.html +1 -1
  51. package/test-output/lcov-report/ffc-pay-schemes/app/get-account-code-map/default-map.js.html +1 -1
  52. package/test-output/lcov-report/ffc-pay-schemes/app/get-account-code-map/delinked-map.js.html +1 -1
  53. package/test-output/lcov-report/ffc-pay-schemes/app/get-account-code-map/index.html +1 -1
  54. package/test-output/lcov-report/ffc-pay-schemes/app/get-account-code-map/index.js.html +1 -1
  55. package/test-output/lcov-report/ffc-pay-schemes/app/get-account-code-map/lump-sums-map.js.html +1 -1
  56. package/test-output/lcov-report/ffc-pay-schemes/app/get-account-code-map/sfi-frps-map.js.html +1 -1
  57. package/test-output/lcov-report/ffc-pay-schemes/app/get-account-code-map/vet-visits-map.js.html +1 -1
  58. package/test-output/lcov-report/ffc-pay-schemes/app/helpers/get-batch-sequence-from-file-name.js.html +1 -1
  59. package/test-output/lcov-report/ffc-pay-schemes/app/helpers/get-journal-source-from-pillar.js.html +130 -0
  60. package/test-output/lcov-report/ffc-pay-schemes/app/helpers/get-reporting-data-filter.js.html +1 -1
  61. package/test-output/lcov-report/ffc-pay-schemes/app/helpers/index.html +20 -5
  62. package/test-output/lcov-report/ffc-pay-schemes/app/helpers/is-frps.js.html +1 -1
  63. package/test-output/lcov-report/ffc-pay-schemes/app/helpers/is-siti-agri.js.html +1 -1
  64. package/test-output/lcov-report/ffc-pay-schemes/app/helpers/is-valid-scheme-id.js.html +1 -1
  65. package/test-output/lcov-report/ffc-pay-schemes/app/helpers/scheme-does-not-require-ppas.js.html +1 -1
  66. package/test-output/lcov-report/ffc-pay-schemes/app/helpers/scheme-provides-accounting-values.js.html +1 -1
  67. package/test-output/lcov-report/ffc-pay-schemes/app/pillar/get-pillar-from-scheme-id.js.html +118 -0
  68. package/test-output/lcov-report/ffc-pay-schemes/app/pillar/get-pillars.js.html +112 -0
  69. package/test-output/lcov-report/ffc-pay-schemes/app/pillar/index.html +131 -0
  70. package/test-output/lcov-report/ffc-pay-schemes/app/scheme-id/get-scheme-id-from-pillar.js.html +1 -1
  71. package/test-output/lcov-report/ffc-pay-schemes/app/scheme-id/get-scheme-id-from-source-system.js.html +1 -1
  72. package/test-output/lcov-report/ffc-pay-schemes/app/scheme-id/get-scheme-ids.js.html +1 -1
  73. package/test-output/lcov-report/ffc-pay-schemes/app/scheme-id/index.html +1 -1
  74. package/test-output/lcov-report/ffc-pay-schemes/app/scheme-name/get-scheme-name-from-scheme-id.js.html +1 -1
  75. package/test-output/lcov-report/ffc-pay-schemes/app/scheme-name/get-scheme-names.js.html +1 -1
  76. package/test-output/lcov-report/ffc-pay-schemes/app/scheme-name/index.html +1 -1
  77. package/test-output/lcov-report/ffc-pay-schemes/app/scheme-properties/get-scheme-batch-properties.js.html +1 -1
  78. package/test-output/lcov-report/ffc-pay-schemes/app/scheme-properties/get-scheme-from-batch-file-name.js.html +1 -1
  79. package/test-output/lcov-report/ffc-pay-schemes/app/scheme-properties/get-scheme-properties.js.html +1 -1
  80. package/test-output/lcov-report/ffc-pay-schemes/app/scheme-properties/get-schemes.js.html +1 -1
  81. package/test-output/lcov-report/ffc-pay-schemes/app/scheme-properties/index.html +1 -1
  82. package/test-output/lcov-report/ffc-pay-schemes/app/source-system/get-source-system-from-scheme-id.js.html +1 -1
  83. package/test-output/lcov-report/ffc-pay-schemes/app/source-system/get-source-systems.js.html +1 -1
  84. package/test-output/lcov-report/ffc-pay-schemes/app/source-system/index.html +1 -1
  85. package/test-output/lcov-report/ffc-pay-schemes/index.html +5 -5
  86. package/test-output/lcov-report/ffc-pay-schemes/index.js.html +22 -4
  87. package/test-output/lcov-report/index.html +33 -18
  88. package/test-output/lcov.info +77 -4
@@ -1,15 +1,55 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <testsuites name="jest tests" tests="325" failures="0" errors="0" time="1.239">
3
- <testsuite name="getAccountCodeMap" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:30" time="0.148" tests="19">
4
- <testcase classname="getAccountCodeMap returns the correct map for SFI" name="getAccountCodeMap returns the correct map for SFI" time="0.002">
2
+ <testsuites name="jest tests" tests="334" failures="0" errors="0" time="1.205">
3
+ <testsuite name="createInvoiceNumber" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:36" time="0.117" tests="19">
4
+ <testcase classname="createInvoiceNumber returns the existing invoice number for MANUAL" name="createInvoiceNumber returns the existing invoice number for MANUAL" time="0.001">
5
+ </testcase>
6
+ <testcase classname="createInvoiceNumber returns the existing invoice number for FC" name="createInvoiceNumber returns the existing invoice number for FC" time="0">
7
+ </testcase>
8
+ <testcase classname="createInvoiceNumber returns the existing invoice number for FPTT" name="createInvoiceNumber returns the existing invoice number for FPTT" time="0">
9
+ </testcase>
10
+ <testcase classname="createInvoiceNumber returns the existing invoice number for WMP" name="createInvoiceNumber returns the existing invoice number for WMP" time="0">
11
+ </testcase>
12
+ <testcase classname="createInvoiceNumber returns the existing invoice number for a manual source system" name="createInvoiceNumber returns the existing invoice number for a manual source system" time="0">
13
+ </testcase>
14
+ <testcase classname="createInvoiceNumber uses the standard scheme invoice number creator for DELINKED" name="createInvoiceNumber uses the standard scheme invoice number creator for DELINKED" time="0.001">
15
+ </testcase>
16
+ <testcase classname="createInvoiceNumber uses the standard scheme invoice number creator for SFI_EXPANDED" name="createInvoiceNumber uses the standard scheme invoice number creator for SFI_EXPANDED" time="0">
17
+ </testcase>
18
+ <testcase classname="createInvoiceNumber uses the standard scheme invoice number creator for COHT_REVENUE" name="createInvoiceNumber uses the standard scheme invoice number creator for COHT_REVENUE" time="0">
19
+ </testcase>
20
+ <testcase classname="createInvoiceNumber uses the standard scheme invoice number creator for COHT_CAPITAL" name="createInvoiceNumber uses the standard scheme invoice number creator for COHT_CAPITAL" time="0">
21
+ </testcase>
22
+ <testcase classname="createInvoiceNumber uses the SITI Agri invoice number creator for SFI" name="createInvoiceNumber uses the SITI Agri invoice number creator for SFI" time="0">
23
+ </testcase>
24
+ <testcase classname="createInvoiceNumber uses the SITI Agri invoice number creator for SFI_PILOT" name="createInvoiceNumber uses the SITI Agri invoice number creator for SFI_PILOT" time="0">
25
+ </testcase>
26
+ <testcase classname="createInvoiceNumber uses the SITI Agri invoice number creator for LUMP_SUMS" name="createInvoiceNumber uses the SITI Agri invoice number creator for LUMP_SUMS" time="0.001">
27
+ </testcase>
28
+ <testcase classname="createInvoiceNumber uses the SITI Agri invoice number creator for CS" name="createInvoiceNumber uses the SITI Agri invoice number creator for CS" time="0">
29
+ </testcase>
30
+ <testcase classname="createInvoiceNumber uses the SITI Agri invoice number creator for BPS" name="createInvoiceNumber uses the SITI Agri invoice number creator for BPS" time="0">
31
+ </testcase>
32
+ <testcase classname="createInvoiceNumber uses the SITI Agri invoice number creator for SFI23" name="createInvoiceNumber uses the SITI Agri invoice number creator for SFI23" time="0">
33
+ </testcase>
34
+ <testcase classname="createInvoiceNumber uses the ES invoice number creator" name="createInvoiceNumber uses the ES invoice number creator" time="0">
35
+ </testcase>
36
+ <testcase classname="createInvoiceNumber uses the IMPS invoice number creator" name="createInvoiceNumber uses the IMPS invoice number creator" time="0">
37
+ </testcase>
38
+ <testcase classname="createInvoiceNumber uses the default invoice number creator for an unmapped scheme" name="createInvoiceNumber uses the default invoice number creator for an unmapped scheme" time="0">
39
+ </testcase>
40
+ <testcase classname="createInvoiceNumber returns null when the payment request is invalid" name="createInvoiceNumber returns null when the payment request is invalid" time="0">
41
+ </testcase>
42
+ </testsuite>
43
+ <testsuite name="getAccountCodeMap" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:36" time="0.05" tests="19">
44
+ <testcase classname="getAccountCodeMap returns the correct map for SFI" name="getAccountCodeMap returns the correct map for SFI" time="0.001">
5
45
  </testcase>
6
46
  <testcase classname="getAccountCodeMap returns the correct map for SFI_PILOT" name="getAccountCodeMap returns the correct map for SFI_PILOT" time="0">
7
47
  </testcase>
8
48
  <testcase classname="getAccountCodeMap returns the correct map for LUMP_SUMS" name="getAccountCodeMap returns the correct map for LUMP_SUMS" time="0">
9
49
  </testcase>
10
- <testcase classname="getAccountCodeMap returns the correct map for VET_VISITS" name="getAccountCodeMap returns the correct map for VET_VISITS" time="0.002">
50
+ <testcase classname="getAccountCodeMap returns the correct map for VET_VISITS" name="getAccountCodeMap returns the correct map for VET_VISITS" time="0">
11
51
  </testcase>
12
- <testcase classname="getAccountCodeMap returns the correct map for CS" name="getAccountCodeMap returns the correct map for CS" time="0.001">
52
+ <testcase classname="getAccountCodeMap returns the correct map for CS" name="getAccountCodeMap returns the correct map for CS" time="0">
13
53
  </testcase>
14
54
  <testcase classname="getAccountCodeMap returns the correct map for BPS" name="getAccountCodeMap returns the correct map for BPS" time="0">
15
55
  </testcase>
@@ -17,40 +57,30 @@
17
57
  </testcase>
18
58
  <testcase classname="getAccountCodeMap returns the correct map for DELINKED" name="getAccountCodeMap returns the correct map for DELINKED" time="0">
19
59
  </testcase>
20
- <testcase classname="getAccountCodeMap returns the correct map for SFI_EXPANDED" name="getAccountCodeMap returns the correct map for SFI_EXPANDED" time="0.001">
60
+ <testcase classname="getAccountCodeMap returns the correct map for SFI_EXPANDED" name="getAccountCodeMap returns the correct map for SFI_EXPANDED" time="0">
21
61
  </testcase>
22
62
  <testcase classname="getAccountCodeMap returns the correct map for COHT_REVENUE" name="getAccountCodeMap returns the correct map for COHT_REVENUE" time="0">
23
63
  </testcase>
24
- <testcase classname="getAccountCodeMap returns the correct map for COHT_CAPITAL" name="getAccountCodeMap returns the correct map for COHT_CAPITAL" time="0.001">
64
+ <testcase classname="getAccountCodeMap returns the correct map for COHT_CAPITAL" name="getAccountCodeMap returns the correct map for COHT_CAPITAL" time="0">
25
65
  </testcase>
26
66
  <testcase classname="getAccountCodeMap returns the correct map for FPTT" name="getAccountCodeMap returns the correct map for FPTT" time="0">
27
67
  </testcase>
28
68
  <testcase classname="getAccountCodeMap returns the correct map for WMP" name="getAccountCodeMap returns the correct map for WMP" time="0">
29
69
  </testcase>
30
- <testcase classname="getAccountCodeMap throws an error for the unmapped MANUAL scheme" name="getAccountCodeMap throws an error for the unmapped MANUAL scheme" time="0.008">
70
+ <testcase classname="getAccountCodeMap throws an error for the unmapped MANUAL scheme" name="getAccountCodeMap throws an error for the unmapped MANUAL scheme" time="0.007">
31
71
  </testcase>
32
- <testcase classname="getAccountCodeMap throws an error for the unmapped ES scheme" name="getAccountCodeMap throws an error for the unmapped ES scheme" time="0">
72
+ <testcase classname="getAccountCodeMap throws an error for the unmapped ES scheme" name="getAccountCodeMap throws an error for the unmapped ES scheme" time="0.001">
33
73
  </testcase>
34
74
  <testcase classname="getAccountCodeMap throws an error for the unmapped FC scheme" name="getAccountCodeMap throws an error for the unmapped FC scheme" time="0">
35
75
  </testcase>
36
76
  <testcase classname="getAccountCodeMap throws an error for the unmapped IMPS scheme" name="getAccountCodeMap throws an error for the unmapped IMPS scheme" time="0.001">
37
77
  </testcase>
38
- <testcase classname="getAccountCodeMap throws an error when schemeId is not provided" name="getAccountCodeMap throws an error when schemeId is not provided" time="0">
39
- </testcase>
40
- <testcase classname="getAccountCodeMap throws an error for an unknown schemeId" name="getAccountCodeMap throws an error for an unknown schemeId" time="0.001">
78
+ <testcase classname="getAccountCodeMap throws an error when schemeId is not provided" name="getAccountCodeMap throws an error when schemeId is not provided" time="0.001">
41
79
  </testcase>
42
- </testsuite>
43
- <testsuite name="getSchemeFromBatchFileName" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:30" time="0.032" tests="4">
44
- <testcase classname="getSchemeFromBatchFileName returns the first matching scheme" name="getSchemeFromBatchFileName returns the first matching scheme" time="0.001">
45
- </testcase>
46
- <testcase classname="getSchemeFromBatchFileName skips schemes without a file mask" name="getSchemeFromBatchFileName skips schemes without a file mask" time="0.002">
47
- </testcase>
48
- <testcase classname="getSchemeFromBatchFileName returns undefined when no file mask matches" name="getSchemeFromBatchFileName returns undefined when no file mask matches" time="0">
49
- </testcase>
50
- <testcase classname="getSchemeFromBatchFileName stops checking after finding a match" name="getSchemeFromBatchFileName stops checking after finding a match" time="0">
80
+ <testcase classname="getAccountCodeMap throws an error for an unknown schemeId" name="getAccountCodeMap throws an error for an unknown schemeId" time="0.003">
51
81
  </testcase>
52
82
  </testsuite>
53
- <testsuite name="getSchemeProperties" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:30" time="0.05" tests="54">
83
+ <testsuite name="getSchemeProperties" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:36" time="0.048" tests="54">
54
84
  <testcase classname="getSchemeProperties returns the properties for schemeId 1" name="getSchemeProperties returns the properties for schemeId 1" time="0.001">
55
85
  </testcase>
56
86
  <testcase classname="getSchemeProperties returns the properties for schemeId 2" name="getSchemeProperties returns the properties for schemeId 2" time="0">
@@ -61,7 +91,7 @@
61
91
  </testcase>
62
92
  <testcase classname="getSchemeProperties returns the properties for schemeId 5" name="getSchemeProperties returns the properties for schemeId 5" time="0">
63
93
  </testcase>
64
- <testcase classname="getSchemeProperties returns the properties for schemeId 6" name="getSchemeProperties returns the properties for schemeId 6" time="0">
94
+ <testcase classname="getSchemeProperties returns the properties for schemeId 6" name="getSchemeProperties returns the properties for schemeId 6" time="0.001">
65
95
  </testcase>
66
96
  <testcase classname="getSchemeProperties returns the properties for schemeId 8" name="getSchemeProperties returns the properties for schemeId 8" time="0">
67
97
  </testcase>
@@ -93,7 +123,7 @@
93
123
  </testcase>
94
124
  <testcase classname="getSchemeProperties returns the properties for schemeId 4, even if sourceSystem does not match" name="getSchemeProperties returns the properties for schemeId 4, even if sourceSystem does not match" time="0">
95
125
  </testcase>
96
- <testcase classname="getSchemeProperties returns the properties for schemeId 5, even if sourceSystem does not match" name="getSchemeProperties returns the properties for schemeId 5, even if sourceSystem does not match" time="0">
126
+ <testcase classname="getSchemeProperties returns the properties for schemeId 5, even if sourceSystem does not match" name="getSchemeProperties returns the properties for schemeId 5, even if sourceSystem does not match" time="0.001">
97
127
  </testcase>
98
128
  <testcase classname="getSchemeProperties returns the properties for schemeId 6, even if sourceSystem does not match" name="getSchemeProperties returns the properties for schemeId 6, even if sourceSystem does not match" time="0">
99
129
  </testcase>
@@ -101,7 +131,7 @@
101
131
  </testcase>
102
132
  <testcase classname="getSchemeProperties returns the properties for schemeId 9, even if sourceSystem does not match" name="getSchemeProperties returns the properties for schemeId 9, even if sourceSystem does not match" time="0">
103
133
  </testcase>
104
- <testcase classname="getSchemeProperties returns the properties for schemeId 10, even if sourceSystem does not match" name="getSchemeProperties returns the properties for schemeId 10, even if sourceSystem does not match" time="0.001">
134
+ <testcase classname="getSchemeProperties returns the properties for schemeId 10, even if sourceSystem does not match" name="getSchemeProperties returns the properties for schemeId 10, even if sourceSystem does not match" time="0">
105
135
  </testcase>
106
136
  <testcase classname="getSchemeProperties returns the properties for schemeId 11, even if sourceSystem does not match" name="getSchemeProperties returns the properties for schemeId 11, even if sourceSystem does not match" time="0">
107
137
  </testcase>
@@ -109,7 +139,7 @@
109
139
  </testcase>
110
140
  <testcase classname="getSchemeProperties returns the properties for schemeId 13, even if sourceSystem does not match" name="getSchemeProperties returns the properties for schemeId 13, even if sourceSystem does not match" time="0">
111
141
  </testcase>
112
- <testcase classname="getSchemeProperties returns the properties for schemeId 14, even if sourceSystem does not match" name="getSchemeProperties returns the properties for schemeId 14, even if sourceSystem does not match" time="0">
142
+ <testcase classname="getSchemeProperties returns the properties for schemeId 14, even if sourceSystem does not match" name="getSchemeProperties returns the properties for schemeId 14, even if sourceSystem does not match" time="0.001">
113
143
  </testcase>
114
144
  <testcase classname="getSchemeProperties returns the properties for schemeId 15, even if sourceSystem does not match" name="getSchemeProperties returns the properties for schemeId 15, even if sourceSystem does not match" time="0">
115
145
  </testcase>
@@ -129,7 +159,7 @@
129
159
  </testcase>
130
160
  <testcase classname="getSchemeProperties returns the properties for sourceSystem SITI AGRI CS SYS when schemeId is not present" name="getSchemeProperties returns the properties for sourceSystem SITI AGRI CS SYS when schemeId is not present" time="0">
131
161
  </testcase>
132
- <testcase classname="getSchemeProperties returns the properties for sourceSystem SITI AGRI SYS when schemeId is not present" name="getSchemeProperties returns the properties for sourceSystem SITI AGRI SYS when schemeId is not present" time="0">
162
+ <testcase classname="getSchemeProperties returns the properties for sourceSystem SITI AGRI SYS when schemeId is not present" name="getSchemeProperties returns the properties for sourceSystem SITI AGRI SYS when schemeId is not present" time="0.004">
133
163
  </testcase>
134
164
  <testcase classname="getSchemeProperties returns the properties for sourceSystem Injection when schemeId is not present" name="getSchemeProperties returns the properties for sourceSystem Injection when schemeId is not present" time="0">
135
165
  </testcase>
@@ -155,69 +185,29 @@
155
185
  </testcase>
156
186
  <testcase classname="getSchemeProperties throws an error for an unknown schemeId and sourceSystem" name="getSchemeProperties throws an error for an unknown schemeId and sourceSystem" time="0.003">
157
187
  </testcase>
158
- <testcase classname="getSchemeProperties uses the pillar delivery body and fund code for a manual scheme" name="getSchemeProperties uses the pillar delivery body and fund code for a manual scheme" time="0.001">
188
+ <testcase classname="getSchemeProperties uses the pillar delivery body and fund code for a manual scheme" name="getSchemeProperties uses the pillar delivery body and fund code for a manual scheme" time="0">
159
189
  </testcase>
160
190
  <testcase classname="getSchemeProperties returns the manual scheme unchanged for an unknown pillar" name="getSchemeProperties returns the manual scheme unchanged for an unknown pillar" time="0">
161
191
  </testcase>
162
192
  </testsuite>
163
- <testsuite name="getBatchSequenceFromFileName" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:30" time="0.023" tests="5">
164
- <testcase classname="getBatchSequenceFromFileName returns the sequence using the scheme sequence position" name="getBatchSequenceFromFileName returns the sequence using the scheme sequence position" time="0.001">
193
+ <testsuite name="getPillarFromSchemeId" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:36" time="0.021" tests="4">
194
+ <testcase classname="getPillarFromSchemeId returns the pillar for a matching scheme ID" name="getPillarFromSchemeId returns the pillar for a matching scheme ID" time="0">
165
195
  </testcase>
166
- <testcase classname="getBatchSequenceFromFileName returns the IMPS sequence between the final underscore and dot" name="getBatchSequenceFromFileName returns the IMPS sequence between the final underscore and dot" time="0">
196
+ <testcase classname="getPillarFromSchemeId returns unknown when the scheme ID is not found" name="getPillarFromSchemeId returns unknown when the scheme ID is not found" time="0">
167
197
  </testcase>
168
- <testcase classname="getBatchSequenceFromFileName uses the final underscore for IMPS filenames" name="getBatchSequenceFromFileName uses the final underscore for IMPS filenames" time="0">
198
+ <testcase classname="getPillarFromSchemeId returns unknown when no schemes are available" name="getPillarFromSchemeId returns unknown when no schemes are available" time="0">
169
199
  </testcase>
170
- <testcase classname="getBatchSequenceFromFileName throws when the scheme ID is unknown" name="getBatchSequenceFromFileName throws when the scheme ID is unknown" time="0.003">
171
- </testcase>
172
- <testcase classname="getBatchSequenceFromFileName throws when the scheme has no sequence position" name="getBatchSequenceFromFileName throws when the scheme has no sequence position" time="0.001">
200
+ <testcase classname="getPillarFromSchemeId gets schemes before searching for the pillar" name="getPillarFromSchemeId gets schemes before searching for the pillar" time="0">
173
201
  </testcase>
174
202
  </testsuite>
175
- <testsuite name="get scheme batch properties" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:30" time="0.027" tests="18">
176
- <testcase classname="get scheme batch properties returns the batch properties for schemeId 1" name="get scheme batch properties returns the batch properties for schemeId 1" time="0">
177
- </testcase>
178
- <testcase classname="get scheme batch properties returns the batch properties for schemeId 2" name="get scheme batch properties returns the batch properties for schemeId 2" time="0.001">
179
- </testcase>
180
- <testcase classname="get scheme batch properties returns the batch properties for schemeId 3" name="get scheme batch properties returns the batch properties for schemeId 3" time="0">
181
- </testcase>
182
- <testcase classname="get scheme batch properties returns the batch properties for schemeId 4" name="get scheme batch properties returns the batch properties for schemeId 4" time="0">
183
- </testcase>
184
- <testcase classname="get scheme batch properties returns the batch properties for schemeId 5" name="get scheme batch properties returns the batch properties for schemeId 5" time="0">
185
- </testcase>
186
- <testcase classname="get scheme batch properties returns the batch properties for schemeId 6" name="get scheme batch properties returns the batch properties for schemeId 6" time="0">
187
- </testcase>
188
- <testcase classname="get scheme batch properties returns the batch properties for schemeId 8" name="get scheme batch properties returns the batch properties for schemeId 8" time="0">
189
- </testcase>
190
- <testcase classname="get scheme batch properties returns the batch properties for schemeId 9" name="get scheme batch properties returns the batch properties for schemeId 9" time="0">
191
- </testcase>
192
- <testcase classname="get scheme batch properties returns the batch properties for schemeId 10" name="get scheme batch properties returns the batch properties for schemeId 10" time="0">
193
- </testcase>
194
- <testcase classname="get scheme batch properties returns the batch properties for schemeId 11" name="get scheme batch properties returns the batch properties for schemeId 11" time="0.001">
195
- </testcase>
196
- <testcase classname="get scheme batch properties returns the batch properties for schemeId 12" name="get scheme batch properties returns the batch properties for schemeId 12" time="0">
197
- </testcase>
198
- <testcase classname="get scheme batch properties returns the batch properties for schemeId 13" name="get scheme batch properties returns the batch properties for schemeId 13" time="0">
199
- </testcase>
200
- <testcase classname="get scheme batch properties returns the batch properties for schemeId 14" name="get scheme batch properties returns the batch properties for schemeId 14" time="0">
201
- </testcase>
202
- <testcase classname="get scheme batch properties returns the batch properties for schemeId 15" name="get scheme batch properties returns the batch properties for schemeId 15" time="0">
203
- </testcase>
204
- <testcase classname="get scheme batch properties returns the batch properties for schemeId 16" name="get scheme batch properties returns the batch properties for schemeId 16" time="0.001">
205
- </testcase>
206
- <testcase classname="get scheme batch properties returns the batch properties for schemeId 17" name="get scheme batch properties returns the batch properties for schemeId 17" time="0">
207
- </testcase>
208
- <testcase classname="get scheme batch properties returns the batch properties for schemeId 18" name="get scheme batch properties returns the batch properties for schemeId 18" time="0">
209
- </testcase>
210
- <testcase classname="get scheme batch properties returns undefined for an unknown schemeId" name="get scheme batch properties returns undefined for an unknown schemeId" time="0">
211
- </testcase>
212
- </testsuite>
213
- <testsuite name="CS account code map" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:30" time="0.04" tests="22">
214
- <testcase classname="CS account code map contains all expected mappings" name="CS account code map contains all expected mappings" time="0.002">
203
+ <testsuite name="CS account code map" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:36" time="0.033" tests="22">
204
+ <testcase classname="CS account code map contains all expected mappings" name="CS account code map contains all expected mappings" time="0.001">
215
205
  </testcase>
216
206
  <testcase classname="CS account code map contains the expected mapping for G00" name="CS account code map contains the expected mapping for G00" time="0">
217
207
  </testcase>
218
208
  <testcase classname="CS account code map contains the expected mapping for G00" name="CS account code map contains the expected mapping for G00" time="0.001">
219
209
  </testcase>
220
- <testcase classname="CS account code map contains the expected mapping for G00" name="CS account code map contains the expected mapping for G00" time="0.001">
210
+ <testcase classname="CS account code map contains the expected mapping for G00" name="CS account code map contains the expected mapping for G00" time="0">
221
211
  </testcase>
222
212
  <testcase classname="CS account code map contains the expected mapping for P02" name="CS account code map contains the expected mapping for P02" time="0">
223
213
  </testcase>
@@ -227,53 +217,49 @@
227
217
  </testcase>
228
218
  <testcase classname="CS account code map contains the expected mapping for P05" name="CS account code map contains the expected mapping for P05" time="0">
229
219
  </testcase>
230
- <testcase classname="CS account code map contains the expected mapping for P05" name="CS account code map contains the expected mapping for P05" time="0">
220
+ <testcase classname="CS account code map contains the expected mapping for P05" name="CS account code map contains the expected mapping for P05" time="0.001">
231
221
  </testcase>
232
222
  <testcase classname="CS account code map contains the expected mapping for P06" name="CS account code map contains the expected mapping for P06" time="0">
233
223
  </testcase>
234
- <testcase classname="CS account code map contains the expected mapping for P06" name="CS account code map contains the expected mapping for P06" time="0.001">
235
- </testcase>
236
- <testcase classname="CS account code map contains the expected mapping for P08" name="CS account code map contains the expected mapping for P08" time="0.001">
224
+ <testcase classname="CS account code map contains the expected mapping for P06" name="CS account code map contains the expected mapping for P06" time="0">
237
225
  </testcase>
238
- <testcase classname="CS account code map contains the expected mapping for P08" name="CS account code map contains the expected mapping for P08" time="0.001">
226
+ <testcase classname="CS account code map contains the expected mapping for P08" name="CS account code map contains the expected mapping for P08" time="0">
239
227
  </testcase>
240
- <testcase classname="CS account code map contains the expected mapping for P14" name="CS account code map contains the expected mapping for P14" time="0.001">
228
+ <testcase classname="CS account code map contains the expected mapping for P08" name="CS account code map contains the expected mapping for P08" time="0">
241
229
  </testcase>
242
230
  <testcase classname="CS account code map contains the expected mapping for P14" name="CS account code map contains the expected mapping for P14" time="0.001">
243
231
  </testcase>
244
- <testcase classname="CS account code map contains the expected mapping for P22" name="CS account code map contains the expected mapping for P22" time="0">
232
+ <testcase classname="CS account code map contains the expected mapping for P14" name="CS account code map contains the expected mapping for P14" time="0">
245
233
  </testcase>
246
234
  <testcase classname="CS account code map contains the expected mapping for P22" name="CS account code map contains the expected mapping for P22" time="0.001">
247
235
  </testcase>
248
- <testcase classname="CS account code map contains the expected mapping for P23" name="CS account code map contains the expected mapping for P23" time="0.001">
236
+ <testcase classname="CS account code map contains the expected mapping for P22" name="CS account code map contains the expected mapping for P22" time="0.001">
249
237
  </testcase>
250
238
  <testcase classname="CS account code map contains the expected mapping for P23" name="CS account code map contains the expected mapping for P23" time="0">
251
239
  </testcase>
252
- <testcase classname="CS account code map contains the expected mapping for P24" name="CS account code map contains the expected mapping for P24" time="0">
240
+ <testcase classname="CS account code map contains the expected mapping for P23" name="CS account code map contains the expected mapping for P23" time="0">
253
241
  </testcase>
254
242
  <testcase classname="CS account code map contains the expected mapping for P24" name="CS account code map contains the expected mapping for P24" time="0.001">
255
243
  </testcase>
256
244
  <testcase classname="CS account code map contains the expected mapping for P24" name="CS account code map contains the expected mapping for P24" time="0">
257
245
  </testcase>
258
- </testsuite>
259
- <testsuite name="getSourceSystemFromSchemeId" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:30" time="0.019" tests="4">
260
- <testcase classname="getSourceSystemFromSchemeId returns the source system for a matching scheme ID" name="getSourceSystemFromSchemeId returns the source system for a matching scheme ID" time="0.001">
261
- </testcase>
262
- <testcase classname="getSourceSystemFromSchemeId returns unknown when the scheme ID is not found" name="getSourceSystemFromSchemeId returns unknown when the scheme ID is not found" time="0">
246
+ <testcase classname="CS account code map contains the expected mapping for P24" name="CS account code map contains the expected mapping for P24" time="0.001">
263
247
  </testcase>
264
- <testcase classname="getSourceSystemFromSchemeId returns unknown when no schemes are available" name="getSourceSystemFromSchemeId returns unknown when no schemes are available" time="0">
248
+ </testsuite>
249
+ <testsuite name="createSplitInvoiceNumber" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:36" time="0.021" tests="2">
250
+ <testcase classname="createSplitInvoiceNumber uses the Siti Agri invoice format when the scheme is Siti Agri" name="createSplitInvoiceNumber uses the Siti Agri invoice format when the scheme is Siti Agri" time="0.001">
265
251
  </testcase>
266
- <testcase classname="getSourceSystemFromSchemeId gets schemes before searching for the source system" name="getSourceSystemFromSchemeId gets schemes before searching for the source system" time="0">
252
+ <testcase classname="createSplitInvoiceNumber uses the default invoice format when the scheme is not Siti Agri" name="createSplitInvoiceNumber uses the default invoice format when the scheme is not Siti Agri" time="0">
267
253
  </testcase>
268
254
  </testsuite>
269
- <testsuite name="getSchemes" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:30" time="0.024" tests="18">
255
+ <testsuite name="getSchemes" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:36" time="0.04" tests="18">
270
256
  <testcase classname="getSchemes returns all schemes with their IDs and names" name="getSchemes returns all schemes with their IDs and names" time="0.001">
271
257
  </testcase>
272
258
  <testcase classname="getSchemes returns the correct details for SFI" name="getSchemes returns the correct details for SFI" time="0">
273
259
  </testcase>
274
- <testcase classname="getSchemes returns the correct details for SFI_PILOT" name="getSchemes returns the correct details for SFI_PILOT" time="0">
260
+ <testcase classname="getSchemes returns the correct details for SFI_PILOT" name="getSchemes returns the correct details for SFI_PILOT" time="0.001">
275
261
  </testcase>
276
- <testcase classname="getSchemes returns the correct details for LUMP_SUMS" name="getSchemes returns the correct details for LUMP_SUMS" time="0.001">
262
+ <testcase classname="getSchemes returns the correct details for LUMP_SUMS" name="getSchemes returns the correct details for LUMP_SUMS" time="0">
277
263
  </testcase>
278
264
  <testcase classname="getSchemes returns the correct details for VET_VISITS" name="getSchemes returns the correct details for VET_VISITS" time="0">
279
265
  </testcase>
@@ -283,17 +269,17 @@
283
269
  </testcase>
284
270
  <testcase classname="getSchemes returns the correct details for MANUAL" name="getSchemes returns the correct details for MANUAL" time="0">
285
271
  </testcase>
286
- <testcase classname="getSchemes returns the correct details for ES" name="getSchemes returns the correct details for ES" time="0">
272
+ <testcase classname="getSchemes returns the correct details for ES" name="getSchemes returns the correct details for ES" time="0.001">
287
273
  </testcase>
288
- <testcase classname="getSchemes returns the correct details for FC" name="getSchemes returns the correct details for FC" time="0.001">
274
+ <testcase classname="getSchemes returns the correct details for FC" name="getSchemes returns the correct details for FC" time="0">
289
275
  </testcase>
290
- <testcase classname="getSchemes returns the correct details for IMPS" name="getSchemes returns the correct details for IMPS" time="0">
276
+ <testcase classname="getSchemes returns the correct details for IMPS" name="getSchemes returns the correct details for IMPS" time="0.001">
291
277
  </testcase>
292
278
  <testcase classname="getSchemes returns the correct details for SFI23" name="getSchemes returns the correct details for SFI23" time="0">
293
279
  </testcase>
294
- <testcase classname="getSchemes returns the correct details for DELINKED" name="getSchemes returns the correct details for DELINKED" time="0.001">
280
+ <testcase classname="getSchemes returns the correct details for DELINKED" name="getSchemes returns the correct details for DELINKED" time="0">
295
281
  </testcase>
296
- <testcase classname="getSchemes returns the correct details for SFI_EXPANDED" name="getSchemes returns the correct details for SFI_EXPANDED" time="0">
282
+ <testcase classname="getSchemes returns the correct details for SFI_EXPANDED" name="getSchemes returns the correct details for SFI_EXPANDED" time="0.001">
297
283
  </testcase>
298
284
  <testcase classname="getSchemes returns the correct details for COHT_REVENUE" name="getSchemes returns the correct details for COHT_REVENUE" time="0">
299
285
  </testcase>
@@ -301,79 +287,35 @@
301
287
  </testcase>
302
288
  <testcase classname="getSchemes returns the correct details for FPTT" name="getSchemes returns the correct details for FPTT" time="0">
303
289
  </testcase>
304
- <testcase classname="getSchemes returns the correct details for WMP" name="getSchemes returns the correct details for WMP" time="0">
305
- </testcase>
306
- </testsuite>
307
- <testsuite name="Vet Visits account code map" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:30" time="0.027" tests="1">
308
- <testcase classname="Vet Visits account code map contains the expected mapping" name="Vet Visits account code map contains the expected mapping" time="0.001">
309
- </testcase>
310
- </testsuite>
311
- <testsuite name="default account code map" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:30" time="0.029" tests="1">
312
- <testcase classname="default account code map contains the expected account code mappings" name="default account code map contains the expected account code mappings" time="0.002">
290
+ <testcase classname="getSchemes returns the correct details for WMP" name="getSchemes returns the correct details for WMP" time="0.001">
313
291
  </testcase>
314
292
  </testsuite>
315
- <testsuite name="createInvoiceNumber" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:30" time="0.026" tests="19">
316
- <testcase classname="createInvoiceNumber returns the existing invoice number for MANUAL" name="createInvoiceNumber returns the existing invoice number for MANUAL" time="0.002">
317
- </testcase>
318
- <testcase classname="createInvoiceNumber returns the existing invoice number for FC" name="createInvoiceNumber returns the existing invoice number for FC" time="0">
319
- </testcase>
320
- <testcase classname="createInvoiceNumber returns the existing invoice number for FPTT" name="createInvoiceNumber returns the existing invoice number for FPTT" time="0.001">
321
- </testcase>
322
- <testcase classname="createInvoiceNumber returns the existing invoice number for WMP" name="createInvoiceNumber returns the existing invoice number for WMP" time="0">
323
- </testcase>
324
- <testcase classname="createInvoiceNumber returns the existing invoice number for a manual source system" name="createInvoiceNumber returns the existing invoice number for a manual source system" time="0">
325
- </testcase>
326
- <testcase classname="createInvoiceNumber uses the standard scheme invoice number creator for DELINKED" name="createInvoiceNumber uses the standard scheme invoice number creator for DELINKED" time="0">
327
- </testcase>
328
- <testcase classname="createInvoiceNumber uses the standard scheme invoice number creator for SFI_EXPANDED" name="createInvoiceNumber uses the standard scheme invoice number creator for SFI_EXPANDED" time="0">
329
- </testcase>
330
- <testcase classname="createInvoiceNumber uses the standard scheme invoice number creator for COHT_REVENUE" name="createInvoiceNumber uses the standard scheme invoice number creator for COHT_REVENUE" time="0.001">
331
- </testcase>
332
- <testcase classname="createInvoiceNumber uses the standard scheme invoice number creator for COHT_CAPITAL" name="createInvoiceNumber uses the standard scheme invoice number creator for COHT_CAPITAL" time="0">
333
- </testcase>
334
- <testcase classname="createInvoiceNumber uses the SITI Agri invoice number creator for SFI" name="createInvoiceNumber uses the SITI Agri invoice number creator for SFI" time="0">
335
- </testcase>
336
- <testcase classname="createInvoiceNumber uses the SITI Agri invoice number creator for SFI_PILOT" name="createInvoiceNumber uses the SITI Agri invoice number creator for SFI_PILOT" time="0">
337
- </testcase>
338
- <testcase classname="createInvoiceNumber uses the SITI Agri invoice number creator for LUMP_SUMS" name="createInvoiceNumber uses the SITI Agri invoice number creator for LUMP_SUMS" time="0">
339
- </testcase>
340
- <testcase classname="createInvoiceNumber uses the SITI Agri invoice number creator for CS" name="createInvoiceNumber uses the SITI Agri invoice number creator for CS" time="0">
341
- </testcase>
342
- <testcase classname="createInvoiceNumber uses the SITI Agri invoice number creator for BPS" name="createInvoiceNumber uses the SITI Agri invoice number creator for BPS" time="0">
343
- </testcase>
344
- <testcase classname="createInvoiceNumber uses the SITI Agri invoice number creator for SFI23" name="createInvoiceNumber uses the SITI Agri invoice number creator for SFI23" time="0.001">
345
- </testcase>
346
- <testcase classname="createInvoiceNumber uses the ES invoice number creator" name="createInvoiceNumber uses the ES invoice number creator" time="0">
293
+ <testsuite name="SFI FRPS account code map" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.032" tests="10">
294
+ <testcase classname="SFI FRPS account code map contains the complete expected map" name="SFI FRPS account code map contains the complete expected map" time="0.001">
347
295
  </testcase>
348
- <testcase classname="createInvoiceNumber uses the IMPS invoice number creator" name="createInvoiceNumber uses the IMPS invoice number creator" time="0">
296
+ <testcase classname="SFI FRPS account code map contains default mapping 0" name="SFI FRPS account code map contains default mapping 0" time="0">
349
297
  </testcase>
350
- <testcase classname="createInvoiceNumber uses the default invoice number creator for an unmapped scheme" name="createInvoiceNumber uses the default invoice number creator for an unmapped scheme" time="0">
298
+ <testcase classname="SFI FRPS account code map contains default mapping 1" name="SFI FRPS account code map contains default mapping 1" time="0">
351
299
  </testcase>
352
- <testcase classname="createInvoiceNumber returns null when the payment request is invalid" name="createInvoiceNumber returns null when the payment request is invalid" time="0">
300
+ <testcase classname="SFI FRPS account code map contains default mapping 2" name="SFI FRPS account code map contains default mapping 2" time="0">
353
301
  </testcase>
354
- </testsuite>
355
- <testsuite name="getSourceSystems" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:30" time="0.024" tests="1">
356
- <testcase classname="getSourceSystems returns all source systems" name="getSourceSystems returns all source systems" time="0.001">
302
+ <testcase classname="SFI FRPS account code map contains default mapping 3" name="SFI FRPS account code map contains default mapping 3" time="0">
357
303
  </testcase>
358
- </testsuite>
359
- <testsuite name="getSchemeNameFromSchemeId" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:30" time="0.026" tests="4">
360
- <testcase classname="getSchemeNameFromSchemeId returns the source system for a matching scheme ID" name="getSchemeNameFromSchemeId returns the source system for a matching scheme ID" time="0.001">
304
+ <testcase classname="SFI FRPS account code map contains default mapping 4" name="SFI FRPS account code map contains default mapping 4" time="0">
361
305
  </testcase>
362
- <testcase classname="getSchemeNameFromSchemeId returns unknown when the scheme ID is not found" name="getSchemeNameFromSchemeId returns unknown when the scheme ID is not found" time="0">
306
+ <testcase classname="SFI FRPS account code map contains default mapping 5" name="SFI FRPS account code map contains default mapping 5" time="0">
363
307
  </testcase>
364
- <testcase classname="getSchemeNameFromSchemeId returns unknown when no schemes are available" name="getSchemeNameFromSchemeId returns unknown when no schemes are available" time="0">
308
+ <testcase classname="SFI FRPS account code map contains default mapping 6" name="SFI FRPS account code map contains default mapping 6" time="0">
365
309
  </testcase>
366
- <testcase classname="getSchemeNameFromSchemeId gets schemes before searching for the source system" name="getSchemeNameFromSchemeId gets schemes before searching for the source system" time="0">
310
+ <testcase classname="SFI FRPS account code map contains default mapping 7" name="SFI FRPS account code map contains default mapping 7" time="0">
367
311
  </testcase>
368
- </testsuite>
369
- <testsuite name="getSchemeIds" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:30" time="0.017" tests="1">
370
- <testcase classname="getSchemeIds returns all scheme IDs" name="getSchemeIds returns all scheme IDs" time="0.001">
312
+ <testcase classname="SFI FRPS account code map contains the P02 mapping" name="SFI FRPS account code map contains the P02 mapping" time="0">
371
313
  </testcase>
372
314
  </testsuite>
373
- <testsuite name="BPS account code map" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:30" time="0.024" tests="28">
374
- <testcase classname="BPS account code map contains all expected line codes" name="BPS account code map contains all expected line codes" time="0.001">
315
+ <testsuite name="BPS account code map" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.026" tests="28">
316
+ <testcase classname="BPS account code map contains all expected line codes" name="BPS account code map contains all expected line codes" time="0.002">
375
317
  </testcase>
376
- <testcase classname="BPS account code map returns the correct account codes for G00" name="BPS account code map returns the correct account codes for G00" time="0.001">
318
+ <testcase classname="BPS account code map returns the correct account codes for G00" name="BPS account code map returns the correct account codes for G00" time="0">
377
319
  </testcase>
378
320
  <testcase classname="BPS account code map returns the correct account codes for P01" name="BPS account code map returns the correct account codes for P01" time="0">
379
321
  </testcase>
@@ -381,7 +323,7 @@
381
323
  </testcase>
382
324
  <testcase classname="BPS account code map returns the correct account codes for P03" name="BPS account code map returns the correct account codes for P03" time="0">
383
325
  </testcase>
384
- <testcase classname="BPS account code map returns the correct account codes for P04" name="BPS account code map returns the correct account codes for P04" time="0">
326
+ <testcase classname="BPS account code map returns the correct account codes for P04" name="BPS account code map returns the correct account codes for P04" time="0.001">
385
327
  </testcase>
386
328
  <testcase classname="BPS account code map returns the correct account codes for P05" name="BPS account code map returns the correct account codes for P05" time="0">
387
329
  </testcase>
@@ -389,11 +331,11 @@
389
331
  </testcase>
390
332
  <testcase classname="BPS account code map returns the correct account codes for P07" name="BPS account code map returns the correct account codes for P07" time="0">
391
333
  </testcase>
392
- <testcase classname="BPS account code map returns the correct account codes for P08" name="BPS account code map returns the correct account codes for P08" time="0">
334
+ <testcase classname="BPS account code map returns the correct account codes for P08" name="BPS account code map returns the correct account codes for P08" time="0.001">
393
335
  </testcase>
394
336
  <testcase classname="BPS account code map returns the correct account codes for P09" name="BPS account code map returns the correct account codes for P09" time="0">
395
337
  </testcase>
396
- <testcase classname="BPS account code map returns the correct account codes for P10" name="BPS account code map returns the correct account codes for P10" time="0.001">
338
+ <testcase classname="BPS account code map returns the correct account codes for P10" name="BPS account code map returns the correct account codes for P10" time="0">
397
339
  </testcase>
398
340
  <testcase classname="BPS account code map returns the correct account codes for P11" name="BPS account code map returns the correct account codes for P11" time="0">
399
341
  </testcase>
@@ -401,13 +343,13 @@
401
343
  </testcase>
402
344
  <testcase classname="BPS account code map returns the correct account codes for P13" name="BPS account code map returns the correct account codes for P13" time="0">
403
345
  </testcase>
404
- <testcase classname="BPS account code map returns the correct account codes for P14" name="BPS account code map returns the correct account codes for P14" time="0.001">
346
+ <testcase classname="BPS account code map returns the correct account codes for P14" name="BPS account code map returns the correct account codes for P14" time="0">
405
347
  </testcase>
406
348
  <testcase classname="BPS account code map returns the correct account codes for P15" name="BPS account code map returns the correct account codes for P15" time="0">
407
349
  </testcase>
408
350
  <testcase classname="BPS account code map returns the correct account codes for P16" name="BPS account code map returns the correct account codes for P16" time="0">
409
351
  </testcase>
410
- <testcase classname="BPS account code map returns the correct account codes for P17" name="BPS account code map returns the correct account codes for P17" time="0.001">
352
+ <testcase classname="BPS account code map returns the correct account codes for P17" name="BPS account code map returns the correct account codes for P17" time="0">
411
353
  </testcase>
412
354
  <testcase classname="BPS account code map returns the correct account codes for P18" name="BPS account code map returns the correct account codes for P18" time="0">
413
355
  </testcase>
@@ -425,112 +367,174 @@
425
367
  </testcase>
426
368
  <testcase classname="BPS account code map returns the correct account codes for X03" name="BPS account code map returns the correct account codes for X03" time="0">
427
369
  </testcase>
428
- <testcase classname="BPS account code map returns the correct account codes for X04" name="BPS account code map returns the correct account codes for X04" time="0.001">
370
+ <testcase classname="BPS account code map returns the correct account codes for X04" name="BPS account code map returns the correct account codes for X04" time="0">
429
371
  </testcase>
430
372
  </testsuite>
431
- <testsuite name="getSchemeIdFromSourceSystem" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:30" time="0.026" tests="4">
432
- <testcase classname="getSchemeIdFromSourceSystem returns the schemeId for a matching source system" name="getSchemeIdFromSourceSystem returns the schemeId for a matching source system" time="0.001">
373
+ <testsuite name="isSitiAgri" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.026" tests="14">
374
+ <testcase classname="isSitiAgri returns true for SITI scheme: 1" name="isSitiAgri returns true for SITI scheme: 1" time="0.001">
433
375
  </testcase>
434
- <testcase classname="getSchemeIdFromSourceSystem returns undefined when the source system is not found" name="getSchemeIdFromSourceSystem returns undefined when the source system is not found" time="0">
376
+ <testcase classname="isSitiAgri returns true for SITI scheme: 2" name="isSitiAgri returns true for SITI scheme: 2" time="0.001">
435
377
  </testcase>
436
- <testcase classname="getSchemeIdFromSourceSystem returns undefined when no schemes are available" name="getSchemeIdFromSourceSystem returns undefined when no schemes are available" time="0">
378
+ <testcase classname="isSitiAgri returns true for SITI scheme: 3" name="isSitiAgri returns true for SITI scheme: 3" time="0">
437
379
  </testcase>
438
- <testcase classname="getSchemeIdFromSourceSystem gets schemes before searching for the source system" name="getSchemeIdFromSourceSystem gets schemes before searching for the source system" time="0">
380
+ <testcase classname="isSitiAgri returns true for SITI scheme: 5" name="isSitiAgri returns true for SITI scheme: 5" time="0">
439
381
  </testcase>
440
- </testsuite>
441
- <testsuite name="isValidSchemeId" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:30" time="0.039" tests="19">
442
- <testcase classname="isValidSchemeId returns true for valid scheme ID: 1" name="isValidSchemeId returns true for valid scheme ID: 1" time="0.001">
382
+ <testcase classname="isSitiAgri returns true for SITI scheme: 6" name="isSitiAgri returns true for SITI scheme: 6" time="0.001">
443
383
  </testcase>
444
- <testcase classname="isValidSchemeId returns true for valid scheme ID: 2" name="isValidSchemeId returns true for valid scheme ID: 2" time="0">
384
+ <testcase classname="isSitiAgri returns true for SITI scheme: 12" name="isSitiAgri returns true for SITI scheme: 12" time="0">
445
385
  </testcase>
446
- <testcase classname="isValidSchemeId returns true for valid scheme ID: 3" name="isValidSchemeId returns true for valid scheme ID: 3" time="0.001">
386
+ <testcase classname="isSitiAgri returns true for SITI scheme: 13" name="isSitiAgri returns true for SITI scheme: 13" time="0">
447
387
  </testcase>
448
- <testcase classname="isValidSchemeId returns true for valid scheme ID: 4" name="isValidSchemeId returns true for valid scheme ID: 4" time="0">
388
+ <testcase classname="isSitiAgri returns true for SITI scheme: 14" name="isSitiAgri returns true for SITI scheme: 14" time="0">
449
389
  </testcase>
450
- <testcase classname="isValidSchemeId returns true for valid scheme ID: 5" name="isValidSchemeId returns true for valid scheme ID: 5" time="0.001">
390
+ <testcase classname="isSitiAgri returns true for SITI scheme: 15" name="isSitiAgri returns true for SITI scheme: 15" time="0.001">
451
391
  </testcase>
452
- <testcase classname="isValidSchemeId returns true for valid scheme ID: 6" name="isValidSchemeId returns true for valid scheme ID: 6" time="0">
392
+ <testcase classname="isSitiAgri returns true for SITI scheme: 16" name="isSitiAgri returns true for SITI scheme: 16" time="0">
453
393
  </testcase>
454
- <testcase classname="isValidSchemeId returns true for valid scheme ID: 8" name="isValidSchemeId returns true for valid scheme ID: 8" time="0">
394
+ <testcase classname="isSitiAgri returns false for non-SITI scheme: unknown-scheme" name="isSitiAgri returns false for non-SITI scheme: unknown-scheme" time="0">
455
395
  </testcase>
456
- <testcase classname="isValidSchemeId returns true for valid scheme ID: 9" name="isValidSchemeId returns true for valid scheme ID: 9" time="0">
396
+ <testcase classname="isSitiAgri returns false for non-SITI scheme: " name="isSitiAgri returns false for non-SITI scheme: " time="0.001">
457
397
  </testcase>
458
- <testcase classname="isValidSchemeId returns true for valid scheme ID: 10" name="isValidSchemeId returns true for valid scheme ID: 10" time="0">
398
+ <testcase classname="isSitiAgri returns false for non-SITI scheme: null" name="isSitiAgri returns false for non-SITI scheme: null" time="0">
459
399
  </testcase>
460
- <testcase classname="isValidSchemeId returns true for valid scheme ID: 11" name="isValidSchemeId returns true for valid scheme ID: 11" time="0">
400
+ <testcase classname="isSitiAgri returns false for non-SITI scheme: undefined" name="isSitiAgri returns false for non-SITI scheme: undefined" time="0">
461
401
  </testcase>
462
- <testcase classname="isValidSchemeId returns true for valid scheme ID: 12" name="isValidSchemeId returns true for valid scheme ID: 12" time="0">
402
+ </testsuite>
403
+ <testsuite name="getSchemeIdFromPillar" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.022" tests="4">
404
+ <testcase classname="getSchemeIdFromPillar returns the schemeId for a matching pillar" name="getSchemeIdFromPillar returns the schemeId for a matching pillar" time="0.001">
463
405
  </testcase>
464
- <testcase classname="isValidSchemeId returns true for valid scheme ID: 13" name="isValidSchemeId returns true for valid scheme ID: 13" time="0.001">
406
+ <testcase classname="getSchemeIdFromPillar returns undefined when the pillar is not found" name="getSchemeIdFromPillar returns undefined when the pillar is not found" time="0">
465
407
  </testcase>
466
- <testcase classname="isValidSchemeId returns true for valid scheme ID: 14" name="isValidSchemeId returns true for valid scheme ID: 14" time="0">
408
+ <testcase classname="getSchemeIdFromPillar returns undefined when no schemes are available" name="getSchemeIdFromPillar returns undefined when no schemes are available" time="0">
467
409
  </testcase>
468
- <testcase classname="isValidSchemeId returns true for valid scheme ID: 15" name="isValidSchemeId returns true for valid scheme ID: 15" time="0">
410
+ <testcase classname="getSchemeIdFromPillar gets schemes before searching for the pillar" name="getSchemeIdFromPillar gets schemes before searching for the pillar" time="0">
469
411
  </testcase>
470
- <testcase classname="isValidSchemeId returns true for valid scheme ID: 16" name="isValidSchemeId returns true for valid scheme ID: 16" time="0">
412
+ </testsuite>
413
+ <testsuite name="getPillars" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.015" tests="1">
414
+ <testcase classname="getPillars returns all pillars" name="getPillars returns all pillars" time="0.001">
471
415
  </testcase>
472
- <testcase classname="isValidSchemeId returns true for valid scheme ID: 17" name="isValidSchemeId returns true for valid scheme ID: 17" time="0.001">
416
+ </testsuite>
417
+ <testsuite name="getJournalSourceFromPillar" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.017" tests="4">
418
+ <testcase classname="getJournalSourceFromPillar returns the source for non-manual schemes" name="getJournalSourceFromPillar returns the source for non-manual schemes" time="0">
473
419
  </testcase>
474
- <testcase classname="isValidSchemeId returns true for valid scheme ID: 18" name="isValidSchemeId returns true for valid scheme ID: 18" time="0">
420
+ <testcase classname="getJournalSourceFromPillar returns the manual source for a matching pillar" name="getJournalSourceFromPillar returns the manual source for a matching pillar" time="0">
475
421
  </testcase>
476
- <testcase classname="isValidSchemeId returns true for a valid scheme ID with surrounding whitespace" name="isValidSchemeId returns true for a valid scheme ID with surrounding whitespace" time="0">
422
+ <testcase classname="getJournalSourceFromPillar returns the manual source for the SFI pillar" name="getJournalSourceFromPillar returns the manual source for the SFI pillar" time="0">
477
423
  </testcase>
478
- <testcase classname="isValidSchemeId returns false for a scheme ID not included in scheme IDs" name="isValidSchemeId returns false for a scheme ID not included in scheme IDs" time="0">
424
+ <testcase classname="getJournalSourceFromPillar returns the original source when the pillar has no manual source" name="getJournalSourceFromPillar returns the original source when the pillar has no manual source" time="0.001">
479
425
  </testcase>
480
426
  </testsuite>
481
- <testsuite name="Delinked account code map" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:30" time="0.016" tests="1">
482
- <testcase classname="Delinked account code map contains the expected account code mappings" name="Delinked account code map contains the expected account code mappings" time="0.001">
427
+ <testsuite name="get scheme batch properties" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.02" tests="18">
428
+ <testcase classname="get scheme batch properties returns the batch properties for schemeId 1" name="get scheme batch properties returns the batch properties for schemeId 1" time="0.001">
429
+ </testcase>
430
+ <testcase classname="get scheme batch properties returns the batch properties for schemeId 2" name="get scheme batch properties returns the batch properties for schemeId 2" time="0">
431
+ </testcase>
432
+ <testcase classname="get scheme batch properties returns the batch properties for schemeId 3" name="get scheme batch properties returns the batch properties for schemeId 3" time="0.001">
433
+ </testcase>
434
+ <testcase classname="get scheme batch properties returns the batch properties for schemeId 4" name="get scheme batch properties returns the batch properties for schemeId 4" time="0">
435
+ </testcase>
436
+ <testcase classname="get scheme batch properties returns the batch properties for schemeId 5" name="get scheme batch properties returns the batch properties for schemeId 5" time="0">
437
+ </testcase>
438
+ <testcase classname="get scheme batch properties returns the batch properties for schemeId 6" name="get scheme batch properties returns the batch properties for schemeId 6" time="0">
439
+ </testcase>
440
+ <testcase classname="get scheme batch properties returns the batch properties for schemeId 8" name="get scheme batch properties returns the batch properties for schemeId 8" time="0">
441
+ </testcase>
442
+ <testcase classname="get scheme batch properties returns the batch properties for schemeId 9" name="get scheme batch properties returns the batch properties for schemeId 9" time="0">
443
+ </testcase>
444
+ <testcase classname="get scheme batch properties returns the batch properties for schemeId 10" name="get scheme batch properties returns the batch properties for schemeId 10" time="0">
445
+ </testcase>
446
+ <testcase classname="get scheme batch properties returns the batch properties for schemeId 11" name="get scheme batch properties returns the batch properties for schemeId 11" time="0">
447
+ </testcase>
448
+ <testcase classname="get scheme batch properties returns the batch properties for schemeId 12" name="get scheme batch properties returns the batch properties for schemeId 12" time="0">
449
+ </testcase>
450
+ <testcase classname="get scheme batch properties returns the batch properties for schemeId 13" name="get scheme batch properties returns the batch properties for schemeId 13" time="0">
451
+ </testcase>
452
+ <testcase classname="get scheme batch properties returns the batch properties for schemeId 14" name="get scheme batch properties returns the batch properties for schemeId 14" time="0">
453
+ </testcase>
454
+ <testcase classname="get scheme batch properties returns the batch properties for schemeId 15" name="get scheme batch properties returns the batch properties for schemeId 15" time="0">
455
+ </testcase>
456
+ <testcase classname="get scheme batch properties returns the batch properties for schemeId 16" name="get scheme batch properties returns the batch properties for schemeId 16" time="0">
457
+ </testcase>
458
+ <testcase classname="get scheme batch properties returns the batch properties for schemeId 17" name="get scheme batch properties returns the batch properties for schemeId 17" time="0">
459
+ </testcase>
460
+ <testcase classname="get scheme batch properties returns the batch properties for schemeId 18" name="get scheme batch properties returns the batch properties for schemeId 18" time="0.001">
461
+ </testcase>
462
+ <testcase classname="get scheme batch properties returns undefined for an unknown schemeId" name="get scheme batch properties returns undefined for an unknown schemeId" time="0">
483
463
  </testcase>
484
464
  </testsuite>
485
- <testsuite name="getSchemeIdFromPillar" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:30" time="0.018" tests="4">
486
- <testcase classname="getSchemeIdFromPillar returns the schemeId for a matching pillar" name="getSchemeIdFromPillar returns the schemeId for a matching pillar" time="0.001">
465
+ <testsuite name="COHTC account code map" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.017" tests="4">
466
+ <testcase classname="COHTC account code map returns the correct account codes for G00" name="COHTC account code map returns the correct account codes for G00" time="0">
487
467
  </testcase>
488
- <testcase classname="getSchemeIdFromPillar returns undefined when the pillar is not found" name="getSchemeIdFromPillar returns undefined when the pillar is not found" time="0.001">
468
+ <testcase classname="COHTC account code map returns the correct account codes for P02" name="COHTC account code map returns the correct account codes for P02" time="0.001">
489
469
  </testcase>
490
- <testcase classname="getSchemeIdFromPillar returns undefined when no schemes are available" name="getSchemeIdFromPillar returns undefined when no schemes are available" time="0">
470
+ <testcase classname="COHTC account code map returns the correct account codes for P24" name="COHTC account code map returns the correct account codes for P24" time="0">
491
471
  </testcase>
492
- <testcase classname="getSchemeIdFromPillar gets schemes before searching for the pillar" name="getSchemeIdFromPillar gets schemes before searching for the pillar" time="0.001">
472
+ <testcase classname="COHTC account code map contains exactly the expected mappings" name="COHTC account code map contains exactly the expected mappings" time="0.001">
493
473
  </testcase>
494
474
  </testsuite>
495
- <testsuite name="schemeProvidesAccountingValues" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:31" time="0.023" tests="18">
496
- <testcase classname="schemeProvidesAccountingValues returns the expected result for SFI" name="schemeProvidesAccountingValues returns the expected result for SFI" time="0.001">
475
+ <testsuite name="isValidSchemeId" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.02" tests="19">
476
+ <testcase classname="isValidSchemeId returns true for valid scheme ID: 1" name="isValidSchemeId returns true for valid scheme ID: 1" time="0.001">
497
477
  </testcase>
498
- <testcase classname="schemeProvidesAccountingValues returns the expected result for SFI_PILOT" name="schemeProvidesAccountingValues returns the expected result for SFI_PILOT" time="0">
478
+ <testcase classname="isValidSchemeId returns true for valid scheme ID: 2" name="isValidSchemeId returns true for valid scheme ID: 2" time="0">
499
479
  </testcase>
500
- <testcase classname="schemeProvidesAccountingValues returns the expected result for LUMP_SUMS" name="schemeProvidesAccountingValues returns the expected result for LUMP_SUMS" time="0">
480
+ <testcase classname="isValidSchemeId returns true for valid scheme ID: 3" name="isValidSchemeId returns true for valid scheme ID: 3" time="0.001">
501
481
  </testcase>
502
- <testcase classname="schemeProvidesAccountingValues returns the expected result for VET_VISITS" name="schemeProvidesAccountingValues returns the expected result for VET_VISITS" time="0">
482
+ <testcase classname="isValidSchemeId returns true for valid scheme ID: 4" name="isValidSchemeId returns true for valid scheme ID: 4" time="0">
503
483
  </testcase>
504
- <testcase classname="schemeProvidesAccountingValues returns the expected result for CS" name="schemeProvidesAccountingValues returns the expected result for CS" time="0">
484
+ <testcase classname="isValidSchemeId returns true for valid scheme ID: 5" name="isValidSchemeId returns true for valid scheme ID: 5" time="0">
505
485
  </testcase>
506
- <testcase classname="schemeProvidesAccountingValues returns the expected result for BPS" name="schemeProvidesAccountingValues returns the expected result for BPS" time="0">
486
+ <testcase classname="isValidSchemeId returns true for valid scheme ID: 6" name="isValidSchemeId returns true for valid scheme ID: 6" time="0">
507
487
  </testcase>
508
- <testcase classname="schemeProvidesAccountingValues returns the expected result for MANUAL" name="schemeProvidesAccountingValues returns the expected result for MANUAL" time="0">
488
+ <testcase classname="isValidSchemeId returns true for valid scheme ID: 8" name="isValidSchemeId returns true for valid scheme ID: 8" time="0.001">
509
489
  </testcase>
510
- <testcase classname="schemeProvidesAccountingValues returns the expected result for ES" name="schemeProvidesAccountingValues returns the expected result for ES" time="0">
490
+ <testcase classname="isValidSchemeId returns true for valid scheme ID: 9" name="isValidSchemeId returns true for valid scheme ID: 9" time="0">
511
491
  </testcase>
512
- <testcase classname="schemeProvidesAccountingValues returns the expected result for FC" name="schemeProvidesAccountingValues returns the expected result for FC" time="0">
492
+ <testcase classname="isValidSchemeId returns true for valid scheme ID: 10" name="isValidSchemeId returns true for valid scheme ID: 10" time="0">
513
493
  </testcase>
514
- <testcase classname="schemeProvidesAccountingValues returns the expected result for IMPS" name="schemeProvidesAccountingValues returns the expected result for IMPS" time="0">
494
+ <testcase classname="isValidSchemeId returns true for valid scheme ID: 11" name="isValidSchemeId returns true for valid scheme ID: 11" time="0">
515
495
  </testcase>
516
- <testcase classname="schemeProvidesAccountingValues returns the expected result for SFI23" name="schemeProvidesAccountingValues returns the expected result for SFI23" time="0.001">
496
+ <testcase classname="isValidSchemeId returns true for valid scheme ID: 12" name="isValidSchemeId returns true for valid scheme ID: 12" time="0.001">
517
497
  </testcase>
518
- <testcase classname="schemeProvidesAccountingValues returns the expected result for DELINKED" name="schemeProvidesAccountingValues returns the expected result for DELINKED" time="0">
498
+ <testcase classname="isValidSchemeId returns true for valid scheme ID: 13" name="isValidSchemeId returns true for valid scheme ID: 13" time="0">
519
499
  </testcase>
520
- <testcase classname="schemeProvidesAccountingValues returns the expected result for SFI_EXPANDED" name="schemeProvidesAccountingValues returns the expected result for SFI_EXPANDED" time="0">
500
+ <testcase classname="isValidSchemeId returns true for valid scheme ID: 14" name="isValidSchemeId returns true for valid scheme ID: 14" time="0">
521
501
  </testcase>
522
- <testcase classname="schemeProvidesAccountingValues returns the expected result for COHT_REVENUE" name="schemeProvidesAccountingValues returns the expected result for COHT_REVENUE" time="0.001">
502
+ <testcase classname="isValidSchemeId returns true for valid scheme ID: 15" name="isValidSchemeId returns true for valid scheme ID: 15" time="0">
523
503
  </testcase>
524
- <testcase classname="schemeProvidesAccountingValues returns the expected result for COHT_CAPITAL" name="schemeProvidesAccountingValues returns the expected result for COHT_CAPITAL" time="0">
504
+ <testcase classname="isValidSchemeId returns true for valid scheme ID: 16" name="isValidSchemeId returns true for valid scheme ID: 16" time="0">
525
505
  </testcase>
526
- <testcase classname="schemeProvidesAccountingValues returns the expected result for FPTT" name="schemeProvidesAccountingValues returns the expected result for FPTT" time="0">
506
+ <testcase classname="isValidSchemeId returns true for valid scheme ID: 17" name="isValidSchemeId returns true for valid scheme ID: 17" time="0">
527
507
  </testcase>
528
- <testcase classname="schemeProvidesAccountingValues returns the expected result for WMP" name="schemeProvidesAccountingValues returns the expected result for WMP" time="0.001">
508
+ <testcase classname="isValidSchemeId returns true for valid scheme ID: 18" name="isValidSchemeId returns true for valid scheme ID: 18" time="0">
529
509
  </testcase>
530
- <testcase classname="schemeProvidesAccountingValues returns false for an unknown schemeId" name="schemeProvidesAccountingValues returns false for an unknown schemeId" time="0">
510
+ <testcase classname="isValidSchemeId returns true for a valid scheme ID with surrounding whitespace" name="isValidSchemeId returns true for a valid scheme ID with surrounding whitespace" time="0">
511
+ </testcase>
512
+ <testcase classname="isValidSchemeId returns false for a scheme ID not included in scheme IDs" name="isValidSchemeId returns false for a scheme ID not included in scheme IDs" time="0">
513
+ </testcase>
514
+ </testsuite>
515
+ <testsuite name="getBatchSequenceFromFileName" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.024" tests="5">
516
+ <testcase classname="getBatchSequenceFromFileName returns the sequence using the scheme sequence position" name="getBatchSequenceFromFileName returns the sequence using the scheme sequence position" time="0.001">
517
+ </testcase>
518
+ <testcase classname="getBatchSequenceFromFileName returns the IMPS sequence between the final underscore and dot" name="getBatchSequenceFromFileName returns the IMPS sequence between the final underscore and dot" time="0.001">
519
+ </testcase>
520
+ <testcase classname="getBatchSequenceFromFileName uses the final underscore for IMPS filenames" name="getBatchSequenceFromFileName uses the final underscore for IMPS filenames" time="0">
521
+ </testcase>
522
+ <testcase classname="getBatchSequenceFromFileName throws when the scheme ID is unknown" name="getBatchSequenceFromFileName throws when the scheme ID is unknown" time="0.005">
523
+ </testcase>
524
+ <testcase classname="getBatchSequenceFromFileName throws when the scheme has no sequence position" name="getBatchSequenceFromFileName throws when the scheme has no sequence position" time="0">
531
525
  </testcase>
532
526
  </testsuite>
533
- <testsuite name="schemeDoesNotRequirePPAs" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:31" time="0.022" tests="18">
527
+ <testsuite name="getSchemeFromBatchFileName" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.018" tests="4">
528
+ <testcase classname="getSchemeFromBatchFileName returns the first matching scheme" name="getSchemeFromBatchFileName returns the first matching scheme" time="0.001">
529
+ </testcase>
530
+ <testcase classname="getSchemeFromBatchFileName skips schemes without a file mask" name="getSchemeFromBatchFileName skips schemes without a file mask" time="0.001">
531
+ </testcase>
532
+ <testcase classname="getSchemeFromBatchFileName returns undefined when no file mask matches" name="getSchemeFromBatchFileName returns undefined when no file mask matches" time="0">
533
+ </testcase>
534
+ <testcase classname="getSchemeFromBatchFileName stops checking after finding a match" name="getSchemeFromBatchFileName stops checking after finding a match" time="0">
535
+ </testcase>
536
+ </testsuite>
537
+ <testsuite name="schemeDoesNotRequirePPAs" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.021" tests="18">
534
538
  <testcase classname="schemeDoesNotRequirePPAs returns the expected result for SFI" name="schemeDoesNotRequirePPAs returns the expected result for SFI" time="0">
535
539
  </testcase>
536
540
  <testcase classname="schemeDoesNotRequirePPAs returns the expected result for SFI_PILOT" name="schemeDoesNotRequirePPAs returns the expected result for SFI_PILOT" time="0.001">
@@ -541,17 +545,17 @@
541
545
  </testcase>
542
546
  <testcase classname="schemeDoesNotRequirePPAs returns the expected result for CS" name="schemeDoesNotRequirePPAs returns the expected result for CS" time="0">
543
547
  </testcase>
544
- <testcase classname="schemeDoesNotRequirePPAs returns the expected result for BPS" name="schemeDoesNotRequirePPAs returns the expected result for BPS" time="0">
548
+ <testcase classname="schemeDoesNotRequirePPAs returns the expected result for BPS" name="schemeDoesNotRequirePPAs returns the expected result for BPS" time="0.001">
545
549
  </testcase>
546
550
  <testcase classname="schemeDoesNotRequirePPAs returns the expected result for MANUAL" name="schemeDoesNotRequirePPAs returns the expected result for MANUAL" time="0">
547
551
  </testcase>
548
552
  <testcase classname="schemeDoesNotRequirePPAs returns the expected result for ES" name="schemeDoesNotRequirePPAs returns the expected result for ES" time="0">
549
553
  </testcase>
550
- <testcase classname="schemeDoesNotRequirePPAs returns the expected result for FC" name="schemeDoesNotRequirePPAs returns the expected result for FC" time="0">
554
+ <testcase classname="schemeDoesNotRequirePPAs returns the expected result for FC" name="schemeDoesNotRequirePPAs returns the expected result for FC" time="0.001">
551
555
  </testcase>
552
556
  <testcase classname="schemeDoesNotRequirePPAs returns the expected result for IMPS" name="schemeDoesNotRequirePPAs returns the expected result for IMPS" time="0">
553
557
  </testcase>
554
- <testcase classname="schemeDoesNotRequirePPAs returns the expected result for SFI23" name="schemeDoesNotRequirePPAs returns the expected result for SFI23" time="0.001">
558
+ <testcase classname="schemeDoesNotRequirePPAs returns the expected result for SFI23" name="schemeDoesNotRequirePPAs returns the expected result for SFI23" time="0">
555
559
  </testcase>
556
560
  <testcase classname="schemeDoesNotRequirePPAs returns the expected result for DELINKED" name="schemeDoesNotRequirePPAs returns the expected result for DELINKED" time="0">
557
561
  </testcase>
@@ -561,14 +565,28 @@
561
565
  </testcase>
562
566
  <testcase classname="schemeDoesNotRequirePPAs returns the expected result for COHT_CAPITAL" name="schemeDoesNotRequirePPAs returns the expected result for COHT_CAPITAL" time="0">
563
567
  </testcase>
564
- <testcase classname="schemeDoesNotRequirePPAs returns the expected result for FPTT" name="schemeDoesNotRequirePPAs returns the expected result for FPTT" time="0.001">
568
+ <testcase classname="schemeDoesNotRequirePPAs returns the expected result for FPTT" name="schemeDoesNotRequirePPAs returns the expected result for FPTT" time="0">
565
569
  </testcase>
566
570
  <testcase classname="schemeDoesNotRequirePPAs returns the expected result for WMP" name="schemeDoesNotRequirePPAs returns the expected result for WMP" time="0">
567
571
  </testcase>
568
572
  <testcase classname="schemeDoesNotRequirePPAs returns false for an unknown schemeId" name="schemeDoesNotRequirePPAs returns false for an unknown schemeId" time="0">
569
573
  </testcase>
570
574
  </testsuite>
571
- <testsuite name="getReportingDataFilter" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:31" time="0.019" tests="5">
575
+ <testsuite name="isFRPS" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.018" tests="6">
576
+ <testcase classname="isFRPS returns true for FRPS scheme: 17" name="isFRPS returns true for FRPS scheme: 17" time="0.001">
577
+ </testcase>
578
+ <testcase classname="isFRPS returns true for FRPS scheme: 18" name="isFRPS returns true for FRPS scheme: 18" time="0">
579
+ </testcase>
580
+ <testcase classname="isFRPS returns false for non-FRPS scheme: unknown-scheme" name="isFRPS returns false for non-FRPS scheme: unknown-scheme" time="0">
581
+ </testcase>
582
+ <testcase classname="isFRPS returns false for non-FRPS scheme: " name="isFRPS returns false for non-FRPS scheme: " time="0">
583
+ </testcase>
584
+ <testcase classname="isFRPS returns false for non-FRPS scheme: null" name="isFRPS returns false for non-FRPS scheme: null" time="0">
585
+ </testcase>
586
+ <testcase classname="isFRPS returns false for non-FRPS scheme: undefined" name="isFRPS returns false for non-FRPS scheme: undefined" time="0">
587
+ </testcase>
588
+ </testsuite>
589
+ <testsuite name="getReportingDataFilter" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.017" tests="5">
572
590
  <testcase classname="getReportingDataFilter returns marketing year for BPS" name="getReportingDataFilter returns marketing year for BPS" time="0.001">
573
591
  </testcase>
574
592
  <testcase classname="getReportingDataFilter returns marketing year for DELINKED" name="getReportingDataFilter returns marketing year for DELINKED" time="0">
@@ -577,151 +595,157 @@
577
595
  </testcase>
578
596
  <testcase classname="getReportingDataFilter returns the FRPS filter including correlation ID" name="getReportingDataFilter returns the FRPS filter including correlation ID" time="0">
579
597
  </testcase>
580
- <testcase classname="getReportingDataFilter returns the default filter for non-FRPS schemes" name="getReportingDataFilter returns the default filter for non-FRPS schemes" time="0.001">
598
+ <testcase classname="getReportingDataFilter returns the default filter for non-FRPS schemes" name="getReportingDataFilter returns the default filter for non-FRPS schemes" time="0">
581
599
  </testcase>
582
600
  </testsuite>
583
- <testsuite name="Lump Sums account code map" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:31" time="0.018" tests="1">
584
- <testcase classname="Lump Sums account code map contains the expected mapping" name="Lump Sums account code map contains the expected mapping" time="0.001">
601
+ <testsuite name="schemeProvidesAccountingValues" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.019" tests="18">
602
+ <testcase classname="schemeProvidesAccountingValues returns the expected result for SFI" name="schemeProvidesAccountingValues returns the expected result for SFI" time="0">
585
603
  </testcase>
586
- </testsuite>
587
- <testsuite name="createESInvoiceNumber" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:31" time="0.016" tests="1">
588
- <testcase classname="createESInvoiceNumber creates an ES invoice number" name="createESInvoiceNumber creates an ES invoice number" time="0">
604
+ <testcase classname="schemeProvidesAccountingValues returns the expected result for SFI_PILOT" name="schemeProvidesAccountingValues returns the expected result for SFI_PILOT" time="0">
589
605
  </testcase>
590
- </testsuite>
591
- <testsuite name="getSchemeNames" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:31" time="0.018" tests="1">
592
- <testcase classname="getSchemeNames returns all scheme names" name="getSchemeNames returns all scheme names" time="0.001">
606
+ <testcase classname="schemeProvidesAccountingValues returns the expected result for LUMP_SUMS" name="schemeProvidesAccountingValues returns the expected result for LUMP_SUMS" time="0">
593
607
  </testcase>
594
- </testsuite>
595
- <testsuite name="isSitiAgri" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:31" time="0.022" tests="14">
596
- <testcase classname="isSitiAgri returns true for SITI scheme: 1" name="isSitiAgri returns true for SITI scheme: 1" time="0">
608
+ <testcase classname="schemeProvidesAccountingValues returns the expected result for VET_VISITS" name="schemeProvidesAccountingValues returns the expected result for VET_VISITS" time="0">
597
609
  </testcase>
598
- <testcase classname="isSitiAgri returns true for SITI scheme: 2" name="isSitiAgri returns true for SITI scheme: 2" time="0.001">
610
+ <testcase classname="schemeProvidesAccountingValues returns the expected result for CS" name="schemeProvidesAccountingValues returns the expected result for CS" time="0">
599
611
  </testcase>
600
- <testcase classname="isSitiAgri returns true for SITI scheme: 3" name="isSitiAgri returns true for SITI scheme: 3" time="0">
612
+ <testcase classname="schemeProvidesAccountingValues returns the expected result for BPS" name="schemeProvidesAccountingValues returns the expected result for BPS" time="0">
601
613
  </testcase>
602
- <testcase classname="isSitiAgri returns true for SITI scheme: 5" name="isSitiAgri returns true for SITI scheme: 5" time="0">
614
+ <testcase classname="schemeProvidesAccountingValues returns the expected result for MANUAL" name="schemeProvidesAccountingValues returns the expected result for MANUAL" time="0">
603
615
  </testcase>
604
- <testcase classname="isSitiAgri returns true for SITI scheme: 6" name="isSitiAgri returns true for SITI scheme: 6" time="0.001">
616
+ <testcase classname="schemeProvidesAccountingValues returns the expected result for ES" name="schemeProvidesAccountingValues returns the expected result for ES" time="0">
605
617
  </testcase>
606
- <testcase classname="isSitiAgri returns true for SITI scheme: 12" name="isSitiAgri returns true for SITI scheme: 12" time="0">
618
+ <testcase classname="schemeProvidesAccountingValues returns the expected result for FC" name="schemeProvidesAccountingValues returns the expected result for FC" time="0">
607
619
  </testcase>
608
- <testcase classname="isSitiAgri returns true for SITI scheme: 13" name="isSitiAgri returns true for SITI scheme: 13" time="0">
620
+ <testcase classname="schemeProvidesAccountingValues returns the expected result for IMPS" name="schemeProvidesAccountingValues returns the expected result for IMPS" time="0">
609
621
  </testcase>
610
- <testcase classname="isSitiAgri returns true for SITI scheme: 14" name="isSitiAgri returns true for SITI scheme: 14" time="0">
622
+ <testcase classname="schemeProvidesAccountingValues returns the expected result for SFI23" name="schemeProvidesAccountingValues returns the expected result for SFI23" time="0">
611
623
  </testcase>
612
- <testcase classname="isSitiAgri returns true for SITI scheme: 15" name="isSitiAgri returns true for SITI scheme: 15" time="0">
624
+ <testcase classname="schemeProvidesAccountingValues returns the expected result for DELINKED" name="schemeProvidesAccountingValues returns the expected result for DELINKED" time="0">
613
625
  </testcase>
614
- <testcase classname="isSitiAgri returns true for SITI scheme: 16" name="isSitiAgri returns true for SITI scheme: 16" time="0">
626
+ <testcase classname="schemeProvidesAccountingValues returns the expected result for SFI_EXPANDED" name="schemeProvidesAccountingValues returns the expected result for SFI_EXPANDED" time="0">
615
627
  </testcase>
616
- <testcase classname="isSitiAgri returns false for non-SITI scheme: unknown-scheme" name="isSitiAgri returns false for non-SITI scheme: unknown-scheme" time="0">
628
+ <testcase classname="schemeProvidesAccountingValues returns the expected result for COHT_REVENUE" name="schemeProvidesAccountingValues returns the expected result for COHT_REVENUE" time="0">
617
629
  </testcase>
618
- <testcase classname="isSitiAgri returns false for non-SITI scheme: " name="isSitiAgri returns false for non-SITI scheme: " time="0">
630
+ <testcase classname="schemeProvidesAccountingValues returns the expected result for COHT_CAPITAL" name="schemeProvidesAccountingValues returns the expected result for COHT_CAPITAL" time="0">
619
631
  </testcase>
620
- <testcase classname="isSitiAgri returns false for non-SITI scheme: null" name="isSitiAgri returns false for non-SITI scheme: null" time="0">
632
+ <testcase classname="schemeProvidesAccountingValues returns the expected result for FPTT" name="schemeProvidesAccountingValues returns the expected result for FPTT" time="0">
621
633
  </testcase>
622
- <testcase classname="isSitiAgri returns false for non-SITI scheme: undefined" name="isSitiAgri returns false for non-SITI scheme: undefined" time="0">
634
+ <testcase classname="schemeProvidesAccountingValues returns the expected result for WMP" name="schemeProvidesAccountingValues returns the expected result for WMP" time="0">
635
+ </testcase>
636
+ <testcase classname="schemeProvidesAccountingValues returns false for an unknown schemeId" name="schemeProvidesAccountingValues returns false for an unknown schemeId" time="0">
623
637
  </testcase>
624
638
  </testsuite>
625
- <testsuite name="SFI FRPS account code map" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:31" time="0.022" tests="10">
626
- <testcase classname="SFI FRPS account code map contains the complete expected map" name="SFI FRPS account code map contains the complete expected map" time="0.001">
639
+ <testsuite name="getSourceSystems" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.016" tests="1">
640
+ <testcase classname="getSourceSystems returns all source systems" name="getSourceSystems returns all source systems" time="0.001">
627
641
  </testcase>
628
- <testcase classname="SFI FRPS account code map contains default mapping 0" name="SFI FRPS account code map contains default mapping 0" time="0.001">
642
+ </testsuite>
643
+ <testsuite name="getSchemeNames" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.015" tests="1">
644
+ <testcase classname="getSchemeNames returns all scheme names" name="getSchemeNames returns all scheme names" time="0.001">
629
645
  </testcase>
630
- <testcase classname="SFI FRPS account code map contains default mapping 1" name="SFI FRPS account code map contains default mapping 1" time="0">
646
+ </testsuite>
647
+ <testsuite name="getSchemeNameFromSchemeId" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.017" tests="4">
648
+ <testcase classname="getSchemeNameFromSchemeId returns the source system for a matching scheme ID" name="getSchemeNameFromSchemeId returns the source system for a matching scheme ID" time="0">
631
649
  </testcase>
632
- <testcase classname="SFI FRPS account code map contains default mapping 2" name="SFI FRPS account code map contains default mapping 2" time="0">
650
+ <testcase classname="getSchemeNameFromSchemeId returns unknown when the scheme ID is not found" name="getSchemeNameFromSchemeId returns unknown when the scheme ID is not found" time="0">
633
651
  </testcase>
634
- <testcase classname="SFI FRPS account code map contains default mapping 3" name="SFI FRPS account code map contains default mapping 3" time="0.001">
652
+ <testcase classname="getSchemeNameFromSchemeId returns unknown when no schemes are available" name="getSchemeNameFromSchemeId returns unknown when no schemes are available" time="0">
635
653
  </testcase>
636
- <testcase classname="SFI FRPS account code map contains default mapping 4" name="SFI FRPS account code map contains default mapping 4" time="0">
654
+ <testcase classname="getSchemeNameFromSchemeId gets schemes before searching for the source system" name="getSchemeNameFromSchemeId gets schemes before searching for the source system" time="0">
637
655
  </testcase>
638
- <testcase classname="SFI FRPS account code map contains default mapping 5" name="SFI FRPS account code map contains default mapping 5" time="0">
656
+ </testsuite>
657
+ <testsuite name="Delinked account code map" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.017" tests="1">
658
+ <testcase classname="Delinked account code map contains the expected account code mappings" name="Delinked account code map contains the expected account code mappings" time="0.001">
639
659
  </testcase>
640
- <testcase classname="SFI FRPS account code map contains default mapping 6" name="SFI FRPS account code map contains default mapping 6" time="0.001">
660
+ </testsuite>
661
+ <testsuite name="createDefaultInvoiceNumber" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.018" tests="2">
662
+ <testcase classname="createDefaultInvoiceNumber creates an invoice number with a padded payment request number" name="createDefaultInvoiceNumber creates an invoice number with a padded payment request number" time="0">
641
663
  </testcase>
642
- <testcase classname="SFI FRPS account code map contains default mapping 7" name="SFI FRPS account code map contains default mapping 7" time="0">
664
+ <testcase classname="createDefaultInvoiceNumber returns null when required values are missing" name="createDefaultInvoiceNumber returns null when required values are missing" time="0">
643
665
  </testcase>
644
- <testcase classname="SFI FRPS account code map contains the P02 mapping" name="SFI FRPS account code map contains the P02 mapping" time="0">
666
+ </testsuite>
667
+ <testsuite name="getSchemeIds" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.017" tests="1">
668
+ <testcase classname="getSchemeIds returns all scheme IDs" name="getSchemeIds returns all scheme IDs" time="0.001">
645
669
  </testcase>
646
670
  </testsuite>
647
- <testsuite name="COHTC account code map" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:31" time="0.018" tests="4">
648
- <testcase classname="COHTC account code map returns the correct account codes for G00" name="COHTC account code map returns the correct account codes for G00" time="0">
671
+ <testsuite name="getSchemeIdFromSourceSystem" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.019" tests="4">
672
+ <testcase classname="getSchemeIdFromSourceSystem returns the schemeId for a matching source system" name="getSchemeIdFromSourceSystem returns the schemeId for a matching source system" time="0">
649
673
  </testcase>
650
- <testcase classname="COHTC account code map returns the correct account codes for P02" name="COHTC account code map returns the correct account codes for P02" time="0">
674
+ <testcase classname="getSchemeIdFromSourceSystem returns undefined when the source system is not found" name="getSchemeIdFromSourceSystem returns undefined when the source system is not found" time="0">
651
675
  </testcase>
652
- <testcase classname="COHTC account code map returns the correct account codes for P24" name="COHTC account code map returns the correct account codes for P24" time="0">
676
+ <testcase classname="getSchemeIdFromSourceSystem returns undefined when no schemes are available" name="getSchemeIdFromSourceSystem returns undefined when no schemes are available" time="0">
653
677
  </testcase>
654
- <testcase classname="COHTC account code map contains exactly the expected mappings" name="COHTC account code map contains exactly the expected mappings" time="0">
678
+ <testcase classname="getSchemeIdFromSourceSystem gets schemes before searching for the source system" name="getSchemeIdFromSourceSystem gets schemes before searching for the source system" time="0.001">
655
679
  </testcase>
656
680
  </testsuite>
657
- <testsuite name="createDefaultInvoiceNumber" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:31" time="0.018" tests="3">
658
- <testcase classname="createDefaultInvoiceNumber inserts splitId INV1234 into invoice number A" name="createDefaultInvoiceNumber inserts splitId INV1234 into invoice number A" time="0">
681
+ <testsuite name="createIMPSInvoiceNumber" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.016" tests="3">
682
+ <testcase classname="createIMPSInvoiceNumber adds the trader to an invoice number" name="createIMPSInvoiceNumber adds the trader to an invoice number" time="0.001">
659
683
  </testcase>
660
- <testcase classname="createDefaultInvoiceNumber inserts splitId 123456789 into invoice number B" name="createDefaultInvoiceNumber inserts splitId 123456789 into invoice number B" time="0">
684
+ <testcase classname="createIMPSInvoiceNumber returns the invoice number when it already contains the trader" name="createIMPSInvoiceNumber returns the invoice number when it already contains the trader" time="0">
661
685
  </testcase>
662
- <testcase classname="createDefaultInvoiceNumber inserts splitId ABC-1234 into invoice number 9" name="createDefaultInvoiceNumber inserts splitId ABC-1234 into invoice number 9" time="0">
686
+ <testcase classname="createIMPSInvoiceNumber returns null when the invoice number has no separator" name="createIMPSInvoiceNumber returns null when the invoice number has no separator" time="0">
663
687
  </testcase>
664
688
  </testsuite>
665
- <testsuite name="createStandardSchemeInvoiceNumber" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:31" time="0.019" tests="3">
666
- <testcase classname="createStandardSchemeInvoiceNumber creates a standard scheme invoice number" name="createStandardSchemeInvoiceNumber creates a standard scheme invoice number" time="0.001">
667
- </testcase>
668
- <testcase classname="createStandardSchemeInvoiceNumber returns null when the invoice number is too short" name="createStandardSchemeInvoiceNumber returns null when the invoice number is too short" time="0">
689
+ <testsuite name="getSourceSystemFromSchemeId" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.016" tests="4">
690
+ <testcase classname="getSourceSystemFromSchemeId returns the source system for a matching scheme ID" name="getSourceSystemFromSchemeId returns the source system for a matching scheme ID" time="0">
669
691
  </testcase>
670
- <testcase classname="createStandardSchemeInvoiceNumber returns null when required values are missing" name="createStandardSchemeInvoiceNumber returns null when required values are missing" time="0">
671
- </testcase>
672
- </testsuite>
673
- <testsuite name="isFRPS" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:31" time="0.019" tests="6">
674
- <testcase classname="isFRPS returns true for FRPS scheme: 17" name="isFRPS returns true for FRPS scheme: 17" time="0">
692
+ <testcase classname="getSourceSystemFromSchemeId returns unknown when the scheme ID is not found" name="getSourceSystemFromSchemeId returns unknown when the scheme ID is not found" time="0">
675
693
  </testcase>
676
- <testcase classname="isFRPS returns true for FRPS scheme: 18" name="isFRPS returns true for FRPS scheme: 18" time="0">
694
+ <testcase classname="getSourceSystemFromSchemeId returns unknown when no schemes are available" name="getSourceSystemFromSchemeId returns unknown when no schemes are available" time="0">
677
695
  </testcase>
678
- <testcase classname="isFRPS returns false for non-FRPS scheme: unknown-scheme" name="isFRPS returns false for non-FRPS scheme: unknown-scheme" time="0">
696
+ <testcase classname="getSourceSystemFromSchemeId gets schemes before searching for the source system" name="getSourceSystemFromSchemeId gets schemes before searching for the source system" time="0">
679
697
  </testcase>
680
- <testcase classname="isFRPS returns false for non-FRPS scheme: " name="isFRPS returns false for non-FRPS scheme: " time="0">
698
+ </testsuite>
699
+ <testsuite name="Vet Visits account code map" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.015" tests="1">
700
+ <testcase classname="Vet Visits account code map contains the expected mapping" name="Vet Visits account code map contains the expected mapping" time="0.001">
681
701
  </testcase>
682
- <testcase classname="isFRPS returns false for non-FRPS scheme: null" name="isFRPS returns false for non-FRPS scheme: null" time="0">
702
+ </testsuite>
703
+ <testsuite name="Lump Sums account code map" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.015" tests="1">
704
+ <testcase classname="Lump Sums account code map contains the expected mapping" name="Lump Sums account code map contains the expected mapping" time="0.001">
683
705
  </testcase>
684
- <testcase classname="isFRPS returns false for non-FRPS scheme: undefined" name="isFRPS returns false for non-FRPS scheme: undefined" time="0">
706
+ </testsuite>
707
+ <testsuite name="default account code map" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.018" tests="1">
708
+ <testcase classname="default account code map contains the expected account code mappings" name="default account code map contains the expected account code mappings" time="0.001">
685
709
  </testcase>
686
710
  </testsuite>
687
- <testsuite name="createSitiAgriInvoiceNumber" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:31" time="0.019" tests="3">
688
- <testcase classname="createSitiAgriInvoiceNumber creates a SITI Agri invoice number" name="createSitiAgriInvoiceNumber creates a SITI Agri invoice number" time="0.001">
711
+ <testsuite name="createDefaultInvoiceNumber" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.018" tests="3">
712
+ <testcase classname="createDefaultInvoiceNumber inserts splitId INV1234 into invoice number A" name="createDefaultInvoiceNumber inserts splitId INV1234 into invoice number A" time="0.001">
689
713
  </testcase>
690
- <testcase classname="createSitiAgriInvoiceNumber returns null when the invoice number is too short" name="createSitiAgriInvoiceNumber returns null when the invoice number is too short" time="0.001">
714
+ <testcase classname="createDefaultInvoiceNumber inserts splitId 123456789 into invoice number B" name="createDefaultInvoiceNumber inserts splitId 123456789 into invoice number B" time="0">
691
715
  </testcase>
692
- <testcase classname="createSitiAgriInvoiceNumber returns null when required values are missing" name="createSitiAgriInvoiceNumber returns null when required values are missing" time="0">
716
+ <testcase classname="createDefaultInvoiceNumber inserts splitId ABC-1234 into invoice number 9" name="createDefaultInvoiceNumber inserts splitId ABC-1234 into invoice number 9" time="0.001">
693
717
  </testcase>
694
718
  </testsuite>
695
- <testsuite name="createSplitInvoiceNumber" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:31" time="0.022" tests="2">
696
- <testcase classname="createSplitInvoiceNumber uses the Siti Agri invoice format when the scheme is Siti Agri" name="createSplitInvoiceNumber uses the Siti Agri invoice format when the scheme is Siti Agri" time="0.001">
719
+ <testsuite name="createStandardSchemeInvoiceNumber" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.022" tests="3">
720
+ <testcase classname="createStandardSchemeInvoiceNumber creates a standard scheme invoice number" name="createStandardSchemeInvoiceNumber creates a standard scheme invoice number" time="0.001">
697
721
  </testcase>
698
- <testcase classname="createSplitInvoiceNumber uses the default invoice format when the scheme is not Siti Agri" name="createSplitInvoiceNumber uses the default invoice format when the scheme is not Siti Agri" time="0">
722
+ <testcase classname="createStandardSchemeInvoiceNumber returns null when the invoice number is too short" name="createStandardSchemeInvoiceNumber returns null when the invoice number is too short" time="0.001">
723
+ </testcase>
724
+ <testcase classname="createStandardSchemeInvoiceNumber returns null when required values are missing" name="createStandardSchemeInvoiceNumber returns null when required values are missing" time="0">
699
725
  </testcase>
700
726
  </testsuite>
701
- <testsuite name="createSitiAgriInvoiceNumber" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:31" time="0.019" tests="3">
702
- <testcase classname="createSitiAgriInvoiceNumber inserts splitId 1234567890123 into invoice number A" name="createSitiAgriInvoiceNumber inserts splitId 1234567890123 into invoice number A" time="0.001">
727
+ <testsuite name="createSitiAgriInvoiceNumber" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.022" tests="3">
728
+ <testcase classname="createSitiAgriInvoiceNumber inserts splitId 1234567890123 into invoice number A" name="createSitiAgriInvoiceNumber inserts splitId 1234567890123 into invoice number A" time="0">
703
729
  </testcase>
704
- <testcase classname="createSitiAgriInvoiceNumber inserts splitId ABCDEFGH12345 into invoice number 9" name="createSitiAgriInvoiceNumber inserts splitId ABCDEFGH12345 into invoice number 9" time="0.001">
730
+ <testcase classname="createSitiAgriInvoiceNumber inserts splitId ABCDEFGH12345 into invoice number 9" name="createSitiAgriInvoiceNumber inserts splitId ABCDEFGH12345 into invoice number 9" time="0">
705
731
  </testcase>
706
732
  <testcase classname="createSitiAgriInvoiceNumber inserts splitId SITIAGRI000123 into invoice number X" name="createSitiAgriInvoiceNumber inserts splitId SITIAGRI000123 into invoice number X" time="0">
707
733
  </testcase>
708
734
  </testsuite>
709
- <testsuite name="useInvoiceNumberAsIs" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:31" time="0.017" tests="1">
735
+ <testsuite name="useInvoiceNumberAsIs" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.015" tests="1">
710
736
  <testcase classname="useInvoiceNumberAsIs returns the invoice number unchanged" name="useInvoiceNumberAsIs returns the invoice number unchanged" time="0.001">
711
737
  </testcase>
712
738
  </testsuite>
713
- <testsuite name="createIMPSInvoiceNumber" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:31" time="0.017" tests="3">
714
- <testcase classname="createIMPSInvoiceNumber adds the trader to an invoice number" name="createIMPSInvoiceNumber adds the trader to an invoice number" time="0">
739
+ <testsuite name="createSitiAgriInvoiceNumber" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.016" tests="3">
740
+ <testcase classname="createSitiAgriInvoiceNumber creates a SITI Agri invoice number" name="createSitiAgriInvoiceNumber creates a SITI Agri invoice number" time="0">
715
741
  </testcase>
716
- <testcase classname="createIMPSInvoiceNumber returns the invoice number when it already contains the trader" name="createIMPSInvoiceNumber returns the invoice number when it already contains the trader" time="0">
742
+ <testcase classname="createSitiAgriInvoiceNumber returns null when the invoice number is too short" name="createSitiAgriInvoiceNumber returns null when the invoice number is too short" time="0.001">
717
743
  </testcase>
718
- <testcase classname="createIMPSInvoiceNumber returns null when the invoice number has no separator" name="createIMPSInvoiceNumber returns null when the invoice number has no separator" time="0">
744
+ <testcase classname="createSitiAgriInvoiceNumber returns null when required values are missing" name="createSitiAgriInvoiceNumber returns null when required values are missing" time="0">
719
745
  </testcase>
720
746
  </testsuite>
721
- <testsuite name="createDefaultInvoiceNumber" errors="0" failures="0" skipped="0" timestamp="2026-09-08T11:28:31" time="0.017" tests="2">
722
- <testcase classname="createDefaultInvoiceNumber creates an invoice number with a padded payment request number" name="createDefaultInvoiceNumber creates an invoice number with a padded payment request number" time="0.001">
723
- </testcase>
724
- <testcase classname="createDefaultInvoiceNumber returns null when required values are missing" name="createDefaultInvoiceNumber returns null when required values are missing" time="0">
747
+ <testsuite name="createESInvoiceNumber" errors="0" failures="0" skipped="0" timestamp="2026-09-14T13:29:37" time="0.015" tests="1">
748
+ <testcase classname="createESInvoiceNumber creates an ES invoice number" name="createESInvoiceNumber creates an ES invoice number" time="0.001">
725
749
  </testcase>
726
750
  </testsuite>
727
751
  </testsuites>