Skip to content

Commit

Permalink
use QuerySpec instead of AssetSelectorExpression
Browse files Browse the repository at this point in the history
  • Loading branch information
paullatzelsperger committed Sep 26, 2022
1 parent bef3932 commit 1fa968a
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import org.eclipse.dataspaceconnector.spi.contract.offer.ContractOfferService;
import org.eclipse.dataspaceconnector.spi.message.Range;
import org.eclipse.dataspaceconnector.spi.policy.store.PolicyDefinitionStore;
import org.eclipse.dataspaceconnector.spi.query.QuerySpec;
import org.eclipse.dataspaceconnector.spi.types.domain.asset.Asset;
import org.eclipse.dataspaceconnector.spi.types.domain.contract.offer.ContractDefinition;
import org.eclipse.dataspaceconnector.spi.types.domain.contract.offer.ContractOffer;
Expand Down Expand Up @@ -58,7 +59,10 @@ public Stream<ContractOffer> queryContractOffers(ContractOfferQuery query, Range

return definitionService.definitionsFor(agent)
.flatMap(definition -> {
var assets = assetIndex.queryAssets(definition.getSelectorExpression());
var q = QuerySpec.Builder.newInstance().filter(definition.getSelectorExpression().getCriteria())
.range(range)
.build();
var assets = assetIndex.queryAssets(q);
return Optional.of(definition.getContractPolicyId())
.map(policyStore::findById)
.map(policy -> assets.map(asset -> createContractOffer(definition, policy.getPolicy(), asset)))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import org.eclipse.dataspaceconnector.spi.message.Range;
import org.eclipse.dataspaceconnector.spi.policy.PolicyDefinition;
import org.eclipse.dataspaceconnector.spi.policy.store.PolicyDefinitionStore;
import org.eclipse.dataspaceconnector.spi.query.QuerySpec;
import org.eclipse.dataspaceconnector.spi.types.domain.asset.Asset;
import org.eclipse.dataspaceconnector.spi.types.domain.contract.offer.ContractDefinition;
import org.eclipse.dataspaceconnector.spi.types.domain.contract.offer.ContractOffer;
Expand Down Expand Up @@ -76,15 +77,15 @@ void shouldGetContractOffers() {
when(agentService.createFor(isA(ClaimToken.class))).thenReturn(new ParticipantAgent(emptyMap(), emptyMap()));
when(contractDefinitionService.definitionsFor(isA(ParticipantAgent.class))).thenReturn(Stream.of(contractDefinition));
var assetStream = Stream.of(Asset.Builder.newInstance().build(), Asset.Builder.newInstance().build());
when(assetIndex.queryAssets(isA(AssetSelectorExpression.class))).thenReturn(assetStream);
when(assetIndex.queryAssets(isA(QuerySpec.class))).thenReturn(assetStream);
when(policyStore.findById(any())).thenReturn(PolicyDefinition.Builder.newInstance().policy(Policy.Builder.newInstance().build()).build());

var query = ContractOfferQuery.builder().claimToken(ClaimToken.Builder.newInstance().build()).build();

assertThat(contractOfferService.queryContractOffers(query, DEFAULT_RANGE)).hasSize(2);
verify(agentService).createFor(isA(ClaimToken.class));
verify(contractDefinitionService).definitionsFor(isA(ParticipantAgent.class));
verify(assetIndex).queryAssets(isA(AssetSelectorExpression.class));
verify(assetIndex).queryAssets(isA(QuerySpec.class));
verify(policyStore).findById("contract");
}

Expand All @@ -94,7 +95,7 @@ void shouldNotGetContractOfferIfPolicyIsNotFound() {
.build();
when(agentService.createFor(isA(ClaimToken.class))).thenReturn(new ParticipantAgent(emptyMap(), emptyMap()));
when(contractDefinitionService.definitionsFor(isA(ParticipantAgent.class))).thenReturn(Stream.of(contractDefinition));
when(assetIndex.queryAssets(isA(AssetSelectorExpression.class))).thenReturn(Stream.of(Asset.Builder.newInstance().build()));
when(assetIndex.queryAssets(isA(QuerySpec.class))).thenReturn(Stream.of(Asset.Builder.newInstance().build()));
when(policyStore.findById(any())).thenReturn(null);

var query = ContractOfferQuery.builder().claimToken(ClaimToken.Builder.newInstance().build()).build();
Expand All @@ -110,7 +111,7 @@ void queryContractOffers_ensureCorrectRange() {
var assets = range(0, 50_000_000).mapToObj(i -> createAsset("asset" + i).build());
when(agentService.createFor(isA(ClaimToken.class))).thenReturn(new ParticipantAgent(emptyMap(), emptyMap()));
when(contractDefinitionService.definitionsFor(isA(ParticipantAgent.class))).thenReturn(definitions.stream());
when(assetIndex.queryAssets(isA(AssetSelectorExpression.class))).thenReturn(assets);
when(assetIndex.queryAssets(isA(QuerySpec.class))).thenReturn(assets);
when(policyStore.findById(any())).thenReturn(PolicyDefinition.Builder.newInstance().policy(Policy.Builder.newInstance().build()).build());

var query = ContractOfferQuery.builder().claimToken(ClaimToken.Builder.newInstance().build()).build();
Expand Down

0 comments on commit 1fa968a

Please sign in to comment.