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); }
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); }