text: /**
   * Licensed to The Apereo Foundation under one or more contributor license
   * agreements. See the NOTICE file distributed with this work for additional
   * information regarding copyright ownership.
   *
   *
   * The Apereo Foundation licenses this file to you under the Educational
   * Community License, Version 2.0 (the "License"); you may not use this file
   * except in compliance with the License. You may obtain a copy of the License
   * at:
   *
   *   http://opensource.org/licenses/ecl2.txt
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
   * License for the specific language governing permissions and limitations under
   * the License.
   *
   */
  
  
  package org.opencastproject.mediapackage;
  
  import static org.junit.Assert.assertEquals;
  import static org.opencastproject.mediapackage.MediaPackageElements.AUDIENCE_SOURCE;
  import static org.opencastproject.mediapackage.MediaPackageElements.PRESENTATION_SOURCE;
  import static org.opencastproject.mediapackage.MediaPackageElements.PRESENTER_SOURCE;
  
  import org.opencastproject.mediapackage.selector.TrackSelector;
  
  import org.junit.Before;
  import org.junit.Test;
  
  /**
   * Test case for {@link TrackSelector}.
   */
  public class TrackSelectorTest extends SimpleElementSelectorTest {
  
    /**
     * @throws java.lang.Exception
     */
    @Before
    public void setUp() throws Exception {
      selector = new TrackSelector();
      selector.addFlavor(PRESENTATION_SOURCE);
      selector.addFlavor(PRESENTER_SOURCE);
      setUpPreliminaries();
    }
  
    /**
     * Test method for
     * {@link org.opencastproject.mediapackage.selector.AbstractMediaPackageElementSelector#select(org.opencastproject.mediapackage.MediaPackage, boolean)}
     * .
     */
    @Test
    @Override
    public void testSelect() {
      assertEquals(2, selector.select(mediaPackage, true).size());
    }
  
    @Test
    public void testOnlyFlavorOrSelect() {
      assertEquals(2, selector.select(mediaPackage, false).size());
    }
  
    @Test
    public void testOnlyTagsAndSelect() {
      TrackSelector tagsSelector = new TrackSelector();
      tagsSelector.addTag(tag);
      assertEquals(1, tagsSelector.select(mediaPackage, true).size());
    }
  
    @Test
    public void testOnlyTagsOrSelect() {
      TrackSelector tagsSelector = new TrackSelector();
      tagsSelector.addTag(tag);
      assertEquals(1, tagsSelector.select(mediaPackage, false).size());
    }
  
    @Test
    public void testTagsOrFlavorSelect() {
      TrackSelector tagsSelector = new TrackSelector();
      tagsSelector.addTag(tag);
      tagsSelector.addFlavor(PRESENTATION_SOURCE);
      assertEquals(2, tagsSelector.select(mediaPackage, false).size());
    }
  
    @Test
    public void testTagsOrFlavorSelect2() {
      TrackSelector tagsSelector = new TrackSelector();
      tagsSelector.addTag(tag);
      tagsSelector.addFlavor(AUDIENCE_SOURCE);
      assertEquals(2, tagsSelector.select(mediaPackage, false).size());
    }
  
    @Test
    public void testTagsAndFlavorSelect() {
      TrackSelector tagsSelector = new TrackSelector();
      tagsSelector.addTag(tag);
      tagsSelector.addFlavor(PRESENTATION_SOURCE);
      assertEquals(1, tagsSelector.select(mediaPackage, true).size());
    }
  
    @Test
    public void testNoTagsOrFlavorSelect() {
      assertEquals(0, new TrackSelector().select(mediaPackage, false).size());
    }
  
    @Test
    public void testNoTagsAndFlavorSelect() {
      assertEquals(0, new TrackSelector().select(mediaPackage, true).size());
    }
  
  }
  