// // BinTest.cs: NUnit Test Suite for gstreamer-sharp // // Authors: // Aaron Bockover (abockover@novell.com) // Khaled Mohammed (Khaled.Mohammed@gmail.com) // // (C) 2006 Novell, Inc. // using System; using NUnit.Framework; using Gst; using Gst.CorePlugins; [TestFixture] public class BinTest { [TestFixtureSetUp] public void Init() { Application.Init(); } [Test] public void TestAdd() { Bin bin = new Bin("test-bin"); Element e1 = new FakeSrc("fakesrc"); Element e2 = new FakeSink("fakesink"); Assert.IsNotNull(bin, "Could not create bin"); Assert.IsNotNull(e1, "Could not create fakesrc"); Assert.IsNotNull(e2, "Could not create fakesink"); bin.Add(e1, e2); Assert.AreEqual(bin.ChildrenCount, 2); } [Test] public void TestAddRemove() { Bin bin = ElementFactory.Make("bin") as Bin; Assert.IsNotNull(bin, "Could not create bin"); Element e1 = new FakeSrc("fakesrc"); Element e2 = new Identity("identity"); Element e3 = new FakeSink("fakesink"); Assert.IsNotNull(e1, "Could not create fakesrc"); Assert.IsNotNull(e2, "Could not create identity"); Assert.IsNotNull(e3, "Could not create fakesink"); bin.Add(e1, e2, e3); Element.Link(e1, e2, e3); Assert.AreEqual(bin.ChildrenCount, 3); bin.Remove(e2, e3); Assert.AreEqual(bin.ChildrenCount, 1); bin.Add(e2); Assert.AreEqual(bin.ChildrenCount, 2); bin.Remove(e1, e2); Assert.AreEqual(bin.ChildrenCount, 0); } [Test] public void TestGetByName() { Bin bin = new Bin("test-bin"); Element e1 = ElementFactory.Make("fakesrc", "element-name"); bin.Add(e1); e1 = bin.GetByName("element-name"); Assert.IsNotNull(e1); Assert.AreEqual(e1.Name, "element-name"); } [Test] public void TestGetChildByIndex() { Bin bin = new Bin("test-bin"); Element [] elements = new Element [] { ElementFactory.Make("fakesrc", "fakesrc"), ElementFactory.Make("audioconvert", "audioconvert"), ElementFactory.Make("wavenc", "wavenc"), ElementFactory.Make("fakesink", "fakesink") }; foreach(Element element in elements) { bin.Add(element); } Assert.AreEqual(elements.Length, bin.ChildrenCount); for(uint i = 0; i < elements.Length; i++) { Assert.AreEqual(elements[elements.Length - i - 1], bin.GetChildByIndex(i)); } } }