anchor.diff:    });
   
     group('generateClassMethods', () {
  -    test('correctly generates a simple message with getter', () {
  -      _standardFlutterDirectoryL10nSetup(fs);
  -      final LocalizationsGenerator generator = LocalizationsGenerator(fs);
  -      try {
  -        generator.initialize(
  -          l10nDirectoryPath: defaultArbPathString,
  -          templateArbFileName: defaultTemplateArbFileName,
  -          outputFileString: defaultOutputFileString,
  -          classNameString: defaultClassNameString,
  -        );
  -        generator.parseArbFiles();
  -        generator.generateClassMethods();
  -      } on Exception catch (e) {
  -        fail('Parsing template arb file should succeed: \n$e');
  -      }
  -
  -      expect(generator.classMethods, isNotEmpty);
  -      expect(
  -        generator.classMethods.first,
  -        '''
  -  String get title {
  -    return Intl.message(
  -      'Title',
  -      locale: _localeName,
  -      name: 'title',
  -      desc: 'Title for the application'
  -    );
  -  }
  -''');
  -    });
  -
  -    test('correctly generates simple message method with parameters', () {
  -      const String singleSimpleMessageWithPlaceholderArbFileString = '''{
  -  "itemNumber": "Item {value}",
  -  "@itemNumber": {
  -    "description": "Item placement in list.",
  -    "placeholders": {
  -      "value": {
  -        "example": "1"
  -      }
  -    }
  -  }
  -}''';
  -      final Directory l10nDirectory = fs.currentDirectory.childDirectory('lib').childDirectory('l10n')
  -        ..createSync(recursive: true);
  -      l10nDirectory.childFile(defaultTemplateArbFileName)
  -        .writeAsStringSync(singleSimpleMessageWithPlaceholderArbFileString);
  -
  -      final LocalizationsGenerator generator = LocalizationsGenerator(fs);
  -      try {
  -        generator.initialize(
  -          l10nDirectoryPath: defaultArbPathString,
  -          templateArbFileName: defaultTemplateArbFileName,
  -          outputFileString: defaultOutputFileString,
  -          classNameString: defaultClassNameString,
  -        );
  -        generator.parseArbFiles();
  -        generator.generateClassMethods();
  -      } on Exception catch (e) {
  -        fail('Parsing template arb file should succeed: \n$e');
  -      }
  -
  -      expect(generator.classMethods, isNotEmpty);
  -      expect(
  -        generator.classMethods.first,
  -        r'''
  -  String itemNumber(Object value) {
  -    return Intl.message(
  -      'Item ${value}',
  -      locale: _localeName,
  -      name: 'itemNumber',
  -      desc: 'Item placement in list.',
  -      args: <Object>[value]
  -    );
  -  }
  -''');
  -    });
  -  });
  -
       group('DateTime tests', () {
  -      test('correctly generates simple message with dates', () {
  -        const String singleDateMessageArbFileString = '''{
  -  "springBegins": "Spring begins on {springStartDate}",
  -  "@springBegins": {
  -      "description": "The first day of spring",
  -      "placeholders": {
  -          "springStartDate": {
  -              "type": "DateTime",
  -              "format": "yMMMMEEEEd"
  -          }
  -      }
  -  }
  -}''';
  -        final Directory l10nDirectory = fs.currentDirectory.childDirectory('lib').childDirectory('l10n')
  -          ..createSync(recursive: true);
  -        l10nDirectory.childFile(defaultTemplateArbFileName)
  -          .writeAsStringSync(singleDateMessageArbFileString);
  -
  -        final LocalizationsGenerator generator = LocalizationsGenerator(fs);
  -        try {
  -          generator.initialize(
  -            l10nDirectoryPath: defaultArbPathString,
  -            templateArbFileName: defaultTemplateArbFileName,
  -            outputFileString: defaultOutputFileString,
  -            classNameString: defaultClassNameString,
  -          );
  -          generator.parseArbFiles();
  -          generator.generateClassMethods();
  -        } on Exception catch (e) {
  -          fail('Parsing template arb file should succeed: \n$e');
  -        }
  -
  -        expect(generator.classMethods, isNotEmpty);
  -        expect(
  -          generator.classMethods.first,
  -          r'''
  -  String springBegins(DateTime springStartDate) {
  -    final DateFormat springStartDateDateFormat = DateFormat.yMMMMEEEEd(_localeName);
  -    final String springStartDateString = springStartDateDateFormat.format(springStartDate);
  -
  -    String springBegins(Object springStartDate) {
  -      return Intl.message(
  -        'Spring begins on ${springStartDate}',
  -        locale: _localeName,
  -        name: 'springBegins',
  -        desc: 'The first day of spring',
  -        args: <Object>[springStartDate]
  -      );
  -    }
  -    return springBegins(springStartDateString);
  -  }
  -''');
  -      });
  -
         test('throws an exception when improperly formatted date is passed in', () {
           const String singleDateMessageArbFileString = '''{
     "springBegins": "Spring begins on {springStartDate}",
  
positive.code:     });
    });
  
    group('generateOutputFile', () {
      test('correctly generates the localizations classes', () {
        _standardFlutterDirectoryL10nSetup(fs);
        final LocalizationsGenerator generator = LocalizationsGenerator(fs);
        try {
          generator.initialize(
            l10nDirectoryPath: defaultArbPathString,
            templateArbFileName: defaultTemplateArbFileName,
            outputFileString: defaultOutputFileString,
            classNameString: defaultClassNameString,
          );
          generator.parseArbFiles();
          generator.generateClassMethods();
          generator.generateOutputFile();
        } on Exception catch (e) {
          fail('Generating output localization file should succeed: \n$e');
        }
  
        final String outputFileString = generator.outputFile.readAsStringSync();
        expect(outputFileString, contains('class AppLocalizations'));
        expect(outputFileString, contains('class _AppLocalizationsDelegate extends LocalizationsDelegate<AppLocalizations>'));
      });
    });
  
    group('generateString', () {
      test('handles simple string', () {
        expect(generateString('abc'), "'abc'");
  
negative.code:     });
  
      group('plural messages', () {
        test('should throw attempting to generate a plural message without placeholders', () {
          const String pluralMessageWithoutPlaceholdersAttribute = '''{
    "helloWorlds": "{count,plural, =0{Hello}=1{Hello World}=2{Hello two worlds}few{Hello {count} worlds}many{Hello all {count} worlds}other{Hello other {count} worlds}}",
    "@helloWorlds": {
      "description": "Improperly formatted since it has no placeholder attribute."
  