title: Validate array contains one of each object with specific properties and values
body: <p>I looked in the class-validators samples and docs but cant find the validation I need.</p>
  <p>I have an array of object literals each with specific properties and values.</p>
  <pre><code>const comboItems = [{itemType: 'Entree'}, {itemType: 'Side'}, {itemType: 'Beverage'}];
  </code></pre>
  <p>I want to validate that comboItems is not empty and contains a min and max of 3 objects AND  that there is an itemType === 'Entree' AND an itemType==='Side' AND an itemType==='Beverage'</p>
  <p>This is the class I've created which isnt giving the correct validation:</p>
  <pre><code>import {validate, ArrayContains, ArrayNotEmpty, ArrayMinSize, ArrayMaxSize} from 'class-validator';
  import { plainToClass } from 'class-transformer';
  
  export class MealMenuItem {
      @ArrayContains([{itemType: 'Entree'}, {itemType: 'Side'}, {itemType: 'Beverage'}])
      @ArrayNotEmpty()
      @ArrayMinSize(3)
      @ArrayMaxSize(3)
      comboItems: any[];
  }
  
  const mealMenuItemData: any = {comboItems: [{itemType: 'Entree'}, {itemType: 'Side'}, {itemType: 'Beverage'}]};
  
  const mealMenuItemDataClassInstance = plainToClass(MealMenuItem, mealMenuItemData as MealMenuItem)
  
  validate(mealMenuItemDataClassInstance).then(errors =&gt; {
      if (errors.length &gt; 0) 
          console.log('validation failed. errors: ', JSON.stringify(errors));
      else 
          console.log('validation succeed');
  });
  
  </code></pre>
  <p>Thanks for any help!</p>