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 ...@@ -54,12 +54,18 @@ public class MediaList
eventManager = jvlc.getLibvlc().libvlc_media_list_event_manager(instance, exception); 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); addMedia(descriptor);
} }
/**
* @param descriptor The media descriptor to add to the media list.
*/
public void addMedia(MediaDescriptor descriptor) public void addMedia(MediaDescriptor descriptor)
{ {
if (items.contains(descriptor.getMrl())) if (items.contains(descriptor.getMrl()))
...@@ -71,27 +77,47 @@ public class MediaList ...@@ -71,27 +77,47 @@ public class MediaList
jvlc.getLibvlc().libvlc_media_list_add_media_descriptor(instance, descriptor.getInstance(), exception); 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(); libvlc_exception_t exception = new libvlc_exception_t();
return jvlc.getLibvlc().libvlc_media_list_count(instance, exception); 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) public int indexOf(MediaDescriptor descriptor)
{ {
libvlc_exception_t exception = new libvlc_exception_t(); libvlc_exception_t exception = new libvlc_exception_t();
return jvlc.getLibvlc().libvlc_media_list_index_of_item(instance, descriptor.getInstance(), exception); 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) public MediaDescriptor getMediaDescriptorAtIndex(int index)
{ {
libvlc_exception_t exception = new libvlc_exception_t(); 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); LibVlcMediaDescriptor descriptor = jvlc.getLibvlc().libvlc_media_list_item_at_index(instance, index, exception);
return new MediaDescriptor(jvlc, descriptor); 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. * @return True if the media was successfully removed, false otherwise.
*/ */
public boolean removeMedia(int index) public boolean removeMedia(int index)
...@@ -107,7 +133,7 @@ public class MediaList ...@@ -107,7 +133,7 @@ public class MediaList
} }
/** /**
* @param media The media descriptor mrl * @param media The media descriptor mrl.
*/ */
public boolean removeMedia(String mrl) public boolean removeMedia(String mrl)
{ {
...@@ -119,6 +145,35 @@ public class MediaList ...@@ -119,6 +145,35 @@ public class MediaList
return removeMedia(index); 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) public void insertMediaDescriptor(MediaDescriptor descriptor, int index)
{ {
libvlc_exception_t exception = new libvlc_exception_t(); libvlc_exception_t exception = new libvlc_exception_t();
...@@ -146,18 +201,6 @@ public class MediaList ...@@ -146,18 +201,6 @@ public class MediaList
return instance; 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 ...@@ -48,7 +48,7 @@ public class MediaListTest
{ {
MediaList mlist = new MediaList(jvlc); MediaList mlist = new MediaList(jvlc);
mlist.addMedia(mrl); mlist.addMedia(mrl);
Assert.assertEquals(1, mlist.itemsCount()); Assert.assertEquals(1, mlist.size());
} }
@Test @Test
...@@ -56,13 +56,13 @@ public class MediaListTest ...@@ -56,13 +56,13 @@ public class MediaListTest
{ {
MediaList mlist = new MediaList(jvlc); MediaList mlist = new MediaList(jvlc);
mlist.addMedia(mrl); mlist.addMedia(mrl);
Assert.assertEquals(1, mlist.itemsCount()); Assert.assertEquals(1, mlist.size());
mlist.addMedia(mrl); mlist.addMedia(mrl);
Assert.assertEquals(1, mlist.itemsCount()); Assert.assertEquals(1, mlist.size());
mlist.addMedia(new MediaDescriptor(jvlc, mrl)); mlist.addMedia(new MediaDescriptor(jvlc, mrl));
Assert.assertEquals(1, mlist.itemsCount()); Assert.assertEquals(1, mlist.size());
mlist.addMedia("non-existing"); mlist.addMedia("non-existing");
Assert.assertEquals(2, mlist.itemsCount()); Assert.assertEquals(2, mlist.size());
} }
@Test @Test
...@@ -70,9 +70,9 @@ public class MediaListTest ...@@ -70,9 +70,9 @@ public class MediaListTest
{ {
MediaList mlist = new MediaList(jvlc); MediaList mlist = new MediaList(jvlc);
mlist.addMedia(mrl); mlist.addMedia(mrl);
Assert.assertEquals(1, mlist.itemsCount()); Assert.assertEquals(1, mlist.size());
mlist.removeMedia(0); mlist.removeMedia(0);
Assert.assertEquals(0, mlist.itemsCount()); Assert.assertEquals(0, mlist.size());
} }
@Test @Test
...@@ -80,25 +80,25 @@ public class MediaListTest ...@@ -80,25 +80,25 @@ public class MediaListTest
{ {
MediaList mlist = new MediaList(jvlc); MediaList mlist = new MediaList(jvlc);
mlist.addMedia(mrl); mlist.addMedia(mrl);
Assert.assertEquals(1, mlist.itemsCount()); Assert.assertEquals(1, mlist.size());
mlist.removeMedia(0); mlist.removeMedia(0);
Assert.assertEquals(0, mlist.itemsCount()); Assert.assertEquals(0, mlist.size());
mlist.addMedia(mrl); mlist.addMedia(mrl);
mlist.removeMedia(0); mlist.removeMedia(0);
Assert.assertEquals(0, mlist.itemsCount()); Assert.assertEquals(0, mlist.size());
mlist.addMedia(new MediaDescriptor(jvlc, mrl)); mlist.addMedia(new MediaDescriptor(jvlc, mrl));
mlist.removeMedia(0); mlist.removeMedia(0);
Assert.assertEquals(0, mlist.itemsCount()); Assert.assertEquals(0, mlist.size());
mlist.addMedia(new MediaDescriptor(jvlc, mrl)); mlist.addMedia(new MediaDescriptor(jvlc, mrl));
mlist.removeMedia(mrl); mlist.removeMedia(mrl);
Assert.assertEquals(0, mlist.itemsCount()); Assert.assertEquals(0, mlist.size());
mlist.addMedia(new MediaDescriptor(jvlc, mrl)); mlist.addMedia(new MediaDescriptor(jvlc, mrl));
mlist.removeMedia(new MediaDescriptor(jvlc, mrl)); mlist.removeMedia(new MediaDescriptor(jvlc, mrl));
Assert.assertEquals(0, mlist.itemsCount()); Assert.assertEquals(0, mlist.size());
} }
@Test @Test
...@@ -109,5 +109,33 @@ public class MediaListTest ...@@ -109,5 +109,33 @@ public class MediaListTest
Assert.assertFalse(result); 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