예제 #1
0
        public void RegisterTest()
        {
            //注册空的Component,抛出异常
            IComponent expected = null;
            IComponent actual = null;
            bool ret = false;
            try
            {
                ComponentManager.Current.Register(expected);
            }
            catch (Exception)
            {
                ret = true;
            }
            Assert.IsTrue(ret);

            //注册同一命名空间下的BuidInfo
            expected = new BuildInfo();
            ComponentManager.Current.Register(expected);
            var components = ComponentManager.Current.GetCollection();
            Assert.AreEqual(components.Components.Count, 2);

            //说明注册进去了
            actual = ComponentManager.Current.GetComponent(expected.GetType().Name.ToLowerInvariant());
            Assert.IsInstanceOfType(actual, expected.GetType());

            //注册不同命名空间下的BuidInfo
            expected = new Arch.CFramework.AppInternals.Test.TestBean.BuildInfo();
            ComponentManager.Current.Register(expected);
            components = ComponentManager.Current.GetCollection();
            Assert.AreEqual(components.Components.Count, 3);

            //说明注册进去了
            //actual = ComponentManager.Current.GetComponent(expected.GetType().Name.ToLowerInvariant());
            //Assert.IsInstanceOfType(actual, expected.GetType());

        }
예제 #2
0
        public void GetComponentsTest()
        {
            ComponentContainer_Accessor target = new ComponentContainer_Accessor(); // TODO: Initialize to an appropriate value
            IEnumerable<IComponent> actual;

            //容器中注册两个容器
            IComponent component1 = new HostInfo();
            IComponent component2 = new BuildInfo();
            target.Register(component1);
            target.Register(component2);
            actual = target.GetComponents();
            //actual不为空
            Assert.IsNotNull(actual);
            //actual个数为2
            int result=0;
            using (IEnumerator<IComponent> enumerator = actual.GetEnumerator())
            {
                while (enumerator.MoveNext())
                    result++;
            }
            Assert.AreEqual(result, 2);
            //actual中含有HostInfo和BuildInfo
            bool ret=false;
            using (IEnumerator<IComponent> enumerator = actual.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    if (enumerator.Current.GetType().Name.Equals(component1.GetType().Name))
                    {
                        ret = true; break;
                    }
                }
            }
            Assert.IsTrue(ret);
            ret = false;
            using (IEnumerator<IComponent> enumerator = actual.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    if (enumerator.Current.GetType().Name.Equals(component2.GetType().Name))
                    {
                        ret = true; break;
                    }
                }
            }
            Assert.IsTrue(ret);
        }