### Question:
Headers implements Recyclable, Iterable<Headers.Header> { public void copyFrom(Headers other) { textHeaders.copyFrom(other.textHeaders); binaryHeaders.copyFrom(other.binaryHeaders); }  void add(String key, String value); boolean add(String key, byte[] value); @Override void resetState(); int size(); boolean isEmpty(); @Override Iterator<Header> iterator(); void copyFrom(Headers other);  }### Answer:
@SuppressWarnings("ConstantConditions") @Test void testCopyFrom() { Headers copy = new Headers(); copy.add("bin2", "bin-val2".getBytes()); copy.add("text2", "text-val2"); copy.copyFrom(headers); assertThat(copy.size()).isEqualTo(4); Iterator<Headers.Header> iterator = copy.iterator(); Headers.Header header = iterator.next(); assertThat(header.getKey()).isEqualTo("text0"); assertThat(header.getValue().toString()).isEqualTo("text-val0"); header = iterator.next(); assertThat(header.getKey()).isEqualTo("text1"); assertThat(header.getValue().toString()).isEqualTo("text-val1"); header = iterator.next(); assertThat(header.getKey()).isEqualTo("bin0"); assertThat(header.getValue().toString()).isEqualTo("bin-val0"); header = iterator.next(); assertThat(header.getKey()).isEqualTo("bin1"); assertThat(header.getValue().toString()).isEqualTo("bin-val1"); }