### Question:
CheckExpressionOperandsSizeValidator implements ConstraintValidator<CheckExpressionOperandsSize,
        List<ClientExpression>>, ValidationErrorDescriptorBuilder { @Override public boolean isValid(List<ClientExpression> value, ConstraintValidatorContext context) { return value == null || value.size() >= annotationMin && value.size() <= annotationMax; }  @Override void initialize(CheckExpressionOperandsSize constraintAnnotation); @Override boolean isValid(List<ClientExpression> value, ConstraintValidatorContext context); @Override ErrorDescriptor build(ConstraintViolation violation);  }### Answer:
@Test public void isValid_operandsIsNull_returnTrue() { boolean valid = validator.isValid(null, validatorContext); assertTrue(valid); }
@Test public void isValid_operandsSizeIs1_returnTrue() { boolean valid = validator.isValid(Arrays.asList(mock(ClientExpression.class)), validatorContext); assertTrue(valid); }
@Test public void isValid_operandsSizeIs2_returnTrue() { boolean valid = validator.isValid(Arrays.asList(mock(ClientExpression.class), mock(ClientExpression.class)), validatorContext); assertTrue(valid); }
@Test public void isValid_operandsSizeIs0_returnFalse() { boolean valid = validator.isValid(new ArrayList<ClientExpression>(), validatorContext); assertFalse(valid); }
@Test public void isValid_operandsSizeIs3_returnFalse() { boolean valid = validator.isValid(Arrays.asList(mock(ClientExpression.class), mock(ClientExpression.class), mock(ClientExpression.class)), validatorContext); assertFalse(valid); }