signal method

  1. @override
bool signal(
  1. Signal signal, {
  2. C? cell,
})
inherited

Validates a signal against test rules

Implementation

@override
bool signal(Signal signal, {C? cell}) {

  final checked = Set<TestRule>.identity();

  bool process(TestRule rule) {
    if (rule is TestObject<C>) {
      for (var r in rule) {
        if (process(r) == false) {
          return false;
        }
      }
    }

    if (rule is TestSignalRule<C> && checked.add(rule)) {
      try {
        if (rule.signal(signal, cell: cell) == false) {
          return false;
        }
      } catch(_) {}
    }
    return true;
  }
  return process(this);
}