@Test @TestForIssue(jiraKey = "HSEARCH-2840") public void testProjectionWithDynamicField() { // Store some not defined data: ElasticsearchDynamicIndexedValueHolder holder = new ElasticsearchDynamicIndexedValueHolder( "1" ) .dynamicProperty( "age", "227" ) .dynamicProperty( "name", "Thorin" ) .dynamicProperty( "surname", "Oakenshield" ) .dynamicProperty( "race", "dwarf" ); helper.index( holder ); helper.assertThat() .from( ElasticsearchDynamicIndexedValueHolder.class ) .projecting( "dynamicField.name" ) .matchesExactlySingleProjections( "Thorin" ); helper.assertThat() .from( ElasticsearchDynamicIndexedValueHolder.class ) .projecting( "dynamicField" ) .matchesExactlySingleProjections( holder.getDynamicFields() ); }
@Test public void testPropertiesIndexing() { ExtendedSearchIntegrator searchFactory = sfHolder.getSearchFactory(); Assert.assertNotNull( searchFactory.getIndexManagerHolder().getIndexManager( "all" ) ); // Store some test data: helper.add( new DynamicIndexedValueHolder( "1" ) .property( "age", "227" ) .property( "name", "Thorin" ) .property( "surname", "Oakenshield" ) .property( "race", "dwarf" ) ); helper.assertThat() .from( DynamicIndexedValueHolder.class ) .projecting( "value.surname" ) .matchesExactlySingleProjections( "Oakenshield" ); }
@Test public void numericRangeQueryOnCustomField() { storeData( "title-one", "1" ); storeData( "title-two", "2" ); storeData( "title-three", "3" ); QueryBuilder queryBuilder = helper.queryBuilder( CustomBridgedNumbers.class ); Query query = queryBuilder .range() .onField( "customField" ) .from( 1 ).excludeLimit() .to( 3 ).excludeLimit() .createQuery(); helper.assertThat( query ) .from( CustomBridgedNumbers.class ) .projecting( "title" ) .matchesExactlySingleProjections( "title-two" ); }
@Test @TestForIssue(jiraKey = "HSEARCH-2433") public void testWithEmbedded() throws Exception { UserWithAddress user = new UserWithAddress(); user.setId( 1 ); user.setSurname( "Smith" ); Address address = new Address(); address.setStreet( "21st steet" ); address.setNumber( 42 ); address.setPostCode( "8964" ); user.addAddress( address ); helper.add( user, "S:1" ); helper.assertThat( "surname", "smith" ) .from( UserWithAddress.class ) .projecting( "surname" ) .matchesExactlySingleProjections( "Smith" ); }
@TestForIssue(jiraKey = "HSEARCH-1193") @Test public void testNumericFieldProjections() { Query latitudeQuery = NumericFieldUtils.createNumericRangeQuery( "latitude", -20d, -20d, true, true ); helper.assertThat( latitudeQuery ).from( Location.class ) .projecting( "latitude" ) .matchesExactlySingleProjections( -20d ); helper.assertThat( latitudeQuery ).from( Location.class ) .projecting( "coordinatePair_x", "coordinatePair_y", "importance", "popularity" ) .matchesExactlyProjections( new Object[] { 1d, 2d, (short) 10, (byte) 20 } ); }
@Test @TestForIssue(jiraKey = "HSEARCH-2432") public void testWithCustomId() throws Exception { User user = new User(); user.setId( 325 ); user.setSurname( "Lee" ); Serializable customId = "S:custom_id_325"; helper.add( user, customId ); helper.assertThat( "surname", "lee" ) .from( User.class ) .projecting( "surname" ) .matchesExactlySingleProjections( "Lee" ) .matchesExactlyIds( customId ); }
@Test public void testIndexingWithDynamicField() { // Store some not defined data: ElasticsearchDynamicIndexedValueHolder holder = new ElasticsearchDynamicIndexedValueHolder( "1" ) .dynamicProperty( "age", "227" ) .dynamicProperty( "name", "Thorin" ) .dynamicProperty( "surname", "Oakenshield" ) .dynamicProperty( "race", "dwarf" ); helper.index( holder ); helper.assertThat() .from( ElasticsearchDynamicIndexedValueHolder.class ) .projecting( "dynamicField.name" ) .matchesExactlySingleProjections( "Thorin" ); }
@Test public void verifyExplicitRangeQuery() { Query query = getQueryBuilder() .range() .onField( "age" ) .from( 1 ).excludeLimit() .to( 3 ).excludeLimit() .createQuery(); Assert.assertTrue( query instanceof NumericRangeQuery ); assertProjection( query, "title" ).matchesExactlySingleProjections( "title-two" ); }
private void assertStoredValueEquals(Query query, String fieldName, Object expectedValue) { helper.assertThat( query ) .from( Person.class ) .projecting( fieldName ) .matchesExactlySingleProjections( expectedValue ); }
void projectionTestHelper(String projectionField, Object expectedValue) { helper.assertThat() .from( ExampleEntity.class ) .projecting( projectionField ) .matchesExactlySingleProjections( expectedValue ); }
private void assertThatFieldIsIndexed(String field, Object expectedValue, Sample sample) { helper.add( sample, sample.id ); Query query = queryBuilder().keyword().onField( field ).ignoreAnalyzer().matching( expectedValue ).createQuery(); helper.assertThat( query ) .from( Sample.class ) .projecting( field ) .matchesExactlySingleProjections( expectedValue ); }
@Test public void verifyExplicitKeywordQuery() { Query query = getQueryBuilder() .keyword() .onField( "age" ) .matching( 2 ) .createQuery(); Assert.assertTrue( query instanceof NumericRangeQuery ); assertProjection( query, "title" ).matchesExactlySingleProjections( "title-two" ); }
@Test @TestForIssue(jiraKey = "HSEARCH-2431") public void testWithProjection() throws Exception { User user = new User(); user.setId( 1 ); user.setSurname( "Smith" ); helper.add( user, "S:1" ); helper.assertThat( "surname", "smith" ) .from( User.class ) .projecting( "surname" ) .matchesExactlySingleProjections( "Smith" ); }
@Test public void verifyCustomNullEncoding() { Query query = getQueryBuilder() .keyword() .onField( "nullableAge" ) .matching( null ) .createQuery(); Assert.assertTrue( query instanceof NumericRangeQuery ); Assert.assertEquals( "[-1 TO -1]", query.toString( "nullableAge" ) ); assertProjection( query, "title" ).matchesExactlySingleProjections( "title-two" ); }