private void verifyFieldExtraction(ThriftStructMetadata<?> metadata, int id, String name) { assertTrue(metadata.getField(id).getExtraction().isPresent()); ThriftExtraction extraction = metadata.getField(id).getExtraction().get(); assertThat(extraction).isInstanceOf(ThriftFieldExtractor.class); ThriftFieldExtractor fieldExtractor = (ThriftFieldExtractor) extraction; assertEquals(fieldExtractor.getField().getName(), name); }
private void verifyParameterInjection( ThriftStructMetadata<?> metadata, int id, String name, int parameterIndex) { ThriftInjection injection = metadata.getField(id).getInjections().get(0); assertThat(injection).isNotNull().isInstanceOf(ThriftParameterInjection.class); ThriftParameterInjection parameterInjection = (ThriftParameterInjection) injection; assertEquals(parameterInjection.getId(), id); assertEquals(parameterInjection.getName(), name); assertEquals(parameterInjection.getParameterIndex(), parameterIndex); }
private ThriftType(ThriftStructMetadata<?> structMetadata) { Preconditions.checkNotNull(structMetadata, "structMetadata is null"); this.protocolType = STRUCT; this.javaType = structMetadata.getStructClass(); keyType = null; valueType = null; this.structMetadata = structMetadata; this.enumMetadata = null; this.uncoercedType = null; }
private <T> ThriftStructMetadata<T> testMetadataBuild( Class<T> structClass, int expectedConstructorParameters, int expectedMethodInjections) { ThriftCatalog catalog = new ThriftCatalog(); ThriftUnionMetadataBuilder<T> builder = new ThriftUnionMetadataBuilder<>(catalog, structClass); assertNotNull(builder); assertNotNull(builder.getMetadataErrors()); builder.getMetadataErrors().throwIfHasErrors(); assertEquals(builder.getMetadataErrors().getWarnings().size(), 0); ThriftStructMetadata<T> metadata = builder.build(); assertNotNull(metadata); assertEquals(MetadataType.UNION, metadata.getMetadataType()); verifyField(metadata, 1, "stringValue"); verifyField(metadata, 2, "longValue"); verifyField(metadata, 3, "fruitValue"); if (expectedConstructorParameters == 0) { assertTrue(metadata.getConstructorInjection().isPresent()); ThriftConstructorInjection constructorInjection = metadata.getConstructorInjection().get(); assertEquals(constructorInjection.getParameters().size(), 0); } else { for (ThriftFieldMetadata fieldMetadata : metadata.getFields(FieldType.THRIFT_FIELD)) { assertTrue(fieldMetadata.getConstructorInjection().isPresent()); assertEquals( fieldMetadata.getConstructorInjection().get().getParameters().size(), expectedConstructorParameters); } } assertEquals(metadata.getMethodInjections().size(), expectedMethodInjections); return metadata; }
@Override public String toString() { final StringBuilder sb = new StringBuilder(); sb.append("ThriftType"); sb.append("{"); sb.append(protocolType).append(" ").append(javaType); if (structMetadata != null) { sb.append(" ").append(structMetadata.getStructClass().getName()); } else if (keyType != null) { sb.append(" keyType=").append(keyType); sb.append(", valueType=").append(valueType); } else if (valueType != null) { sb.append(" valueType=").append(valueType); } sb.append('}'); return sb.toString(); }
private <T> void verifyField(ThriftStructMetadata<T> metadata, int id, String name) { ThriftFieldMetadata metadataField = metadata.getField(id); assertNotNull(metadataField, "metadataField is null"); assertEquals(metadataField.getId(), id); assertEquals(metadataField.getName(), name); assertFalse(metadataField.isReadOnly()); assertFalse(metadataField.isWriteOnly()); assertTrue(metadataField.getExtraction().isPresent()); ThriftExtraction extraction = metadataField.getExtraction().get(); assertEquals(extraction.getId(), id); assertEquals(extraction.getName(), name); assertNotNull(metadataField.getInjections()); assertEquals(metadataField.getInjections().size(), 1); ThriftInjection injection = metadataField.getInjections().get(0); assertEquals(injection.getId(), id); assertEquals(injection.getName(), name); }
private void verifyFieldInjection(ThriftStructMetadata<?> metadata, int id, String name) { ThriftInjection injection = metadata.getField(id).getInjections().get(0); assertThat(injection).isNotNull().isInstanceOf(ThriftFieldInjection.class); ThriftFieldInjection fieldInjection = (ThriftFieldInjection) injection; assertEquals(fieldInjection.getField().getName(), name); }