summaryrefslogtreecommitdiff
path: root/tests/BinTest.cs
blob: de4069869928ad786aa09cbc381d5cb7769e2156 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
//
// 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));
		}
	}
}