AcceptMediaTypeHeaderDelegate implements RuntimeDelegate.HeaderDelegate<AcceptMediaType> { @Override public String toString(AcceptMediaType acceptMediaType) { if (acceptMediaType == null) { throw new IllegalArgumentException(); } final Map<String, String> parameters = acceptMediaType.getParameters(); if (parameters.isEmpty() || (parameters.size() == 1 && parameters.containsKey(QVALUE))) { return acceptMediaType.getMediaType().toString(); } final Map<String, String> copyParameters = new LinkedHashMap<>(parameters); copyParameters.remove(QVALUE); return new MediaType(acceptMediaType.getType(), acceptMediaType.getSubtype(), copyParameters).toString(); }  @Override AcceptMediaType fromString(String header); @Override String toString(AcceptMediaType acceptMediaType);  }
@UseDataProvider("forTestAcceptMediaTypeToString") @Test public void testAcceptMediaTypeToString(AcceptMediaType acceptMediaType, String expectedResult) { AcceptMediaTypeHeaderDelegate headerDelegate = new AcceptMediaTypeHeaderDelegate(); assertEquals(expectedResult, headerDelegate.toString(acceptMediaType)); }
@Test(expected = IllegalArgumentException.class) public void throwExceptionWhenAcceptMediaTypeIsNull() { new AcceptMediaTypeHeaderDelegate().toString(null); }