public String getResourceOrSetEntityName(Field field) { if (getResource(field) != null) { return getResourceEntityName(field); } if (getResourceSet(field) != null) { return getResourceSetEntityName(field); } return null; }
/** Return the entity name, e.g. "shelf" for a resource field. */ String getResourceEntityName(Field field) { Resource resource = getResource(field); if (resource != null && !Strings.isNullOrEmpty(resource.getName())) { return resource.getName(); } return field.getParent().getSimpleName(); }
@Test public void testGetEmptyResource() { MessageType book = libraryProtoFile .getMessages() .stream() .filter(m -> m.getSimpleName().equals("Book")) .findFirst() .get(); Field authorBookField = book.getFields().stream().filter(f -> f.getSimpleName().equals("author")).findFirst().get(); assertThat(protoParser.getResource(authorBookField)).isNull(); }
@Test public void testGetResourcePath() { Field shelfNameField = shelf.getFields().stream().filter(f -> f.getSimpleName().equals("name")).findFirst().get(); assertThat(protoParser.getResource(shelfNameField).getPath()).isEqualTo("shelves/{shelf_id}"); }
@Test public void testCreateResourceNamesWithProtoFilesOnly() { ConfigProto emptyConfigProto = ConfigProto.getDefaultInstance(); String defaultPackage = ""; Mockito.doReturn(Resource.newBuilder().setPath(PROTO_BOOK_PATH).build()) .when(protoParser) .getResource(bookName); Mockito.doReturn(Resource.newBuilder().setPath(PROTO_SHELF_PATH).build()) .when(protoParser) .getResource(shelfName); ResourceNameMessageConfigs messageConfigs = ResourceNameMessageConfigs.createMessageResourceTypesConfig( sourceProtoFiles, emptyConfigProto, defaultPackage, allResourceDefs, allResourceSetDefs, protoParser); assertThat(messageConfigs.getResourceTypeConfigMap().size()).isEqualTo(2); ResourceNameMessageConfig bookMessageConfig = messageConfigs.getResourceTypeConfigMap().get("library.Book"); assertThat(bookMessageConfig.fieldEntityMap().get("name")).isEqualTo("Book"); ResourceNameMessageConfig shelfMessageConfig = messageConfigs.getResourceTypeConfigMap().get("library.Shelf"); assertThat(shelfMessageConfig.fieldEntityMap().get("name")).isEqualTo("Shelf"); }