@@ -2156,19 +2156,20 @@ class PurposeApiServiceSpec extends AnyWordSpecLike with SpecHelper with Scalate
2156
2156
implicit val context : Seq [(String , String )] =
2157
2157
Seq (" bearer" -> bearerToken, USER_ROLES -> " admin" , ORGANIZATION_ID_CLAIM -> consumerId.toString)
2158
2158
2159
- val version2_1 = SpecData .purposeVersion.copy(id = UUID .randomUUID(), state = Active , dailyCalls = 1000 )
2159
+ val version2_1 = SpecData .purposeVersion.copy(id = UUID .randomUUID(), state = Active , dailyCalls = 1002 )
2160
2160
val purpose2 = SpecData .purpose.copy(eserviceId = eserviceId, consumerId = consumerId, versions = Seq (version2_1))
2161
2161
2162
2162
val path : String = " /here/there/foo/bar.pdf"
2163
2163
val document : PersistentPurposeVersionDocument =
2164
2164
PersistentPurposeVersionDocument (documentId, " application/pdf" , path, SpecData .timestamp)
2165
2165
2166
- val version1_1 = SpecData .purposeVersion.copy(id = purposeVersionId1, state = Active )
2166
+ val version1_1 = SpecData .purposeVersion.copy(id = purposeVersionId1, state = Active , dailyCalls = 1000 )
2167
2167
val version1_2 = SpecData .purposeVersion.copy(
2168
2168
id = purposeVersionId2,
2169
2169
state = WaitingForApproval ,
2170
2170
riskAnalysis = Some (document),
2171
- firstActivationAt = Some (SpecData .timestamp)
2171
+ firstActivationAt = Some (SpecData .timestamp),
2172
+ dailyCalls = 1001
2172
2173
)
2173
2174
2174
2175
val purpose =
@@ -2180,15 +2181,15 @@ class PurposeApiServiceSpec extends AnyWordSpecLike with SpecHelper with Scalate
2180
2181
)
2181
2182
2182
2183
val purposes = Seq (purpose, purpose2)
2183
- val seed : PurposeVersionSeed = PurposeVersionSeed (dailyCalls = 1000 )
2184
+ val seed : PurposeVersionSeed = PurposeVersionSeed (dailyCalls = 2000 )
2184
2185
2185
2186
val purposeVersion = PersistentPurposeVersion (
2186
2187
id = purposeVersionId3,
2187
2188
state = Active ,
2188
2189
createdAt = SpecData .timestamp,
2189
2190
updatedAt = None ,
2190
2191
expectedApprovalDate = None ,
2191
- dailyCalls = seed.dailyCalls ,
2192
+ dailyCalls = 2000 ,
2192
2193
riskAnalysis = Some (document),
2193
2194
firstActivationAt = Some (SpecData .timestamp),
2194
2195
suspendedAt = None
@@ -2216,7 +2217,8 @@ class PurposeApiServiceSpec extends AnyWordSpecLike with SpecHelper with Scalate
2216
2217
riskAnalysis = Some (
2217
2218
PurposeManagementDependency .PurposeVersionDocument (documentId, " application/pdf" , path, SpecData .timestamp)
2218
2219
),
2219
- firstActivationAt = Some (SpecData .timestamp)
2220
+ firstActivationAt = Some (SpecData .timestamp),
2221
+ dailyCalls = 2000
2220
2222
)
2221
2223
2222
2224
mockVersionFirstActivation(purposeId, purposeVersionId3, eService.producerId, purpose.consumerId, updatedVersion)
@@ -2248,7 +2250,7 @@ class PurposeApiServiceSpec extends AnyWordSpecLike with SpecHelper with Scalate
2248
2250
implicit val context : Seq [(String , String )] =
2249
2251
Seq (" bearer" -> bearerToken, USER_ROLES -> " admin" , ORGANIZATION_ID_CLAIM -> consumerId.toString)
2250
2252
2251
- val version2_1 = SpecData .purposeVersion.copy(id = UUID .randomUUID(), state = Active , dailyCalls = 1000 )
2253
+ val version2_1 = SpecData .purposeVersion.copy(id = UUID .randomUUID(), state = Active , dailyCalls = 1002 )
2252
2254
val purpose2 = SpecData .purpose.copy(eserviceId = eserviceId, consumerId = consumerId, versions = Seq (version2_1))
2253
2255
2254
2256
val path : String = " /here/there/foo/bar.pdf"
@@ -2260,7 +2262,8 @@ class PurposeApiServiceSpec extends AnyWordSpecLike with SpecHelper with Scalate
2260
2262
id = purposeVersionId2,
2261
2263
state = WaitingForApproval ,
2262
2264
riskAnalysis = Some (document),
2263
- firstActivationAt = Some (SpecData .timestamp)
2265
+ firstActivationAt = Some (SpecData .timestamp),
2266
+ dailyCalls = 1001
2264
2267
)
2265
2268
2266
2269
val purpose =
@@ -2272,15 +2275,15 @@ class PurposeApiServiceSpec extends AnyWordSpecLike with SpecHelper with Scalate
2272
2275
)
2273
2276
2274
2277
val purposes = Seq (purpose, purpose2)
2275
- val seed : PurposeVersionSeed = PurposeVersionSeed (dailyCalls = 1000 )
2278
+ val seed : PurposeVersionSeed = PurposeVersionSeed (dailyCalls = 2000 )
2276
2279
2277
2280
val purposeVersion = PersistentPurposeVersion (
2278
2281
id = purposeVersionId3,
2279
2282
state = WaitingForApproval ,
2280
2283
createdAt = SpecData .timestamp,
2281
2284
updatedAt = None ,
2282
2285
expectedApprovalDate = None ,
2283
- dailyCalls = seed.dailyCalls ,
2286
+ dailyCalls = 2000 ,
2284
2287
riskAnalysis = None ,
2285
2288
firstActivationAt = Some (SpecData .timestamp),
2286
2289
suspendedAt = None
@@ -2306,7 +2309,8 @@ class PurposeApiServiceSpec extends AnyWordSpecLike with SpecHelper with Scalate
2306
2309
id = purposeVersionId3,
2307
2310
state = PurposeManagementDependency .PurposeVersionState .WAITING_FOR_APPROVAL ,
2308
2311
riskAnalysis = None ,
2309
- firstActivationAt = Some (SpecData .timestamp)
2312
+ firstActivationAt = Some (SpecData .timestamp),
2313
+ dailyCalls = 2000
2310
2314
)
2311
2315
2312
2316
val payload = PurposeManagementDependency .StateChangeDetails (
@@ -2325,7 +2329,51 @@ class PurposeApiServiceSpec extends AnyWordSpecLike with SpecHelper with Scalate
2325
2329
responseAs[PurposeVersion ] shouldEqual expected
2326
2330
}
2327
2331
}
2332
+ " fail in case of version with the same dailyCalls than previous version" in {
2333
+
2334
+ val consumerId = UUID .randomUUID()
2335
+ val documentId = UUID .randomUUID()
2336
+ val purposeId = UUID .randomUUID()
2337
+ val purposeVersionId1 = UUID .randomUUID()
2338
+ val purposeVersionId2 = UUID .randomUUID()
2339
+ val eserviceId = UUID .randomUUID()
2340
+
2341
+ implicit val context : Seq [(String , String )] =
2342
+ Seq (" bearer" -> bearerToken, USER_ROLES -> " admin" , ORGANIZATION_ID_CLAIM -> consumerId.toString)
2343
+
2344
+ val path : String = " /here/there/foo/bar.pdf"
2345
+ val document : PersistentPurposeVersionDocument =
2346
+ PersistentPurposeVersionDocument (documentId, " application/pdf" , path, SpecData .timestamp)
2347
+
2348
+ val version1_1 = SpecData .purposeVersion.copy(id = purposeVersionId1, state = Draft , dailyCalls = 1000 )
2349
+ val version1_2 = SpecData .purposeVersion.copy(
2350
+ id = purposeVersionId2,
2351
+ state = WaitingForApproval ,
2352
+ riskAnalysis = Some (document),
2353
+ firstActivationAt = None ,
2354
+ createdAt = SpecData .timestamp.plusDays(1 ),
2355
+ dailyCalls = 1001
2356
+ )
2357
+
2358
+ val purpose =
2359
+ SpecData .purpose.copy(
2360
+ id = purposeId,
2361
+ versions = Seq (version1_1, version1_2),
2362
+ consumerId = consumerId,
2363
+ eserviceId = eserviceId
2364
+ )
2365
+
2366
+ val seed : PurposeVersionSeed = PurposeVersionSeed (dailyCalls = 1001 )
2328
2367
2368
+ mockPurposeRetrieve(purposeId, purpose)
2369
+
2370
+ Get () ~> service.createPurposeVersion(purposeId.toString, seed) ~> check {
2371
+ status shouldEqual StatusCodes .BadRequest
2372
+ val problem = responseAs[Problem ]
2373
+ problem.status shouldBe StatusCodes .BadRequest .intValue
2374
+ problem.errors.head.code shouldBe " 012-0028"
2375
+ }
2376
+ }
2329
2377
" fail if Purpose does not exist" in {
2330
2378
2331
2379
val purposeId = UUID .randomUUID()
0 commit comments