Commit 27bee6c9 authored by Filippo Carone's avatar Filippo Carone

more unit test and functions for media list

parent 974a399a
......@@ -54,12 +54,18 @@ public class MediaList
eventManager = jvlc.getLibvlc().libvlc_media_list_event_manager(instance, exception);
}
public void addMedia(String media)
/**
* @param mrl The media resource locator to add to the media list.
*/
public void addMedia(String mrl)
{
MediaDescriptor descriptor = new MediaDescriptor(jvlc, media);
MediaDescriptor descriptor = new MediaDescriptor(jvlc, mrl);
addMedia(descriptor);
}
/**
* @param descriptor The media descriptor to add to the media list.
*/
public void addMedia(MediaDescriptor descriptor)
{
if (items.contains(descriptor.getMrl()))
......@@ -71,27 +77,47 @@ public class MediaList
jvlc.getLibvlc().libvlc_media_list_add_media_descriptor(instance, descriptor.getInstance(), exception);
}
public int itemsCount()
/**
* @return The current number of items in the media list.
*/
public int size()
{
libvlc_exception_t exception = new libvlc_exception_t();
return jvlc.getLibvlc().libvlc_media_list_count(instance, exception);
}
/**
* @param descriptor The media descriptor to get the index of.
* @return The index of the media descriptor, or -1 if not found.
*/
public int indexOf(MediaDescriptor descriptor)
{
libvlc_exception_t exception = new libvlc_exception_t();
return jvlc.getLibvlc().libvlc_media_list_index_of_item(instance, descriptor.getInstance(), exception);
}
/**
* @param index The index of the media descriptor to get.
* @return The media descriptor at the given index.
* @throws IndexOutOfBoundsException if index is bigger than size() or < 0, or there are no items in the media_list.
*/
public MediaDescriptor getMediaDescriptorAtIndex(int index)
{
libvlc_exception_t exception = new libvlc_exception_t();
if (size() == 0)
{
throw new IndexOutOfBoundsException();
}
if (index < 0 || index > size())
{
throw new IndexOutOfBoundsException();
}
LibVlcMediaDescriptor descriptor = jvlc.getLibvlc().libvlc_media_list_item_at_index(instance, index, exception);
return new MediaDescriptor(jvlc, descriptor);
}
/**
* @param index The index of the media to remove
* @param index The index of the media to remove.
* @return True if the media was successfully removed, false otherwise.
*/
public boolean removeMedia(int index)
......@@ -107,7 +133,7 @@ public class MediaList
}
/**
* @param media The media descriptor mrl
* @param media The media descriptor mrl.
*/
public boolean removeMedia(String mrl)
{
......@@ -119,6 +145,35 @@ public class MediaList
return removeMedia(index);
}
/**
* @param mediaDescriptor The media descriptor to remove.
*/
public boolean removeMedia(MediaDescriptor mediaDescriptor)
{
String mrl = mediaDescriptor.getMrl();
int index = items.indexOf(mrl);
if (index == -1)
{
return false;
}
return removeMedia(index);
}
/**
* Removes all items from the media list.
*/
public void clear()
{
for (int i = 0; i < size(); i++)
{
removeMedia(i);
}
}
/**
* @param descriptor The media descriptor to insert.
* @param index The index of the inserted media descriptor.
*/
public void insertMediaDescriptor(MediaDescriptor descriptor, int index)
{
libvlc_exception_t exception = new libvlc_exception_t();
......@@ -146,18 +201,6 @@ public class MediaList
return instance;
}
/**
* @param mediaDescriptor
*/
public boolean removeMedia(MediaDescriptor mediaDescriptor)
{
String mrl = mediaDescriptor.getMrl();
int index = items.indexOf(mrl);
if (index == -1)
{
return false;
}
return removeMedia(index);
}
}
......@@ -48,7 +48,7 @@ public class MediaListTest
{
MediaList mlist = new MediaList(jvlc);
mlist.addMedia(mrl);
Assert.assertEquals(1, mlist.itemsCount());
Assert.assertEquals(1, mlist.size());
}
@Test
......@@ -56,13 +56,13 @@ public class MediaListTest
{
MediaList mlist = new MediaList(jvlc);
mlist.addMedia(mrl);
Assert.assertEquals(1, mlist.itemsCount());
Assert.assertEquals(1, mlist.size());
mlist.addMedia(mrl);
Assert.assertEquals(1, mlist.itemsCount());
Assert.assertEquals(1, mlist.size());
mlist.addMedia(new MediaDescriptor(jvlc, mrl));
Assert.assertEquals(1, mlist.itemsCount());
Assert.assertEquals(1, mlist.size());
mlist.addMedia("non-existing");
Assert.assertEquals(2, mlist.itemsCount());
Assert.assertEquals(2, mlist.size());
}
@Test
......@@ -70,9 +70,9 @@ public class MediaListTest
{
MediaList mlist = new MediaList(jvlc);
mlist.addMedia(mrl);
Assert.assertEquals(1, mlist.itemsCount());
Assert.assertEquals(1, mlist.size());
mlist.removeMedia(0);
Assert.assertEquals(0, mlist.itemsCount());
Assert.assertEquals(0, mlist.size());
}
@Test
......@@ -80,25 +80,25 @@ public class MediaListTest
{
MediaList mlist = new MediaList(jvlc);
mlist.addMedia(mrl);
Assert.assertEquals(1, mlist.itemsCount());
Assert.assertEquals(1, mlist.size());
mlist.removeMedia(0);
Assert.assertEquals(0, mlist.itemsCount());
Assert.assertEquals(0, mlist.size());
mlist.addMedia(mrl);
mlist.removeMedia(0);
Assert.assertEquals(0, mlist.itemsCount());
Assert.assertEquals(0, mlist.size());
mlist.addMedia(new MediaDescriptor(jvlc, mrl));
mlist.removeMedia(0);
Assert.assertEquals(0, mlist.itemsCount());
Assert.assertEquals(0, mlist.size());
mlist.addMedia(new MediaDescriptor(jvlc, mrl));
mlist.removeMedia(mrl);
Assert.assertEquals(0, mlist.itemsCount());
Assert.assertEquals(0, mlist.size());
mlist.addMedia(new MediaDescriptor(jvlc, mrl));
mlist.removeMedia(new MediaDescriptor(jvlc, mrl));
Assert.assertEquals(0, mlist.itemsCount());
Assert.assertEquals(0, mlist.size());
}
@Test
......@@ -109,5 +109,33 @@ public class MediaListTest
Assert.assertFalse(result);
}
@Test
public void mediaListIndexOfNonExistingMediaDescriptor()
{
MediaList mlist = new MediaList(jvlc);
MediaDescriptor md = new MediaDescriptor(jvlc, "dummy");
int result = mlist.indexOf(md);
Assert.assertEquals(-1, result);
}
@Test(expected = IndexOutOfBoundsException.class)
public void mediaListGetMediaDesciptorAtInvalidIndex()
{
MediaList mlist = new MediaList(jvlc);
mlist.getMediaDescriptorAtIndex(5);
}
@Test(expected = IndexOutOfBoundsException.class)
public void mediaListGetMediaDesciptorAtInvalidIndex2()
{
MediaList mlist = new MediaList(jvlc);
mlist.getMediaDescriptorAtIndex(-5);
}
@Test(expected = IndexOutOfBoundsException.class)
public void mediaListGetMediaDesciptorAtInvalidIndex3()
{
MediaList mlist = new MediaList(jvlc);
mlist.getMediaDescriptorAtIndex(0);
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment