// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

import 'dart:convert' show json;

import 'package:analyzer_cli/src/error_formatter.dart' show AnalysisStats;
import 'package:analyzer_cli/src/options.dart';
import 'package:analyzer_cli/src/perf_report.dart';
import 'package:test/test.dart';

main() {
  test('makePerfReport', () {
    var options = CommandLineOptions.parse(["somefile.dart"]);
    var encoded = makePerfReport(1000, 1234, options, 0, new AnalysisStats());

    var jsonData = json.decode(encoded);
    expect(jsonData['totalElapsedTime'], 234);
    expect(jsonData['options']['sourceFiles'], ["somefile.dart"]);
  });
}
