@Test public void throwsAnInvalidEntityExceptionForInvalidRequestEntities() throws Exception { final Annotation valid = Mockito.mock(Annotation.class); Mockito.doReturn(Valid.class).when(valid).annotationType(); final ByteArrayInputStream entity = new ByteArrayInputStream("<Example xmlns=\"\"><id>-1</id></Example>".getBytes()); try { final Class<?> klass = Example.class; provider.readFrom((Class<Object>) klass, Example.class, new Annotation[] {valid}, MediaType.APPLICATION_XML_TYPE, new MultivaluedHashMap<>(), entity); failBecauseExceptionWasNotThrown(ConstraintViolationException.class); } catch (ConstraintViolationException e) { assertThat(ConstraintViolations.formatUntyped(e.getConstraintViolations())) .containsOnly("id must be greater than or equal to 0"); } }
@Test public void throwsAnInvalidEntityExceptionForPartialValidatedRequestEntities() throws Exception { final Validated valid = Mockito.mock(Validated.class); Mockito.doReturn(Validated.class).when(valid).annotationType(); Mockito.when(valid.value()).thenReturn(new Class[] {Partial1.class, Partial2.class}); final ByteArrayInputStream entity = new ByteArrayInputStream("<Example xmlns=\"\"><id>1</id></Example>".getBytes()); try { final Class<?> klass = PartialExample.class; provider.readFrom((Class<Object>) klass, PartialExample.class, new Annotation[] {valid}, MediaType.APPLICATION_XML_TYPE, new MultivaluedHashMap<>(), entity); failBecauseExceptionWasNotThrown(ConstraintViolationException.class); } catch (ConstraintViolationException e) { assertThat(ConstraintViolations.formatUntyped(e.getConstraintViolations())) .containsOnly("text may not be null"); } }