### Question:
ProtoUtils { public static <B extends MessageLite.Builder> boolean update( Iterable<B> objs, Function<B, Boolean> updater) { checkNotNull(updater); boolean updated = false; for (B obj : objs) { updated |= updater.apply(obj); } return updated; } private  ProtoUtils(); @SuppressWarnings("unchecked") static O built(@Nullable I msg); @SuppressWarnings("unchecked") static O builder(
      @Nullable I msg); static boolean update(
      Iterable<B> objs, Function<B, Boolean> updater); static List<M> filter(List<M> objs, Predicate<M> filter); @Nullable static M filter(
      M msg, boolean clearEmpty, Predicate<FieldDescriptor> filter); static final Predicate<FieldDescriptor> NOT_EXTENSION; }### Answer:
@Test public void testUpdate() { BidRequest.Builder req = BidRequest.newBuilder().setId("0"); ProtoUtils.update(ImmutableList.of(req), reqBuilder -> { reqBuilder.setAt(AuctionType.FIRST_PRICE); return true; }); assertThat(req.getAt()).isSameInstanceAs(AuctionType.FIRST_PRICE); }