Exemplo n.º 1
0
 public void testParseRecordTypes() {
   assertTypeEquals(
       RecordType.of(
           ImmutableMap.<String, SoyType>builder().put("a", IntType.getInstance()).build()),
       "[a:int]");
   assertTypeEquals(
       RecordType.of(
           ImmutableMap.<String, SoyType>builder()
               .put("a", IntType.getInstance())
               .put("b", FloatType.getInstance())
               .build()),
       "[a:int, b:float]");
   assertTypeEquals(
       RecordType.of(
           ImmutableMap.<String, SoyType>builder()
               .put("a", IntType.getInstance())
               .put("b", ListType.of(StringType.getInstance()))
               .build()),
       "[a:int, b:list<string>]");
 }
 public void testMapLiteralAsRecord() {
   SoyFileSetNode soyTree =
       SoyFileSetParserBuilder.forFileContents(
               constructTemplateSource(
                   "{@param pi: int}",
                   "{@param pf: float}",
                   "{let $map: ['a': $pi, 'b':$pf]/}",
                   "{captureType($map)}"))
           .declaredSyntaxVersion(SyntaxVersion.V2_0)
           .typeRegistry(typeRegistry)
           .parse()
           .fileSet();
   createResolveNamesVisitorForMaxSyntaxVersion().exec(soyTree);
   createResolveExpressionTypesVisitorForMaxSyntaxVersion().exec(soyTree);
   List<SoyType> types = getCapturedTypes(soyTree);
   assertThat(types.get(0))
       .isEqualTo(
           RecordType.of(
               ImmutableMap.<String, SoyType>of(
                   "a", IntType.getInstance(), "b", FloatType.getInstance())));
 }