### Question:
MultipartBodyPublisher implements MimeBodyPublisher { @Override public MediaType mediaType() { return mediaType; } private  MultipartBodyPublisher(List<Part> parts, MediaType mediaType); String boundary(); List<Part> parts(); @Override MediaType mediaType(); @Override long contentLength(); @Override void subscribe(Subscriber<? super ByteBuffer> subscriber); static Builder newBuilder();  }### Answer:
@Test void defaultMediaType() { var type = onePart().build().mediaType(); assertEquals("multipart", type.type()); assertEquals("form-data", type.subtype()); }
@Test void customSubtype() { var type = onePart() .mediaType(MediaType.parse("multipart/mixed")) .build() .mediaType(); assertEquals("mixed", type.subtype()); }
@Test void invalidMediaType() { assertIllegalArg(() -> onePart().mediaType(MediaType.parse("text/plain"))); }