blob: fbda2b3a4bc5eac6cd513175ea2188875254bd11 [file] [log] [blame]
// Copyright 2018 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_modular/fidl_async.dart' as fidl;
import 'package:modular/src/module/intent.dart'; // ignore: implementation_imports
import 'package:test/test.dart';
import '../matchers.dart';
void main() {
group('intent constructors', () {
test('intent sets the action', () {
final intent = Intent(action: 'my-action')
..addParameterFromEntityReference('my-value', 'foo');
expect(intent.action, 'my-action');
});
test('intent with jandler sets the handler', () {
final intent = Intent(action: '', handler: 'my-handler');
expect(intent.handler, 'my-handler');
});
});
group('intent parameters', () {
Intent intent;
setUp(() {
intent = Intent(action: 'foo');
});
test('addParameterFromEntityReference it to the list', () {
intent.addParameterFromEntityReference('name', 'ref');
final result = intent.parameters.firstWhere((p) => p.name == 'name');
expect(result, isNotNull);
});
test('getParameter throws for missing name', () {
expect(() {
intent.getParameter('not-a-name');
}, throwsModuleStateException);
});
test('getParameter returns the transformed intent', () {
intent.addParameterFromEntityReference('name', 'ref');
expect(intent.getParameter('name'), isIntentParameter);
});
test('getParameter throws for unsupported union type', () {
intent.parameters.add(fidl.IntentParameter(
name: 'name',
data: fidl.IntentParameterData.withLinkName('my-link')));
expect(() {
intent.getParameter('name');
}, throwsModuleStateException);
});
});
}