blob: 607953326ecb25c1f6557ff1b03d644c54dd293f [file] [log] [blame]
// Copyright 2019 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:cocoon_service/src/model/ci_yaml/target.dart';
import 'package:test/test.dart';
const isTarget = TargetMatcher._(TypeMatcher());
final class TargetMatcher extends Matcher {
const TargetMatcher._(this._delegate);
final TypeMatcher<Target> _delegate;
TargetMatcher hasName(Object? valueOrMatcher) {
return TargetMatcher._(
_delegate.having((e) => e.name, 'name', valueOrMatcher),
);
}
TargetMatcher hasSchedulerConfig(Object? valueOrMatcher) {
return TargetMatcher._(
_delegate.having(
(e) => e.schedulerConfig,
'schedulerConfig',
valueOrMatcher,
),
);
}
TargetMatcher hasSlug(Object? valueOrMatcher) {
return TargetMatcher._(
_delegate.having((e) => e.slug, 'slug', valueOrMatcher),
);
}
TargetMatcher hasDimensions(Object? valueOrMatcher) {
return TargetMatcher._(
_delegate.having(
(e) => e.getDimensions(),
'getDimensions()',
valueOrMatcher,
),
);
}
TargetMatcher hasSchedulerPolicy(Object? valueOrMatcher) {
return TargetMatcher._(
_delegate.having(
(e) => e.schedulerPolicy,
'schedulerPolicy',
valueOrMatcher,
),
);
}
TargetMatcher hasTags(Object? valueOrMatcher) {
return TargetMatcher._(
_delegate.having((e) => e.tags, 'tags', valueOrMatcher),
);
}
TargetMatcher hasProperties(Object? valueOrMatcher) {
return TargetMatcher._(
_delegate.having(
(e) => e.getProperties(),
'getProperties()',
valueOrMatcher,
),
);
}
TargetMatcher hasPlatform(Object? valueOrMatcher) {
return TargetMatcher._(
_delegate.having((e) => e.getPlatform(), 'getPlatform()', valueOrMatcher),
);
}
TargetMatcher hasBucket(Object? valueOrMatcher) {
return TargetMatcher._(
_delegate.having((e) => e.getBucket(), 'getBucket()', valueOrMatcher),
);
}
TargetMatcher hasIgnoreFlakiness(Object? valueOrMatcher) {
return TargetMatcher._(
_delegate.having(
(e) => e.getIgnoreFlakiness(),
'getIgnoreFlakiness()',
valueOrMatcher,
),
);
}
TargetMatcher hasIsReleaseBuildTarget(Object? valueOrMatcher) {
return TargetMatcher._(
_delegate.having(
(e) => e.isReleaseBuild,
'isReleaseBuildTarget',
valueOrMatcher,
),
);
}
TargetMatcher hasIsBringupTarget(Object? valueOrMatcher) {
return TargetMatcher._(
_delegate.having((e) => e.isBringup, 'isBringupTarget', valueOrMatcher),
);
}
TargetMatcher hasBackfill(Object? valueOrMatcher) {
return TargetMatcher._(
_delegate.having((e) => e.backfill, 'backfill', valueOrMatcher),
);
}
@override
bool matches(Object? item, _) {
if (item is! Target) {
return false;
}
return _delegate.matches(item, {});
}
@override
Description describe(Description description) {
return _delegate.describe(description);
}
@override
Description describeMismatch(
Object? item,
Description mismatchDescription,
_,
_,
) {
return _delegate.describeMismatch(item, mismatchDescription, {}, false);
}
}