public void MissingSemicolon()
        {
            var lexer  = new DescriptorLexer("Ljava/lang/Object".AsMemory());
            var parser = new FieldDescriptorParser(lexer.Lex());

            Assert.Throws <DescriptorParserException>(() => parser.Parse());
        }
        public void NoGenericParameters()
        {
            var lexer  = new DescriptorLexer("Ljava/util/List<>;".AsMemory());
            var parser = new FieldDescriptorParser(lexer.Lex());

            Assert.Throws <DescriptorParserException>(() => parser.Parse());
        }
        public void ArrayNestedGeneric(string input, string className, int arrayRank1, string genericClassName1, int arrayRank2, string genericClassName2, int arrayRank3)
        {
            var lexer      = new DescriptorLexer(input.AsMemory());
            var parser     = new FieldDescriptorParser(lexer.Lex());
            var descriptor = parser.Parse();

            Assert.Equal(arrayRank1, descriptor.ArrayRank);
            Assert.IsType <NonPrimitiveFieldDescriptor>(descriptor);
            var nonPrimitive = (NonPrimitiveFieldDescriptor)descriptor;

            Assert.Equal(className, nonPrimitive.ClassName);
            Assert.Equal(1, nonPrimitive.GenericParameters.Count);
            Assert.IsType <NonPrimitiveFieldDescriptor>(nonPrimitive.GenericParameters[0]);
            Assert.Equal(arrayRank2, nonPrimitive.GenericParameters[0].ArrayRank);
            var genericParameter = (NonPrimitiveFieldDescriptor)nonPrimitive.GenericParameters[0];

            Assert.Equal(genericClassName1, genericParameter.ClassName);
            Assert.Equal(1, genericParameter.GenericParameters.Count);
            Assert.IsType <NonPrimitiveFieldDescriptor>(genericParameter.GenericParameters[0]);
            Assert.Equal(arrayRank3, genericParameter.GenericParameters[0].ArrayRank);
            var genericParameter2 = (NonPrimitiveFieldDescriptor)genericParameter.GenericParameters[0];

            Assert.Equal(genericClassName2, genericParameter2.ClassName);
            Assert.Empty(genericParameter2.GenericParameters);
        }
Example #4
0
        public void Array(string input, int arrayRank, PrimitiveKind primitiveKind)
        {
            var lexer      = new DescriptorLexer(input.AsMemory());
            var parser     = new FieldDescriptorParser(lexer.Lex());
            var descriptor = parser.Parse();

            Assert.Equal(arrayRank, descriptor.ArrayRank);
            Assert.Equal(primitiveKind, Assert.IsType <PrimitiveFieldDescriptor>(descriptor).Kind);
        }
        public void Array(string input, string className, int arrayRank)
        {
            var lexer      = new DescriptorLexer(input.AsMemory());
            var parser     = new FieldDescriptorParser(lexer.Lex());
            var descriptor = parser.Parse();

            Assert.Equal(arrayRank, descriptor.ArrayRank);
            Assert.Equal(className, Assert.IsType <NonPrimitiveFieldDescriptor>(descriptor).ClassName);
            Assert.Empty(((NonPrimitiveFieldDescriptor)descriptor).GenericParameters);
        }
        public void Generic(string input, string className, string genericClassName)
        {
            var lexer      = new DescriptorLexer(input.AsMemory());
            var parser     = new FieldDescriptorParser(lexer.Lex());
            var descriptor = parser.Parse();

            Assert.Equal(0, descriptor.ArrayRank);
            Assert.IsType <NonPrimitiveFieldDescriptor>(descriptor);
            var nonPrimitive = (NonPrimitiveFieldDescriptor)descriptor;

            Assert.Equal(className, nonPrimitive.ClassName);
            Assert.Equal(1, nonPrimitive.GenericParameters.Count);
            Assert.IsType <NonPrimitiveFieldDescriptor>(nonPrimitive.GenericParameters[0]);
            var genericParameter = (NonPrimitiveFieldDescriptor)nonPrimitive.GenericParameters[0];

            Assert.Equal(genericClassName, genericParameter.ClassName);
        }