fuchsia_pm_test.dart 2.09 KB
Newer Older
1 2 3 4
// 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.

5
import 'package:file/memory.dart';
6 7 8
import 'package:flutter_tools/src/base/file_system.dart';
import 'package:flutter_tools/src/fuchsia/fuchsia_pm.dart';
import 'package:flutter_tools/src/fuchsia/fuchsia_sdk.dart';
9
import 'package:test/fake.dart';
10 11 12

import '../../src/common.dart';
import '../../src/context.dart';
13
import '../../src/fake_process_manager.dart';
14 15 16

void main() {
  group('FuchsiaPM', () {
17 18 19
    late File pm;
    late FakeProcessManager fakeProcessManager;
    late FakeFuchsiaArtifacts fakeFuchsiaArtifacts;
20 21

    setUp(() {
22
      pm = MemoryFileSystem.test().file('pm');
23 24
      fakeFuchsiaArtifacts = FakeFuchsiaArtifacts(pm);
      fakeProcessManager = FakeProcessManager.empty();
25 26 27
    });

    testUsingContext('serve - IPv4 address', () async {
28
      fakeProcessManager.addCommand(const FakeCommand(command: <String>[
29 30 31 32 33 34
        'pm',
        'serve',
        '-repo',
        '<repo>',
        '-l',
        '127.0.0.1:43819',
35 36
        '-c',
        '2',
37 38 39 40
      ]));

      await FuchsiaPM().serve('<repo>', '127.0.0.1', 43819);
      expect(fakeProcessManager, hasNoRemainingExpectations);
41
    }, overrides: <Type, Generator>{
42 43
      FuchsiaArtifacts: () => fakeFuchsiaArtifacts,
      ProcessManager: () => fakeProcessManager,
44 45 46
    });

    testUsingContext('serve - IPv6 address', () async {
47
      fakeProcessManager.addCommand(const FakeCommand(command: <String>[
48 49 50 51 52
        'pm',
        'serve',
        '-repo',
        '<repo>',
        '-l',
53
        '[fe80::ec4:7aff:fecc:ea8f%eno2]:43819',
54
        '-c',
55
        '2',
56 57 58 59
      ]));

      await FuchsiaPM().serve('<repo>', 'fe80::ec4:7aff:fecc:ea8f%eno2', 43819);
      expect(fakeProcessManager, hasNoRemainingExpectations);
60
    }, overrides: <Type, Generator>{
61 62
      FuchsiaArtifacts: () => fakeFuchsiaArtifacts,
      ProcessManager: () => fakeProcessManager,
63 64 65 66
    });
  });
}

67 68 69 70 71 72
class FakeFuchsiaArtifacts extends Fake implements FuchsiaArtifacts {
  FakeFuchsiaArtifacts(this.pm);

  @override
  final File pm;
}