blob: 392ddb19fa04e185bfa382322c44404e603d3031 [file] [log] [blame]
// Copyright 2021 The Fuchsia 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:fidl_fuchsia_ui_remotewidgets/fidl_async.dart';
import 'package:fidl_fuchsia_update_channelcontrol/fidl_async.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/mockito.dart';
import 'package:settings/settings.dart';
const List<String> channels = [
'channelA',
'channelB',
];
void main() {
late MockControl control;
setUp(() async {
control = MockControl();
});
test('Default Channel Spec', () async {
when(control.getTarget()).thenAnswer((_) => Future.value(channels[0]));
when(control.getTargetList()).thenAnswer((_) => Future.value(channels));
final channel = Channel(control);
Spec spec = await channel.getSpec();
expect(spec.title, 'Channel');
expect(spec.groups?.first.values?.first.text?.text, channels[0]);
});
test('Change Channel', () async {
when(control.getTarget()).thenAnswer((_) => Future.value(channels[0]));
when(control.getTargetList()).thenAnswer((_) => Future.value(channels));
final channel = Channel(control);
Spec specA = await channel.getSpec();
expect(specA.title, 'Channel');
expect(specA.groups?.first.values?.first.text?.text, channels[0]);
// Change channel
channel.model.channel = channels[1];
// Wait one event cycle for the change
await channel.getSpec();
Spec specB = await channel.getSpec();
expect(specB.groups?.first.values?.first.text?.text, channels[1]);
});
}
class MockControl extends Mock implements ChannelControlProxy {}