### Question:
InputEntityDecorators { public static Decorator decorators( final Decorator... decorators ) { return new Decorator() { @Override public InputEntityVisitor apply( InputEntityVisitor from ) { for ( Decorator decorator : decorators ) { from = decorator.apply( from ); } return from; } @Override public boolean isMutable() { return Stream.of( decorators ).anyMatch( Decorator::isMutable ); } }; } private  InputEntityDecorators(); static Decorator additiveLabels( final String[] labelNamesToAdd ); static Decorator defaultRelationshipType( final String defaultType ); static Decorator decorators( final Decorator... decorators ); static final Decorator NO_DECORATOR; }### Answer:
@Test public void shouldCramMultipleDecoratorsIntoOne() { Decorator decorator1 = spy( new IdentityDecorator() ); Decorator decorator2 = spy( new IdentityDecorator() ); Decorator multi = decorators( decorator1, decorator2 ); InputEntityVisitor node = mock( InputEntityVisitor.class ); multi.apply( node ); InOrder order = inOrder( decorator1, decorator2 ); order.verify( decorator1, times( 1 ) ).apply( node ); order.verify( decorator2, times( 1 ) ).apply( node ); order.verifyNoMoreInteractions(); }