template_test.dart 1.58 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:file/file.dart';
import 'package:file/memory.dart';
import 'package:flutter_tools/src/base/logger.dart';
import 'package:flutter_tools/src/isolated/mustache_template.dart';
import 'package:flutter_tools/src/template.dart';

import '../../src/common.dart';

void main() {

  testWithoutContext('kotlin reserved keywords', () {
    final FileSystem fileSystem = MemoryFileSystem.test();
    final BufferLogger logger = BufferLogger.test();
    final Directory rootDir = fileSystem.currentDirectory;
    final Directory templateSource = rootDir.childDirectory('src');
    final Directory imageSourceDir = templateSource;
    final Directory destination = rootDir.childDirectory('dest');

    const String outputClass = 'SomeClass.kt';

    final File sourceFile = templateSource.childFile('$outputClass.tmpl');

    templateSource.createSync();
    sourceFile.writeAsStringSync('package {{androidIdentifier}};');

    final Template template = Template(
        templateSource,
        imageSourceDir,
        fileSystem: fileSystem,
        logger: logger,
        templateRenderer: const MustacheTemplateRenderer(),
    );

    final Map<String, Object> context = <String, Object>{
39
      'androidIdentifier': 'in.when.there',
40 41 42 43 44 45 46 47
    };
    template.render(destination, context);

    final File destinationFile = destination.childFile(outputClass);
    expect(destinationFile.readAsStringSync(), equals('package `in`.`when`.there;'));
  });

}