Skip to content

Commit

Permalink
MSEARCH-958: Additional 147/447/547 to search
Browse files Browse the repository at this point in the history
  • Loading branch information
askhat-abishev committed Feb 18, 2025
1 parent 652d2b2 commit 7a16603
Show file tree
Hide file tree
Showing 8 changed files with 126 additions and 46 deletions.
1 change: 1 addition & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
* Call Numbers Browse: Implement Browsing Endpoint for Call-Numbers ([MSEARCH-865](https://folio-org.atlassian.net/browse/MSEARCH-865))
* Call Numbers Browse: Support aliases for callNumberTypeId filters ([MSEARCH-942](https://folio-org.atlassian.net/browse/MSEARCH-942))
* Call Numbers Browse: Support showing instance title in browse results list ([MSEARCH-948](https://folio-org.atlassian.net/browse/MSEARCH-948))
* Additional 147/447/547 to search ([MSEARCH-958](https://folio-org.atlassian.net/browse/MSEARCH-958))

### Bug fixes
* Remove shelving order calculation for local call-number types
Expand Down
24 changes: 24 additions & 0 deletions src/main/resources/model/authority.json
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,30 @@
"headingType": "Uniform Title",
"authRefType": "Auth/Ref"
},
"namedEvent": {
"type": "authority",
"index": "standard",
"searchAliases": [ "keyword" ],
"distinctType": "namedEvent",
"headingType": "Named Event",
"authRefType": "Authorized"
},
"sftNamedEvent": {
"type": "authority",
"index": "standard",
"searchAliases": [ "keyword" ],
"distinctType": "sftNamedEvent",
"headingType": "Named Event",
"authRefType": "Reference"
},
"saftNamedEvent": {
"type": "authority",
"index": "standard",
"searchAliases": [ "keyword" ],
"distinctType": "saftNamedEvent",
"headingType": "Named Event",
"authRefType": "Auth/Ref"
},
"topicalTerm": {
"type": "authority",
"index": "standard",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,19 @@ properties:
items:
type: "string"
description: "See also from tracing uniform title"
namedEvent:
type: "string"
description: "Heading named event"
sftNamedEvent:
type: "array"
description: "See from tracing named event"
items:
type: "string"
saftNamedEvent:
type: "array"
description: "See also from tracing named event"
items:
type: "string"
topicalTerm:
type: "string"
description: "Heading topical term"
Expand Down Expand Up @@ -189,4 +202,4 @@ properties:
description: "Generated field by mod-search, used to easily identity the heading/reference of the record that provides authority information"
numberOfTitles:
type: "integer"
description: "Generated field by mod-search, used to count the total number of bib records linked to this authority record"
description: "Generated field by mod-search, used to count the total number of bib records linked to this authority record"
87 changes: 46 additions & 41 deletions src/test/java/org/folio/search/controller/BrowseAuthorityIT.java

Large diffs are not rendered by default.

29 changes: 27 additions & 2 deletions src/test/java/org/folio/search/controller/SearchAuthorityIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ class SearchAuthorityIT extends BaseIntegrationTest {

@BeforeAll
static void prepare() {
setUpTenant(Authority.class, 30, getAuthoritySampleAsMap());
setUpTenant(Authority.class, 33, getAuthoritySampleAsMap());

//set up linked instances
var instance1 = new Instance().id(randomId()).title("test-resource")
Expand Down Expand Up @@ -95,7 +95,7 @@ void searchByAuthoritiesCaseInsensitive_parameterized(String query, String value
@ParameterizedTest(name = "[{index}] query={0}, value=''{1}''")
@DisplayName("search by authorities (check that they are divided correctly)")
void searchByAuthorities_parameterized_all(String query, String value) throws Exception {
var response = doSearchByAuthorities(prepareQuery(query, value)).andExpect(jsonPath("$.totalRecords", is(30)));
var response = doSearchByAuthorities(prepareQuery(query, value)).andExpect(jsonPath("$.totalRecords", is(33)));
var actual = parseResponse(response, AuthoritySearchResult.class);
assertThat(actual.getAuthorities()).asInstanceOf(InstanceOfAssertFactories. LIST).containsOnly(
authority("Personal Name", AUTHORIZED_TYPE, "Gary A. Wills", 4),
Expand Down Expand Up @@ -130,6 +130,10 @@ void searchByAuthorities_parameterized_all(String query, String value) throws Ex
authority("Uniform Title", REFERENCE_TYPE, "a sft uniform title", null),
authority("Uniform Title", AUTH_REF_TYPE, "a saft uniform title", null),

authority("Named Event", AUTHORIZED_TYPE, "a named event", 4),
authority("Named Event", REFERENCE_TYPE, "a sft named event", null),
authority("Named Event", AUTH_REF_TYPE, "a saft named event", null),

authority("Topical", AUTHORIZED_TYPE, "a topical term", 4),
authority("Topical", REFERENCE_TYPE, "a sft topical term", null),
authority("Topical", AUTH_REF_TYPE, "a saft topical term", null),
Expand Down Expand Up @@ -157,6 +161,9 @@ private static Stream<Arguments> testDataProvider() {
arguments("keyword == {value}", "\"an uniform title\""),
arguments("keyword all {value}", "\"a sft uniform title\""),
arguments("keyword all {value}", "\"a saft uniform title\""),
arguments("keyword == {value}", "\"a named event\""),
arguments("keyword all {value}", "\"a sft named event\""),
arguments("keyword all {value}", "\"a saft named event\""),
arguments("keyword == {value}", "\"a topical term\""),
arguments("keyword all {value}", "\"a sft topical term\""),
arguments("keyword all {value}", "\"a saft topical term\""),
Expand Down Expand Up @@ -228,6 +235,16 @@ private static Stream<Arguments> testDataProvider() {
arguments("saftUniformTitle = {value} ", "\"title saft\""),
arguments("saftUniformTitle == {value} ", "\"saft uniform title\""),

arguments("namedEvent all {value}", "\"a named event\""),
arguments("namedEvent all {value}", "named"),
arguments("namedEvent == {value}", "\"a nam*\""),
arguments("namedEvent == {value} and headingType==\"Named Event\"", "\"a nam*\""),
arguments("sftNamedEvent = {value}", "\"sft named event\""),
arguments("sftNamedEvent == {value}", "\"sft named event\""),
arguments("sftNamedEvent == {value}", "\"*nam*\""),
arguments("saftNamedEvent = {value}", "\"saft event\""),
arguments("saftNamedEvent == {value}", "\"*saft nam*\""),

arguments("topicalTerm all {value}", "\"a topical term\""),
arguments("topicalTerm all {value}", "topical"),
arguments("topicalTerm == {value}", "\"a top*\""),
Expand Down Expand Up @@ -345,6 +362,14 @@ private static Stream<Arguments> testCaseInsensitiveDataProvider() {
arguments("saftUniformTitle = {value} ", "\"TITLE SAFT\""),
arguments("saftUniformTitle == {value} ", "\"SAFT UNIFORM TITLE\""),

arguments("namedEvent all {value}", "\"A NAMED EVENT\""),
arguments("namedEvent all {value}", "NAMED"),
arguments("namedEvent == {value}", "\"A NAM*\""),
arguments("sftNamedEvent = {value}", "\"SFT NAMED EVENT\""),
arguments("sftNamedEvent == {value}", "\"*NAM*\""),
arguments("saftNamedEvent = {value}", "\"SAFT EVENT\""),
arguments("saftNamedEvent == {value}", "\"*SAFT NAM*\""),

arguments("topicalTerm all {value}", "\"A TOPICAL TERM\""),
arguments("topicalTerm all {value}", "TOPICAL"),
arguments("topicalTerm == {value}", "\"A TOP*\""),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
class StreamResourceIdsIT extends BaseIntegrationTest {

private static final int SAVED_INSTANCES_AMOUNT = 1;
private static final int SAVED_AUTHORITIES_AMOUNT = 30;
private static final int SAVED_AUTHORITIES_AMOUNT = 33;

@BeforeAll
static void prepare() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,10 @@ void process_positive() {
event("saftCorporateNameTitle1", expectedAuthorityAsMap(authority, "saftCorporateNameTitle[1]")),
event("uniformTitle0", expectedAuthorityAsMap(authority, "uniformTitle")),
event("sftUniformTitle0", expectedAuthorityAsMap(authority, "sftUniformTitle[0]")),
event("saftUniformTitle0", expectedAuthorityAsMap(authority, "saftUniformTitle[0]"))
event("saftUniformTitle0", expectedAuthorityAsMap(authority, "saftUniformTitle[0]")),
event("namedEvent0", expectedAuthorityAsMap(authority, "namedEvent")),
event("sftNamedEvent0", expectedAuthorityAsMap(authority, "sftNamedEvent[0]")),
event("saftNamedEvent0", expectedAuthorityAsMap(authority, "saftNamedEvent[0]"))
));
}

Expand Down Expand Up @@ -162,6 +165,9 @@ private static Authority fullAuthorityRecord() {
.uniformTitle("an uniform title")
.sftUniformTitle(List.of("a sft uniform title"))
.saftUniformTitle(List.of("a saft uniform title"))
.namedEvent("a named event")
.sftNamedEvent(List.of("a sft named event"))
.saftNamedEvent(List.of("a saft named event"))
.subjectHeadings("a subject heading")
.identifiers(List.of(new Identifier()
.value("an identifier value")
Expand Down Expand Up @@ -191,6 +197,9 @@ private static ResourceDescription authorityResourceDescription() {
"uniformTitle", authorityField("uniformTitle"),
"sftUniformTitle", authorityField("sftUniformTitle"),
"saftUniformTitle", authorityField("saftUniformTitle"),
"namedEvent", authorityField("namedEvent"),
"sftNamedEvent", authorityField("sftNamedEvent"),
"saftNamedEvent", authorityField("saftNamedEvent"),
"shared", standardField()
));
}
Expand Down
3 changes: 3 additions & 0 deletions src/test/resources/samples/authority-sample/authority.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@
"uniformTitle": "an uniform title",
"sftUniformTitle": [ "a sft uniform title" ],
"saftUniformTitle": [ "a saft uniform title" ],
"namedEvent": "a named event",
"sftNamedEvent": [ "a sft named event" ],
"saftNamedEvent": [ "a saft named event" ],
"topicalTerm": "a topical term",
"sftTopicalTerm": [ "a sft topical term" ],
"saftTopicalTerm": [ "a saft topical term" ],
Expand Down

0 comments on commit 7a16603

Please sign in to comment.