package org.red5.server.stream;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.red5.server.api.scope.IScope;
import org.red5.server.api.scope.ScopeType;
import org.red5.server.api.stream.IServerStream;
import org.red5.server.api.stream.support.SimplePlayItem;
import org.red5.server.api.stream.support.StreamUtils;
import org.red5.server.scope.GlobalScope;
import org.red5.server.scope.Scope;
public class ServerStreamTest {
private IServerStream serverStream;
@Before
public void setUp() throws Exception {
IScope scope = new Scope.Builder((IScope) new GlobalScope(), ScopeType.APPLICATION, "testapp", false).build();
serverStream = StreamUtils.createServerStream(scope, "test");
}
@After
public void tearDown() throws Exception {
serverStream.removeAllItems();
}
@Test
public void testAddItemIPlayItem() {
SimplePlayItem item = SimplePlayItem.build("f1");
serverStream.addItem(item);
assertTrue(serverStream.getCurrentItemIndex() == 0);
SimplePlayItem item2 = SimplePlayItem.build("f2");
serverStream.addItem(item2);
assertTrue(serverStream.getCurrentItemIndex() == 0);
assertTrue(serverStream.getItemSize() == 2);
}
@Test
public void testAddItemIPlayItemInt() {
SimplePlayItem item = SimplePlayItem.build("f1");
serverStream.addItem(item);
SimplePlayItem item2 = SimplePlayItem.build("f2");
serverStream.addItem(item2);
SimplePlayItem item3 = SimplePlayItem.build("f3");
serverStream.addItem(item3, 0);
System.out.println("Items: " + ((ServerStream) serverStream).getItems());
assertTrue(serverStream.getItemSize() == 3);
assertTrue("f1".equals(serverStream.getItem(1).getName()));
}
@Test
public void testRemoveItem() {
SimplePlayItem item = SimplePlayItem.build("f1");
serverStream.addItem(item);
SimplePlayItem item2 = SimplePlayItem.build("f2");
serverStream.addItem(item2);
assertTrue(serverStream.getItemSize() == 2);
serverStream.removeItem(0);
assertTrue(serverStream.getItemSize() == 1);
}
@Test
public void testRemoveAllItems() {
SimplePlayItem item = SimplePlayItem.build("f1");
serverStream.addItem(item);
assertTrue(serverStream.getItemSize() == 1);
serverStream.removeAllItems();
assertTrue(serverStream.getItemSize() == 0);
assertTrue(serverStream.getCurrentItemIndex() == 0);
}
@Test
public void testGetCurrentItem() {
SimplePlayItem item = SimplePlayItem.build("f1");
serverStream.addItem(item);
serverStream.start();
assertEquals(item, serverStream.getCurrentItem());
}
@Test
public void testGetItem() {
SimplePlayItem item = SimplePlayItem.build("f1");
serverStream.addItem(item);
assertTrue("f1".equals(serverStream.getItem(0).getName()));
}
@Test
public void testNextItem() {
SimplePlayItem item = SimplePlayItem.build("f1");
serverStream.addItem(item);
SimplePlayItem item2 = SimplePlayItem.build("f2");
serverStream.addItem(item2);
serverStream.start();
serverStream.nextItem();
assertEquals(1, serverStream.getCurrentItemIndex());
assertEquals("f2", serverStream.getCurrentItem().getName());
}
}