| // 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:conductor_core/src/proto/conductor_state.pb.dart' as pb; |
| import 'package:conductor_core/src/state.dart'; |
| import 'package:file/file.dart'; |
| import 'package:file/memory.dart'; |
| |
| import './common.dart'; |
| |
| void main() { |
| test('writeStateToFile() pretty-prints JSON with 2 spaces', () { |
| final MemoryFileSystem fileSystem = MemoryFileSystem.test(); |
| final File stateFile = fileSystem.file('/path/to/statefile.json') |
| ..createSync(recursive: true); |
| const String candidateBranch = 'flutter-2.3-candidate.0'; |
| final pb.ConductorState state = pb.ConductorState.create() |
| ..releaseChannel = 'stable' |
| ..releaseVersion = '2.3.4' |
| ..engine = (pb.Repository.create() |
| ..candidateBranch = candidateBranch |
| ..upstream = (pb.Remote.create() |
| ..name = 'upstream' |
| ..url = 'git@github.com:flutter/engine.git' |
| ) |
| ) |
| ..framework = (pb.Repository.create() |
| ..candidateBranch = candidateBranch |
| ..upstream = (pb.Remote.create() |
| ..name = 'upstream' |
| ..url = 'git@github.com:flutter/flutter.git' |
| ) |
| ); |
| writeStateToFile( |
| stateFile, |
| state, |
| <String>['[status] hello world'], |
| ); |
| final String serializedState = stateFile.readAsStringSync(); |
| const String expectedString = ''' |
| { |
| "releaseChannel": "stable", |
| "releaseVersion": "2.3.4", |
| "engine": { |
| "candidateBranch": "flutter-2.3-candidate.0", |
| "upstream": { |
| "name": "upstream", |
| "url": "git@github.com:flutter/engine.git" |
| } |
| }, |
| "framework": { |
| "candidateBranch": "flutter-2.3-candidate.0", |
| "upstream": { |
| "name": "upstream", |
| "url": "git@github.com:flutter/flutter.git" |
| } |
| }, |
| "logs": [ |
| "[status] hello world" |
| ] |
| }'''; |
| expect(serializedState, expectedString); |
| }); |
| } |