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 set field. */ private String getResourceSetEntityName(Field field) { ResourceSet resourceSet = getResourceSet(field); if (resourceSet != null && !Strings.isNullOrEmpty(resourceSet.getName())) { return resourceSet.getName(); } return field.getParent().getSimpleName(); }
@Test public void testGetResourceSet() { Field bookNameField = book.getFields().stream().filter(f -> f.getSimpleName().equals("name")).findFirst().get(); ResourceSet bookResourceSet = protoParser.getResourceSet(bookNameField); assertThat(bookResourceSet).isNotNull(); assertThat(bookResourceSet.getName()).isEqualTo("BookOneOf"); assertThat(bookResourceSet.getResourcesCount()).isEqualTo(1); assertThat(bookResourceSet.getResources(0)) .isEqualTo(Resource.newBuilder().setName("DeletedBook").setPath("_deleted-book_").build()); assertThat(bookResourceSet.getResourceReferencesList()).containsExactly("ArchivedBook", "Book"); }
Mockito.when(bookMessage.getFields()).thenReturn(ImmutableList.of(bookAuthor, bookName)); Mockito.doReturn(null).when(protoParser).getResourceSet(any()); Mockito.when(protoFile.getSimpleName()).thenReturn("library"); Mockito.when(protoFile.getMessages()).thenReturn(ImmutableList.of(bookMessage, shelfMessage));