/* * MediaContainerTest.java * * Version 1.0 Nov 17, 2008 * * Copyright notice * * Brief description * * (c) 2008 by dbreuer */ package de.fhkoeln.cosima.media; import static org.junit.Assert.*; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import java.util.HashSet; import java.util.List; import java.util.Set; import org.junit.Before; import org.junit.Test; import de.fhkoeln.cosima.media.MediaComponent; import de.fhkoeln.cosima.media.MediaContainer; import de.fhkoeln.cosima.media.Media; import de.fhkoeln.cosima.media.Metadata; /** * Documentation comment without implementation details. * Use implementation comments to describe details of the implementation. * Comment lines should not be longer than 70 characters. * * @author dbreuer * @version 1.0 Nov 17, 2008 * */ public class MediaContainerTest { private MediaComponent data; private MediaComponent subContainer; private List<Metadata> metadataList; @Before public void setup() { this.data = mock(Media.class); this.subContainer = mock(MediaContainer.class); this.metadataList = mock(List.class); when(data.getName()).thenReturn("LeafMedia"); when(subContainer.getName()).thenReturn("ContainerMedia"); } @Test public void testShouldConsistsOfAbstractMediaObjects() { MediaContainer container = new MediaContainer(metadataList); assertTrue(container.size() == 0); container.addMedia(data); verify(data, times(1)).getName(); assertTrue(container.size() > 0); } @Test public void testShouldKnowAmountOfContainedElements() throws Exception { MediaContainer container = new MediaContainer(metadataList); container.addMedia(data); container.addMedia(subContainer); assertEquals(2, container.size()); } @Test public void testShouldGetMediaObjectsFromContainerByName() { MediaContainer container = new MediaContainer(metadataList); MediaComponent data = new Media(); data.setName("Foo Media"); container.addMedia(data); assertEquals(data.getName(), container.getMedia(data.getName()).getName()); } @Test public void testShouldGetNullIfMediaOfThatNameWasNotInTheContainer() { MediaContainer container = new MediaContainer(metadataList); assertNull(container.getMedia("Nothing.")); } @Test public void testShouldHaveSetOfNamesOfTheContainingElements() throws Exception { MediaContainer container = new MediaContainer(metadataList); container.addMedia(data); container.addMedia(subContainer); Set<String> expectedElements = new HashSet<String>(); expectedElements.add("LeafMedia"); expectedElements.add("ContainerMedia"); assertEquals(expectedElements, container.elements()); } }