### Question:
ProtoDomain implements Serializable { public Collection<Descriptors.ServiceDescriptor> findServiceDescriptorsByOption( String optionName) { Descriptors.FieldDescriptor fieldDescriptor = optionsCatalog.getServiceOptionByName(optionName); return serviceMap.values().stream() .filter( descriptor -> { DescriptorProtos.ServiceOptions options = descriptor.getOptions(); UnknownFieldSet.Field unknown = options.getUnknownFields().getField(fieldDescriptor.getNumber()); if (unknown.getLengthDelimitedList().size() + unknown.getFixed64List().size() + unknown.getFixed32List().size() + unknown.getVarintList().size() > 0) { return true; } return options.getAllFields().containsKey(fieldDescriptor); }) .collect(Collectors.toList()); } ProtoDomain(); private  ProtoDomain(DescriptorProtos.FileDescriptorSet fileDescriptorSet); static ProtoDomain buildFrom(Collection<ByteString> fileDescriptorProtoList); static ProtoDomain buildFrom(Descriptors.Descriptor descriptor); static ProtoDomain buildFrom(DescriptorProtos.FileDescriptorSet fileDescriptorSet); static ProtoDomain buildFrom(Descriptors.FileDescriptor fileDescriptor); static ProtoDomain buildFrom(Map<String, Descriptors.FileDescriptor> fileDescriptorMap); static ProtoDomain buildFrom(InputStream inputStream); static ProtoDomain buildFrom(File file); static ProtoDomain buildFrom(byte[] buffer); static ProtoDomain buildFrom(ByteString buffer); static ProtoDomain empty(); Builder toBuilder(); static Builder builder(); DescriptorProtos.FileDescriptorSet getFileDescriptorSet(); Descriptors.FileDescriptor getFileDescriptor(String name); Descriptors.Descriptor getDescriptor(String fullName); Descriptors.FieldDescriptor getFieldOptionById(int id); @Override boolean equals(Object o); @Override int hashCode(); boolean contains(Descriptors.Descriptor descriptor); OptionsCatalog getOptions(); Descriptors.FileDescriptor getFileDescriptorByFileName(String fileName); List<Descriptors.FileDescriptor> getFileDescriptorsByPackagePrefix(String packagePrefix); List<Descriptors.FileDescriptor> getFileDescriptorsByPackageName(String packageName); Set<String> getFileNames(); List<Descriptors.FileDescriptor> getFileDescriptors(); void writeToDirectory(String root); Descriptors.Descriptor getDescriptorByName(String messageName); Descriptors.ServiceDescriptor getServiceDescriptorByName(String messageName); void registerOptions(); Descriptors.EnumDescriptor getEnumDescriptorByName(String messageName); byte[] toByteArray(); ByteString toByteString(); DescriptorProtos.FileDescriptorSet toFileDescriptorSet(); @Override String toString(); Collection<Descriptors.FileDescriptor> iterator(); Collection<Descriptors.FileDescriptor> getDependantFileDescriptors(
      Descriptors.FileDescriptor fd); Collection<Descriptors.FileDescriptor> getDependantFileDescriptors(
      Collection<Descriptors.FileDescriptor> in); Collection<Descriptors.Descriptor> findDescriptorsByOption(String optionName); Collection<Descriptors.FileDescriptor> findFileDescriptorsByOption(String optionName); Collection<Descriptors.EnumDescriptor> findEnumDescriptorsByOption(String optionName); Collection<Descriptors.ServiceDescriptor> findServiceDescriptorsByOption(
      String optionName); static final long serialVersionUID; }### Answer:
@Test public void findServiceDescriptorsByOption() throws IOException { ProtoDomain domain = TestSets.baseMultipleOptions(); Collection<Descriptors.ServiceDescriptor> options = domain.findServiceDescriptorsByOption("test.v1.service_option"); Assert.assertEquals(0, options.size()); }