### Question:
MultiValueRequestParameters implements RequestParameters { @Override public boolean addParameterEnumValues(final String parameter, final Enum<?>... values) { final List<String> valuesAsList = getVarArgsAsList(values); return addParameterValues(parameter, valuesAsList); } MultiValueRequestParameters(); @Override boolean isEmpty(); @Override boolean isEmpty(final String parameter); @Override boolean contains(final String parameter); @Override boolean isSingleValue(final String parameter); @Override boolean hasMultipleValues(final String parameter); @Override String getSingleValue(final String parameter); @Override Collection<String> getParameterNames(); @Override Collection<String> getAllValues(final String parameter); @Override boolean mergeWith(final RequestParameters parameters); @Override boolean addParameterValue(final String parameter, final String value); @Override boolean addParameterEnumValues(final String parameter, final Enum<?>... values); @Override boolean addParameterStringValues(final String parameter, final String... values); @Override boolean addParameterValues(final String parameter, final Iterable<String> values); @Override Collection<String> remove(final String parameter); @Override void removeAll(); static final String SERVICE_VERSION; static final String SERVICE_TYPE; }### Answer:
@Test public void shouldPreserveOrderWhenAddingMultipleValuesViaEnumVarArgs() { requestParameters.addParameterEnumValues("keys", SERVICE, VERSION); final Collection<String> versions = getValueCollectionFor("keys"); final Iterator<String> iterator = versions.iterator(); assertThat(iterator.next(), is("service")); assertThat(iterator.next(), is("version")); }