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")));
		}
		private void assertRemoved(BinaryTreeComponentName tree, int expectedCount, ComponentName removed,
		                           ComponentName exists)
		{
			Assert.AreEqual(expectedCount, tree.Count);
			Assert.AreEqual(expectedCount, tree.Handlers.Length);
			Assert.IsNull(tree.GetHandler(removed));
			Assert.IsNotNull(tree.GetHandler(exists));
		}
		public void AccessEmptyTree()
		{
			BinaryTreeComponentName tree = new BinaryTreeComponentName();
			Assert.IsFalse(tree.Contains(new ComponentName("Test")));
		}
		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"));
		}
		public NamingPartsSubSystem()
		{
			tree = new BinaryTreeComponentName();
		}
Example #10
0
 public NamingPartsSubSystem()
 {
     tree = new BinaryTreeComponentName();
 }