コード例 #1
0
ファイル: ListNodeTests.cs プロジェクト: Vraiment/SAGESharp
        public void Test_Adding_A_Null_Entry_To_A_List()
        {
            IListNode listNode = BuildStringListNode();
            Action    action   = () => listNode.AddListEntry(new List <string>(), null);

            action.Should()
            .ThrowArgumentNullException("value");
        }
コード例 #2
0
ファイル: ListNodeTests.cs プロジェクト: Vraiment/SAGESharp
        public void Test_Adding_An_Entry_To_A_Null_List()
        {
            IListNode listNode = BuildStringListNode();
            Action    action   = () => listNode.AddListEntry(null, string.Empty);

            action.Should()
            .ThrowArgumentNullException("list");
        }
コード例 #3
0
ファイル: ListNodeTests.cs プロジェクト: Vraiment/SAGESharp
        public void Test_Adding_An_Element_To_A_List_Of_Incorrect_Type()
        {
            IList <int> list     = new List <int>();
            IListNode   listNode = BuildStringListNode();
            Action      action   = () => listNode.AddListEntry(list, string.Empty);

            action.Should()
            .ThrowExactly <ArgumentException>()
            .WithMessage($"List argument is of type {list.GetType().Name} which should " +
                         $"implement {typeof(IList<string>).Name} but doesn't.");
        }
コード例 #4
0
ファイル: ListNodeTests.cs プロジェクト: Vraiment/SAGESharp
        public void Test_Adding_An_Entry_To_A_List()
        {
            IList <string> list     = new List <string>();
            IListNode      listNode = BuildStringListNode();
            string         value    = "value";

            listNode.AddListEntry(list, value);

            list.Should().HaveCount(1);
            list[0].Should().BeSameAs(value);
        }
コード例 #5
0
ファイル: ListNodeTests.cs プロジェクト: Vraiment/SAGESharp
        public void Test_Adding_An_Element_Of_Invalid_Type_To_A_List()
        {
            IList <string> list     = BuildStringList();
            IListNode      listNode = BuildStringListNode();
            int            value    = 1;
            Action         action   = () => listNode.AddListEntry(list, value);

            action.Should()
            .ThrowExactly <ArgumentException>()
            .WithMessage($"Value should be of type {typeof(string).Name}, " +
                         $"but is of type {value.GetType().Name} instead.");
        }
コード例 #6
0
            private void SetupAddEntry(IListNode node)
            {
                // Setup in this convoluted way so the "list" variable
                // is different everytime "AddListEntry" is called
                // otherwise "list" will be the same for different calls
                void setup()
                {
                    IList <T> list = default(IList <T>);

                    node.AddListEntry(
                        Arg.Do <IList <T> >(val => list = val),
                        Arg.Do <T>(entry => list.Add(entry))
                        );
                }

                setup();
            }
コード例 #7
0
ファイル: TreeReader.cs プロジェクト: Vraiment/SAGESharp
        private object ProcessListNode(IBinaryReader binaryReader, IListNode listNode)
        {
            int    count  = listNode.ReadEntryCount(binaryReader);
            uint   offset = listNode.ReadOffset(binaryReader);
            object list   = listNode.CreateList();

            if (count != 0)
            {
                binaryReader.DoAtPosition(offset, () =>
                {
                    for (int n = 0; n < count; ++n)
                    {
                        object entry = ProcessDataNode(binaryReader, listNode.ChildNode);
                        listNode.AddListEntry(list, entry);
                    }
                });
            }

            return(list);
        }