public static String[] getPropertyKeys( TokenNameLookup tokenNameLookup, int[] propertyIds ) { String[] propertyKeys = new String[propertyIds.length]; for ( int i = 0; i < propertyIds.length; i++ ) { propertyKeys[i] = tokenNameLookup.propertyKeyGetName( propertyIds[i] ); } return propertyKeys; }
@Override public String getUserMessage( TokenNameLookup tokenNameLookup ) { return format( "%s has no property with propertyKey=\"%s\".", entity, tokenNameLookup.propertyKeyGetName( propertyKeyId ) ); } }
private static List<String> propertyNames( TokenNameLookup tokens, IndexReference index ) { int[] propertyIds = index.properties(); List<String> propertyNames = new ArrayList<>( propertyIds.length ); for ( int propertyId : propertyIds ) { propertyNames.add( tokens.propertyKeyGetName( propertyId ) ); } return propertyNames; }
public static String[] getPropertyKeys( TokenNameLookup tokenNameLookup, LabelSchemaDescriptor descriptor ) { int[] propertyKeyIds = descriptor.getPropertyIds(); String[] propertyKeys = new String[propertyKeyIds.length]; for ( int i = 0; i < propertyKeyIds.length; i++ ) { propertyKeys[i] = tokenNameLookup.propertyKeyGetName( propertyKeyIds[i] ); } return propertyKeys; }
public static String niceProperties( TokenNameLookup tokenNameLookup, int[] propertyIds, String prefix, boolean useBrackets ) { StringBuilder properties = new StringBuilder(); if ( useBrackets ) { properties.append( "(" ); } for ( int i = 0; i < propertyIds.length; i++ ) { if ( i > 0 ) { properties.append( ", " ); } properties.append( prefix ).append( tokenNameLookup.propertyKeyGetName( propertyIds[i] ) ); } if ( useBrackets ) { properties.append( ")" ); } return properties.toString(); }
private String propertyString( TokenNameLookup tokenNameLookup, int[] propertyIds ) { StringBuilder sb = new StringBuilder(); String sep = propertyIds.length > 1 ? "properties " : "property "; for ( int i = 0; i < propertyIds.length; i++ ) { sb.append( sep ); sep = ", "; sb.append( '`' ); sb.append( tokenNameLookup.propertyKeyGetName( propertyIds[i] ) ); sb.append( "` = " ); sb.append( propertyValues.valueAt( i ).prettyPrint() ); } return sb.toString(); } }
@Override public String prettyPrint( TokenNameLookup tokenNameLookup ) { String typeName = escapeLabelOrRelTyp( tokenNameLookup.relationshipTypeGetName( schema.getRelTypeId() ) ); String relName = typeName.toLowerCase(); String propertyName = tokenNameLookup.propertyKeyGetName( schema.getPropertyId() ); return String.format( "CONSTRAINT ON ()-[ %s:%s ]-() ASSERT exists(%s.%s)", relName, typeName, relName, propertyName ); } }
@Override public String getUserMessage( TokenNameLookup tokenNameLookup ) { return format( "Relationship(%s) with type `%s` must have the property `%s`", relationshipId, tokenNameLookup.relationshipTypeGetName( schema.getRelTypeId() ), tokenNameLookup.propertyKeyGetName( schema.getPropertyId() ) ); } }
private TokenNameLookup getDefaultTokenNameLookup() { TokenNameLookup tokenNameLookup = mock( TokenNameLookup.class ); Mockito.when( tokenNameLookup.labelGetName( labelId( LABEL1 ) ) ).thenReturn( LABEL1 ); Mockito.when( tokenNameLookup.propertyKeyGetName( propId( PROP1 ) ) ).thenReturn( PROP1 ); Mockito.when( tokenNameLookup.relationshipTypeGetName( typeId( TYPE1 ) ) ).thenReturn( TYPE1 ); return tokenNameLookup; }
when( nameLookup.propertyKeyGetName( anyInt() ) ).thenAnswer( new NameLookupAnswer( "property" ) );
when( mockLookup.propertyKeyGetName( 1 ) ).thenReturn( "propertyOne" ); when( mockLookup.propertyKeyGetName( 2 ) ).thenReturn( "propertyTwo" );
@Test public void shouldStoreIndexFailureWhenFailingToCreateOnlineAccessorAfterRecoveringPopulatingIndex() throws Exception { // given long indexId = 1; StoreIndexDescriptor indexRule = index.withId( indexId ); IndexingService indexing = newIndexingServiceWithMockedDependencies( populator, accessor, withData(), indexRule ); IOException exception = new IOException( "Expected failure" ); when( nameLookup.labelGetName( labelId ) ).thenReturn( "TheLabel" ); when( nameLookup.propertyKeyGetName( propertyKeyId ) ).thenReturn( "propertyKey" ); when( indexProvider.getInitialState( indexRule ) ).thenReturn( POPULATING ); when( indexProvider.getOnlineAccessor( any( StoreIndexDescriptor.class ), any( IndexSamplingConfig.class ) ) ) .thenThrow( exception ); life.start(); ArgumentCaptor<Boolean> closeArgs = ArgumentCaptor.forClass( Boolean.class ); // when waitForIndexesToGetIntoState( indexing, InternalIndexState.FAILED, indexId ); verify( populator, timeout( 10000 ).times( 2 ) ).close( closeArgs.capture() ); // then assertEquals( FAILED, indexing.getIndexProxy( 1 ).getState() ); assertEquals( asList( true, false ), closeArgs.getAllValues() ); assertThat( storedFailure(), containsString( format( "java.io.IOException: Expected failure%n\tat " ) ) ); internalLogProvider.assertAtLeastOnce( inLog( IndexPopulationJob.class ).error( equalTo( "Failed to populate index: [:TheLabel(propertyKey) [provider: {key=quantum-dex, version=25.0}]]" ), causedBy( exception ) ) ); internalLogProvider.assertNone( inLog( IndexPopulationJob.class ).info( "Index population completed. Index is now online: [%s]", ":TheLabel(propertyKey) [provider: {key=quantum-dex, version=25.0}]" ) ); }
when(mockLookup.propertyKeyGetName( 1 )).thenReturn( "propertyOne" ); when(mockLookup.propertyKeyGetName( 2 )).thenReturn( "propertyTwo" ); when( storeView.indexSample( anyLong(), any( DoubleLongRegister.class ) ) ).thenReturn( newDoubleLongRegister( 32L, 32L ) );
@Test public void shouldStoreIndexFailureWhenFailingToCreateOnlineAccessorAfterPopulating() throws Exception { // given long indexId = 1; IndexingService indexing = newIndexingServiceWithMockedDependencies( populator, accessor, withData() ); IOException exception = new IOException( "Expected failure" ); when( nameLookup.labelGetName( labelId ) ).thenReturn( "TheLabel" ); when( nameLookup.propertyKeyGetName( propertyKeyId ) ).thenReturn( "propertyKey" ); when( indexProvider.getOnlineAccessor( any( StoreIndexDescriptor.class ), any( IndexSamplingConfig.class ) ) ) .thenThrow( exception ); life.start(); ArgumentCaptor<Boolean> closeArgs = ArgumentCaptor.forClass( Boolean.class ); // when indexing.createIndexes( index.withId( indexId ) ); waitForIndexesToGetIntoState( indexing, InternalIndexState.FAILED, indexId ); verify( populator, timeout( 10000 ).times( 2 ) ).close( closeArgs.capture() ); // then assertEquals( FAILED, indexing.getIndexProxy( 1 ).getState() ); assertEquals( asList( true, false ), closeArgs.getAllValues() ); assertThat( storedFailure(), containsString( format( "java.io.IOException: Expected failure%n\tat " ) ) ); internalLogProvider.assertAtLeastOnce( inLog( IndexPopulationJob.class ).error( equalTo( "Failed to populate index: [:TheLabel(propertyKey) [provider: {key=quantum-dex, version=25.0}]]" ), causedBy( exception ) ) ); internalLogProvider.assertNone( inLog( IndexPopulationJob.class ).info( "Index population completed. Index is now online: [%s]", ":TheLabel(propertyKey) [provider: {key=quantum-dex, version=25.0}]" ) ); }
schemaState ) ); when( mockLookup.propertyKeyGetName( 1 ) ).thenReturn( "prop" );
when( storeView.indexSample( anyLong(), any( DoubleLongRegister.class ) ) ) .thenReturn( newDoubleLongRegister( 32L, 32L ) ); when( mockLookup.propertyKeyGetName( 1 ) ).thenReturn( "prop" );
/** * ConstraintInfo info from ConstraintDescriptor * * @param constraintDescriptor * @param tokens * @return */ private IndexConstraintNodeInfo nodeInfoFromConstraintDescriptor(ConstraintDescriptor constraintDescriptor, TokenNameLookup tokens) { String labelName = tokens.labelGetName(constraintDescriptor.schema().keyId()); List<String> properties = new ArrayList<>(); Arrays.stream(constraintDescriptor.schema().getPropertyIds()).forEach((i) -> properties.add(tokens.propertyKeyGetName(i))); return new IndexConstraintNodeInfo( // Pretty print for index name String.format(":%s(%s)", labelName, StringUtils.join(properties, ",")), labelName, properties, StringUtils.EMPTY, ConstraintType.NODE_PROPERTY_EXISTENCE.toString(), "NO FAILURE", 0, 0, 0, constraintDescriptor.userDescription(tokens) ); }
String labelName = tokens.labelGetName(indexReference.label()); List<String> properties = new ArrayList<>(); Arrays.stream(indexReference.properties()).forEach((i) -> properties.add(tokens.propertyKeyGetName(i))); try { return new IndexConstraintNodeInfo(
public static String[] getPropertyKeys( TokenNameLookup tokenNameLookup, int[] propertyIds ) { String[] propertyKeys = new String[propertyIds.length]; for ( int i = 0; i < propertyIds.length; i++ ) { propertyKeys[i] = tokenNameLookup.propertyKeyGetName( propertyIds[i] ); } return propertyKeys; }
@Override public String getUserMessage( TokenNameLookup tokenNameLookup ) { return format( "%s has no property with propertyKey=\"%s\".", entity, tokenNameLookup.propertyKeyGetName( propertyKeyId ) ); } }