示例#1
0
文件: IListTest.cs 项目: nidarg/DLL
        public void TestExceptionAtSetAtWrongIndex()
        {
            var sut = new IListCollection <int>();

            sut.Add(0);
            sut.Add(2);
            sut.Add(3);
            Assert.Throws <ArgumentOutOfRangeException>(() => sut[5] = 3);
        }
        private IList GetEntryPointList(IBoard board)
        {
            Task <IListCollection> task = this.GetTasks(board);

            task.Wait();

            IListCollection lists = task.Result;

            return(lists[0]);
        }
示例#3
0
文件: IListTest.cs 项目: nidarg/DLL
        public void TestExceptionAtInsertAtWrongIndex()
        {
            var sut = new IListCollection <int>();

            sut.Add(0);
            sut.Add(2);
            sut.Add(3);
            Action act       = () => sut.Insert(5, 5);
            var    exception = Assert.Throws <ArgumentOutOfRangeException>(act);

            Assert.Equal("index", exception.ParamName);
        }
示例#4
0
文件: IListTest.cs 项目: nidarg/DLL
        public void TestCopyToArgumentOutOfRangeException()
        {
            var sut = new IListCollection <int>();

            sut.Add(0);
            sut.Add(2);
            sut.Add(3);
            int[]  arr       = new int[10];
            Action act       = () => sut.CopyTo(arr, -1);
            var    exception = Assert.Throws <ArgumentOutOfRangeException>(act);

            Assert.Equal("arrayIndex", exception.ParamName);
        }
示例#5
0
文件: IListTest.cs 项目: nidarg/DLL
        public void TestCopyToArgumentNullException()
        {
            var sut = new IListCollection <int>();

            sut.Add(0);
            sut.Add(2);
            sut.Add(3);
            int[]  arr       = null;
            Action act       = () => sut.CopyTo(arr, 0);
            var    exception = Assert.Throws <ArgumentNullException>(act);

            Assert.Equal("array", exception.ParamName);
        }
示例#6
0
文件: IListTest.cs 项目: nidarg/DLL
        public void TestCopyToArgumentException()
        {
            var sut = new IListCollection <int>();

            sut.Add(0);
            sut.Add(2);
            sut.Add(3);
            int[]  arr       = new int[2];
            Action act       = () => sut.CopyTo(arr, 1);
            var    exception = Assert.Throws <ArgumentException>(act);

            Assert.Equal("Not enough space to copy all elements", exception.Message);
        }
示例#7
0
文件: IListTest.cs 项目: nidarg/DLL
        public void TestNotSuportedExceptionAtRemoveAt()
        {
            var sut = new IListCollection <int>();

            sut.Add(0);
            sut.Add(2);
            sut.Add(3);
            sut.ReadOnly();

            Action act       = () => sut.RemoveAt(2);
            var    exception = Assert.Throws <NotSupportedException>(act);

            Assert.Equal("The collection is read only", exception.Message);
        }
示例#8
0
文件: IListTest.cs 项目: nidarg/DLL
        public void AddValueAndResizeSortedArray()
        {
            var sut = new IListCollection <int>();

            sut.Add(0);
            sut.Add(2);
            sut.Add(3);
            sut.Add(4);
            sut.Add(1);
            sut.Add(6);
            sut.Add(7);
            sut.Add(8);
            sut.Add(9);
            sut.Add(10);       //- 0,2,3,4,1,6,7,8,9,10
            sut.Insert(5, 5);  //- 0,2,3,4,1,5,6,7,8,9,10
            sut.RemoveAt(10);  //- 0,2,3,4,5,6,7,8,9
            sut.Remove(8);     //- 0,2,3,4,5,6,7,9
            Assert.Equal(2, sut[1]);
            Assert.Equal(5, sut[5]);
            Assert.Equal(7, sut[7]);
            Assert.Equal(9, sut[8]);

            Assert.Equal(2, sut.IndexOf(3));
        }
示例#9
0
        /// <summary>
        /// Objects from meta entity.
        /// </summary>
        /// <param name="entity">The entity.</param>
        /// <param name="output">The output.</param>
        /// <param name="provider">The provider.</param>
        /// <returns></returns>
        public Object ObjectFromMetaEntity(MetaEntity entity, Object output, TypedObjectProvider provider)
        {
            if (provider == null)
            {
                provider = GetProviderForEntityClass(entity.EntityClassDefinition);
            }

            if (output == null)
            {
                output = provider.type.getInstance(null);
            }

            DeploySetters(output, entity, provider);

            foreach (TypePropertyMapItem item in provider.items)
            {
                if (item.metaPropertyName == ".")
                {
                    Object typeTarget = item.propertyInfo.GetValue(output, null);
                    DeploySetters(typeTarget, entity, item.TypeProvider);
                }
                else
                {
                    if (item.metaProperty.type.HasFlag(MetaEntityClassPropertyType.value))
                    {
                        if (item.metaProperty.type.HasFlag(MetaEntityClassPropertyType.collection))
                        {
                        }
                        else
                        {
                        }
                    }
                    else if (item.metaProperty.type.HasFlag(MetaEntityClassPropertyType.entity))
                    {
                        var subentity = entity.Items.FirstOrDefault(x => x.name == item.metaProperty.name);

                        if (item.metaProperty.type.HasFlag(MetaEntityClassPropertyType.collection))
                        {
                            Object collection = item.propertyInfo.GetValue(output, null);

                            if (collection is IList IListCollection)
                            {
                                foreach (MetaEntity entityItem in subentity.Items)
                                {
                                    Object instanceItem = ObjectFromMetaEntity(entityItem, null, item.TypeProvider);

                                    IListCollection.Add(instanceItem);
                                }
                            }
                        }
                        else
                        {
                            Object subtyped_instance = item.propertyInfo.GetValue(output, null);

                            Object subinstance = ObjectFromMetaEntity(subentity, subtyped_instance, item.TypeProvider);
                            item.propertyInfo.SetValue(output, subinstance, new object[] { });
                        }
                    }
                }
            }

            return(output);
        }