コード例 #1
0
        public void TopLevelSet_ReturnsNull()
        {
            // Arrange
            var field = Substitute.For <ISymbol>();
            var type  = new SetTypeBuilder()
                        .SetParent(field)
                        .Build();

            // Act
            var nestingDepth = type.NestingDepth;

            // Assert
            Assert.Null(nestingDepth);
        }
コード例 #2
0
        public void SetIsNested_ReturnsOne()
        {
            // Arrange
            var parent = Substitute.For <ISetType>();
            var type   = new SetTypeBuilder()
                         .SetParent(parent)
                         .Build();

            // Act
            var nestingDepth = type.NestingDepth;

            // Assert
            Assert.Equal(1, nestingDepth);
        }
コード例 #3
0
        protected override (IParseTree elementNode, ICollectionType collectionType) ParseInput(string input)
        {
            var node = ParserInput
                       .FromString(input)
                       .ParseInput(parser => parser.setType());

            var setType = new SetTypeBuilder()
                          .SetNode(node)
                          .SetParent(this.Field)
                          .SetBinderProvider(this.BinderProvider)
                          .Build();

            return(node.fieldType(), setType);
        }
コード例 #4
0
        public void MixtureOfNestedTypes_ReturnsNestingLevel()
        {
            // Arrange
            // Simulate set<list<set<T>>>
            var field = Substitute.For <IField>();
            var type  = new SetTypeBuilder()                       // set<>
                        .SetParent(new ListTypeBuilder()           // list<set<>>
                                   .SetParent(new SetTypeBuilder() // set<list<set<>>>
                                              .SetParent(field)
                                              .Build())
                                   .Build())
                        .Build();

            // Act
            var nestingDepth = type.NestingDepth;

            // Assert
            Assert.Equal(2, nestingDepth);
        }
コード例 #5
0
        public void SetIsNestedMultipleLevelsDeep_ReturnsNestingLevel()
        {
            // Arrange
            // Simulate set<set<set<T>>>
            var field = Substitute.For <IField>();
            var type  = new SetTypeBuilder()                       // set<>
                        .SetParent(new SetTypeBuilder()            // set<set<>>
                                   .SetParent(new SetTypeBuilder() // set<set<set<>>>
                                              .SetParent(field)
                                              .Build())
                                   .Build())
                        .Build();

            // Act
            var nestingDepth = type.NestingDepth;

            // Assert
            Assert.Equal(2, nestingDepth);
        }