@@ -245,11 +245,11 @@ void shouldNotGetSecretsTokensSinceDealParamsAreMissing() {
245245 // endregion
246246
247247 // region getPreComputeTokens
248- private DatasetOrder createDatasetOrderForBulk (final EIP712Domain pocoDomain ,
249- final Credentials credentials ,
250- final BigInteger datasetPrice ,
248+ private DatasetOrder createDatasetOrderForBulk (final BigInteger datasetPrice ,
251249 final BigInteger volume ,
252- final OrderTag orderTag ) {
250+ final OrderTag orderTag ) throws Exception {
251+ final EIP712Domain pocoDomain = new EIP712Domain (65535 , "" );
252+ final Credentials credentials = Credentials .create (Keys .createEcKeyPair ());
253253 final SignerService signerService = new SignerService (null , 65535 , credentials );
254254 final String datasetAddress = createEthereumAddress ();
255255 final DatasetOrder datasetOrder = DatasetOrder .builder ()
@@ -265,18 +265,31 @@ private DatasetOrder createDatasetOrderForBulk(final EIP712Domain pocoDomain,
265265 return (DatasetOrder ) signerService .signOrderForDomain (datasetOrder , pocoDomain );
266266 }
267267
268+ private Map <String , String > expectedTokens (final String datasetAddress , final boolean empty ) {
269+ return Map .ofEntries (
270+ Map .entry ("IEXEC_BULK_SLICE_SIZE" , "1" ),
271+ Map .entry ("IEXEC_DATASET_1_URL" , empty ? "" : DATASET_URL ),
272+ Map .entry ("IEXEC_DATASET_1_CHECKSUM" , empty ? "" : DATASET_CHECKSUM ),
273+ Map .entry ("IEXEC_DATASET_1_KEY" , empty ? "" : DATASET_KEY ),
274+ Map .entry ("IEXEC_DATASET_1_FILENAME" , datasetAddress )
275+ );
276+ }
277+
268278 @ Test
269- void shouldGetPreComputeBulkProcessingTokensForInvalidOrder () throws Exception {
279+ void validateBulkDatasetVolume () {
280+ assertThat (BULK_DATASET_VOLUME .longValue ()).isEqualTo (9007199254740990L );
281+ }
282+
283+ @ Test
284+ void shouldGetPreComputeBulkProcessingTokensForPoCoRejectedOrder () throws Exception {
270285 final DealParams dealParams = DealParams .builder ().bulkCid ("bulkCid" ).build ();
271286 final TaskDescription taskDescription = createTaskDescription (dealParams , enclaveConfig ).build ();
272287 final TeeSessionRequest request = createSessionRequest (taskDescription );
273288 final TeeChallenge challenge = TeeChallenge .builder ()
274289 .credentials (EthereumCredentials .generate ())
275290 .build ();
276- final EIP712Domain pocoDomain = new EIP712Domain (65535 , "" );
277- final Credentials credentials = Credentials .create (Keys .createEcKeyPair ());
278291 final DatasetOrder signedDatasetOrder = createDatasetOrderForBulk (
279- pocoDomain , credentials , BigInteger .ONE , BigInteger .ONE , OrderTag .STANDARD );
292+ BigInteger .ONE , BigInteger .ONE , OrderTag .STANDARD );
280293 final String datasetAddress = signedDatasetOrder .getDataset ();
281294
282295 when (ipfsClient .readBulkCid ("bulkCid" )).thenReturn (List .of ("ordersCid" ));
@@ -291,13 +304,36 @@ void shouldGetPreComputeBulkProcessingTokensForInvalidOrder() throws Exception {
291304
292305 assertThat (enclaveBase .getName ()).isEqualTo ("pre-compute" );
293306 assertThat (enclaveBase .getMrenclave ()).isEqualTo (PRE_COMPUTE_FINGERPRINT );
294- assertThat (enclaveBase .getEnvironment ()).containsAllEntriesOf (Map .ofEntries (
295- Map .entry ("IEXEC_BULK_SLICE_SIZE" , "1" ),
296- Map .entry ("IEXEC_DATASET_1_URL" , "" ),
297- Map .entry ("IEXEC_DATASET_1_CHECKSUM" , "" ),
298- Map .entry ("IEXEC_DATASET_1_KEY" , "" ),
299- Map .entry ("IEXEC_DATASET_1_FILENAME" , datasetAddress )
300- ));
307+ assertThat (enclaveBase .getEnvironment ()).containsAllEntriesOf (
308+ expectedTokens (datasetAddress , true ));
309+ }
310+
311+ @ Test
312+ void shouldGetPreComputeBulkProcessingTokensForSmsRejectedOrder () throws Exception {
313+ final DealParams dealParams = DealParams .builder ().bulkCid ("bulkCid" ).build ();
314+ final TaskDescription taskDescription = createTaskDescription (dealParams , enclaveConfig ).build ();
315+ final TeeSessionRequest request = createSessionRequest (taskDescription );
316+ final TeeChallenge challenge = TeeChallenge .builder ()
317+ .credentials (EthereumCredentials .generate ())
318+ .build ();
319+ final DatasetOrder signedDatasetOrder = createDatasetOrderForBulk (
320+ BigInteger .ONE , BigInteger .ONE , OrderTag .STANDARD );
321+ final String datasetAddress = signedDatasetOrder .getDataset ();
322+
323+ when (ipfsClient .readBulkCid ("bulkCid" )).thenReturn (List .of ("ordersCid" ));
324+ when (ipfsClient .readOrders ("ordersCid" )).thenReturn (List .of (signedDatasetOrder ));
325+ when (iexecHubService .getChainDataset (datasetAddress )).thenReturn (Optional .of (ChainDataset .builder ().chainDatasetId (datasetAddress ).build ()));
326+ doNothing ().when (iexecHubService ).assertDatasetDealCompatibility (signedDatasetOrder , DEAL_ID );
327+
328+ final SecretEnclaveBase enclaveBase = teeSecretsService .getPreComputeTokens (
329+ request ,
330+ getSignTokens (challenge .getCredentials ().getPrivateKey ())
331+ );
332+
333+ assertThat (enclaveBase .getName ()).isEqualTo ("pre-compute" );
334+ assertThat (enclaveBase .getMrenclave ()).isEqualTo (PRE_COMPUTE_FINGERPRINT );
335+ assertThat (enclaveBase .getEnvironment ()).containsAllEntriesOf (
336+ expectedTokens (datasetAddress , true ));
301337 }
302338
303339 @ Test
@@ -308,10 +344,8 @@ void shouldGetPreComputeBulkProcessingTokensForValidOrder() throws Exception {
308344 final TeeChallenge challenge = TeeChallenge .builder ()
309345 .credentials (EthereumCredentials .generate ())
310346 .build ();
311- final EIP712Domain pocoDomain = new EIP712Domain (65535 , "" );
312- final Credentials credentials = Credentials .create (Keys .createEcKeyPair ());
313347 final DatasetOrder signedDatasetOrder = createDatasetOrderForBulk (
314- pocoDomain , credentials , BigInteger .ZERO , BULK_DATASET_VOLUME , OrderTag .TEE_SCONE );
348+ BigInteger .ZERO , BULK_DATASET_VOLUME , OrderTag .TEE_SCONE );
315349 final String datasetAddress = signedDatasetOrder .getDataset ();
316350 final ChainDataset chainDataset = ChainDataset .builder ()
317351 .chainDatasetId (datasetAddress )
@@ -332,13 +366,8 @@ void shouldGetPreComputeBulkProcessingTokensForValidOrder() throws Exception {
332366
333367 assertThat (enclaveBase .getName ()).isEqualTo ("pre-compute" );
334368 assertThat (enclaveBase .getMrenclave ()).isEqualTo (PRE_COMPUTE_FINGERPRINT );
335- assertThat (enclaveBase .getEnvironment ()).containsAllEntriesOf (Map .ofEntries (
336- Map .entry ("IEXEC_BULK_SLICE_SIZE" , "1" ),
337- Map .entry ("IEXEC_DATASET_1_URL" , DATASET_URL ),
338- Map .entry ("IEXEC_DATASET_1_CHECKSUM" , DATASET_CHECKSUM ),
339- Map .entry ("IEXEC_DATASET_1_KEY" , DATASET_KEY ),
340- Map .entry ("IEXEC_DATASET_1_FILENAME" , datasetAddress )
341- ));
369+ assertThat (enclaveBase .getEnvironment ()).containsAllEntriesOf (
370+ expectedTokens (datasetAddress , false ));
342371 }
343372
344373 @ Test
0 commit comments