Add() public method

public Add ( ComponentName name, IHandler handler ) : void
name ComponentName
handler IHandler
return void
		public void Usage()
		{
			BinaryTreeComponentName tree = new BinaryTreeComponentName();

			DefaultHandler handler1 = new DefaultHandler(
				new ComponentModel("A", typeof(DefaultHandler), typeof(DefaultHandler)));
			DefaultHandler handler2 = new DefaultHandler(
				new ComponentModel("B", typeof(DefaultHandler), typeof(DefaultHandler)));
			DefaultHandler handler3 = new DefaultHandler(
				new ComponentModel("C", typeof(DefaultHandler), typeof(DefaultHandler)));
			DefaultHandler handler4 = new DefaultHandler(
				new ComponentModel("D", typeof(DefaultHandler), typeof(DefaultHandler)));
			DefaultHandler handler5 = new DefaultHandler(
				new ComponentModel("E", typeof(DefaultHandler), typeof(DefaultHandler)));
			DefaultHandler handler6 = new DefaultHandler(
				new ComponentModel("F", typeof(DefaultHandler), typeof(DefaultHandler)));

			tree.Add(new ComponentName("protocolhandler"), handler1);
			tree.Add(new ComponentName("protocolhandler:key=1"), handler2);
			tree.Add(new ComponentName("protocolhandler:key=2"), handler3);
			tree.Add(new ComponentName("protocolhandler:key=2,secure=true"), handler4);
			tree.Add(new ComponentName("modelmanager"), handler5);
			tree.Add(new ComponentName("viewmanager"), handler6);

			Assert.AreSame(handler1, tree.GetHandler(new ComponentName("protocolhandler")));
			Assert.AreSame(handler2, tree.GetHandler(new ComponentName("protocolhandler:key=1")));
			Assert.AreSame(handler3, tree.GetHandler(new ComponentName("protocolhandler:key=2")));
			Assert.AreSame(handler4, tree.GetHandler(new ComponentName("protocolhandler:key=2,secure=true")));
			Assert.AreSame(handler5, tree.GetHandler(new ComponentName("modelmanager")));
			Assert.AreSame(handler6, tree.GetHandler(new ComponentName("viewmanager")));

			IHandler[] handlers = tree.GetHandlers(new ComponentName("protocolhandler"));

			Assert.AreEqual(4, handlers.Length);
			Assert.AreSame(handler1, handlers[0]);
			Assert.AreSame(handler2, handlers[1]);
			Assert.AreSame(handler3, handlers[2]);
			Assert.AreSame(handler4, handlers[3]);

			handlers = tree.GetHandlers(new ComponentName("protocolhandler:*"));

			Assert.AreEqual(4, handlers.Length);
			Assert.AreSame(handler1, handlers[0]);
			Assert.AreSame(handler2, handlers[1]);
			Assert.AreSame(handler3, handlers[2]);
			Assert.AreSame(handler4, handlers[3]);

			handlers = tree.GetHandlers(new ComponentName("protocolhandler:secure=true"));

			Assert.AreEqual(1, handlers.Length);
			Assert.AreSame(handler4, handlers[0]);

			handlers = tree.GetHandlers(new ComponentName("protocolhandler:key=2"));

			Assert.AreEqual(2, handlers.Length);
			Assert.AreSame(handler3, handlers[0]);
			Assert.AreSame(handler4, handlers[1]);
		}
		public void RemoveUnbalancedRoot()
		{
			BinaryTreeComponentName tree = new BinaryTreeComponentName();
			DefaultHandler handler1 = new DefaultHandler(new ComponentModel("A", typeof(DefaultHandler), typeof(DefaultHandler)));
			tree.Add(new ComponentName("1000"), handler1);
			tree.Add(new ComponentName("7500"), handler1);
			tree.Add(new ComponentName("6000"), handler1);
			tree.Add(new ComponentName("2000"), handler1);

			tree.Remove(new ComponentName("1000"));
			assertRemoved(tree, 3, new ComponentName("1000"), new ComponentName("6000"));
		}
		public void ComponentNameEmptyProperties()
		{
			BinaryTreeComponentName tree = new BinaryTreeComponentName();
			DefaultHandler handler1 = new DefaultHandler(new ComponentModel("A", typeof(DefaultHandler), typeof(DefaultHandler)));
			DefaultHandler handler2 = new DefaultHandler(new ComponentModel("B", typeof(DefaultHandler), typeof(DefaultHandler)));
			tree.Add(new ComponentName("protocolhandler:key=1"), handler2);
			tree.Add(new ComponentName("protocolhandler"), handler1);

			Assert.AreEqual(handler1, tree.GetHandler(new ComponentName("protocolhandler")));
		}
		public void RemoveBranchNode()
		{
			BinaryTreeComponentName tree = new BinaryTreeComponentName();
			DefaultHandler handler1 = new DefaultHandler(new ComponentModel("A", typeof(DefaultHandler), typeof(DefaultHandler)));

			tree.Add(new ComponentName("1000"), handler1);

			tree.Add(new ComponentName("0500"), handler1);
			tree.Add(new ComponentName("0700"), handler1);
			tree.Add(new ComponentName("0800"), handler1);

			tree.Add(new ComponentName("0400"), handler1);

			tree.Remove(new ComponentName("0500"));
			assertRemoved(tree, 4, new ComponentName("0500"), new ComponentName("0800"));
		}
		public void RemoveNodeWithSiblings()
		{
			BinaryTreeComponentName tree = new BinaryTreeComponentName();
			DefaultHandler handler1 = new DefaultHandler(new ComponentModel("A", typeof(DefaultHandler), typeof(DefaultHandler)));

			tree.Add(new ComponentName("1000"), handler1);
			tree.Add(new ComponentName("0500"), handler1);
			tree.Add(new ComponentName("0500:P=1"), handler1);
			tree.Add(new ComponentName("0500:p=2"), handler1);
			tree.Add(new ComponentName("0400"), handler1);

			tree.Remove(new ComponentName("0500"));
			Assert.AreEqual(4, tree.Count);
			Assert.AreEqual(4, tree.Handlers.Length);
			Assert.AreEqual(2, tree.GetHandlers(new ComponentName("0500")).Length);
			Assert.IsNotNull(tree.GetHandler(new ComponentName("0500:p=2")));
		}
		public void RemoveSibling()
		{
			BinaryTreeComponentName tree = new BinaryTreeComponentName();
			DefaultHandler handler1 = new DefaultHandler(new ComponentModel("A", typeof(DefaultHandler), typeof(DefaultHandler)));

			tree.Add(new ComponentName("1000"), handler1);
			tree.Add(new ComponentName("0500"), handler1);
			tree.Add(new ComponentName("0500:P=1"), handler1);
			tree.Add(new ComponentName("0500:p=2"), handler1);

			tree.Remove(new ComponentName("0500:p=2"));
			assertRemoved(tree, 3, new ComponentName("0500:P=2"), new ComponentName("0500:P=1"));
		}
Example #7
0
 public override IHandler this[String key]
 {
     set { tree.Add(ToComponentName(key), value); }
 }