/*
* AbstractMediaTest.java
*
* Version 1.0 Jun 5, 2008
*
* Test Class for the AbstractMedia Class.
*
* (c) 2008 by dbreuer
*/
package de.fhkoeln.cosima.media;
import static org.mockito.Mockito.*;
import static org.junit.Assert.*;
import java.util.NoSuchElementException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.MockitoAnnotations;
import org.mockito.MockitoAnnotations.Mock;
public class AbstractMediaTest {
@Mock private Metadata metadataMock;
@Mock private MediaIO mediaIOMock;
private AbstractMedia abstractMedia;
@Before
public void setUp() throws Exception {
this.abstractMedia = new AbstractMedia("cosima://test.cosima-framework.com/media/23");
}
@Before
public void initMocks() {
MockitoAnnotations.initMocks(this);
}
@After
public void tearDown() throws Exception {}
/**
* Test method for {@link de.fhkoeln.cosima.media.AbstractMedia#getListOfMetadataKeys()}.
*/
@Test
public void testShouldHaveListOfMetadataKeys() {
assertTrue(abstractMedia.getListOfMetadataKeys() != null);
}
/**
* Test method for {@link de.fhkoeln.cosima.media.AbstractMedia#addMetadata(Metadata)}.
*/
@Test
public void testShouldHaveMetadata() {
stub(metadataMock.getKey()).toReturn(MediaMetadataKeys.VIDEO);
abstractMedia.addMetadata(metadataMock);
assertTrue(abstractMedia.getListOfMetadataKeys().contains(MediaMetadataKeys.VIDEO));
}
/**
* Test method for {@link de.fhkoeln.cosima.media.AbstractMedia#getMetadata(MetadataKeys)}.
*/
@Test(expected=NoSuchElementException.class)
public void testShouldThrowNoSuchElementExceptionIfKeyWasNotFoundInMetadataMap() {
abstractMedia.getMetadata(MediaMetadataKeys.TEXT);
}
/**
* Test method for {@link de.fhkoeln.cosima.media.AbstractMedia#}.
*/
@Test
public void testShouldHaveAnMediaIOImplementation() throws Exception {
AbstractMedia abstractMedia = mock(AbstractMedia.class);
fail("MediaIO Implmentation still missing");
// verify(mediaIOMock).getMediaLocator();
// assertEquals(new MediaLocator(), abstractMedia.getMediaLocator());
}
/**
* Test method for {@link de.fhkoeln.cosima.media.AbstractMedia#getMetadata(MetadataKeys)}.
*/
@Test
public void testShouldReturnMetadataObjectForGivenMetadataKey() {
stub(metadataMock.getKey()).toReturn(MediaMetadataKeys.VIDEO);
abstractMedia.addMetadata(metadataMock);
assertEquals(metadataMock, abstractMedia.getMetadata(MediaMetadataKeys.VIDEO));
}
/**
* Test method for {@link de.fhkoeln.cosima.media.AbstractMedia#AbstractMedia(String)}.
*/
@Test
public void testShouldSetUriThroughConstructor() {
AbstractMedia abstractMedia = new AbstractMedia("cosima://test.cosima-framework.com/media/42");
assertEquals("cosima://test.cosima-framework.com/media/42", abstractMedia.getUri());
}
}