ffc-pay-schemes 1.1.2 → 1.1.4

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