Skip to content

Commit

Permalink
gh-389 Update SummaryMetadata to support filtering for index queries
Browse files Browse the repository at this point in the history
Also created tests for filtering/sorting summaryMetadata
  • Loading branch information
pjmonks committed Jan 31, 2023
1 parent f2c7dbb commit c83e9dd
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ class SummaryMetadata implements MultiFacetItemAware, InformationAware, MdmDomai
}

static DetachedCriteria<SummaryMetadata> withFilter(DetachedCriteria<SummaryMetadata> criteria, Map filters) {
if (filters.label) criteria = criteria.ilike('label', "%${filters.name}%")
if (filters.label) criteria = criteria.ilike('label', "%${filters.label}%")
criteria
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ class SummaryMetadataService implements MultiFacetItemAwareService<SummaryMetada

@Override
List<SummaryMetadata> findAllByMultiFacetAwareItemId(UUID multiFacetAwareItemId, Map pagination = [:]) {
SummaryMetadata.byMultiFacetAwareItemId(multiFacetAwareItemId).list(pagination)
SummaryMetadata.withFilter(SummaryMetadata.byMultiFacetAwareItemId(multiFacetAwareItemId), pagination).list(pagination)
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,4 +172,69 @@ abstract class CatalogueItemSummaryMetadataFunctionalSpec extends CatalogueItemF
cleanup:
cleanUpData(id)
}

void 'CISM02: test filtering of summaryMetadata'() {
given: 'Create new summaryMetadata items'
def id1 = createNewItem([
label : 'Summary the first',
summaryMetadataType: SummaryMetadataType.NUMBER
])
def id2 = createNewItem([
label : 'Summary the second',
summaryMetadataType: SummaryMetadataType.NUMBER
])

when: 'No filter used'
GET('')

then: 'Check all summaryMetadata returned'
verifyResponse(HttpStatus.OK, response)
response.body().count == 2

when: 'Filter by label'
GET('?label=sec')

then: 'Check filtered summaryMetadata returned'
verifyResponse(HttpStatus.OK, response)
response.body().count == 1
response.body().items[0].id == id2

cleanup:
cleanUpData(id1)
cleanUpData(id2)
}

void 'CISM03: test sorting of summaryMetadata'() {
given: 'Create new summaryMetadata items'
def id1 = createNewItem([
label : 'A summaryMetadata',
summaryMetadataType: SummaryMetadataType.NUMBER
])
def id2 = createNewItem([
label : 'B summaryMetadata',
summaryMetadataType: SummaryMetadataType.NUMBER
])

when: 'Default sorting by label'
GET('')

then: 'Check summaryMetadata returned in ascending label order'
verifyResponse(HttpStatus.OK, response)
response.body().count == 2
response.body().items[0].id == id1
response.body().items[1].id == id2

when: 'Sort by label descending'
GET('?sort=label&order=desc')

then: 'Check summaryMetadata returned in descending label order'
verifyResponse(HttpStatus.OK, response)
response.body().count == 2
response.body().items[0].id == id2
response.body().items[1].id == id1

cleanup:
cleanUpData(id1)
cleanUpData(id2)
}
}

0 comments on commit c83e9dd

Please sign in to comment.