execute method

  1. @override
Future<void> execute({
  1. required CancelToken cancelToken,
  2. required TestReport report,
  3. required TestController tester,
})

Executes the step. This will

Implementation

@override
Future<void> execute({
  required CancelToken cancelToken,
  required TestReport report,
  required TestController tester,
}) async {
  var value = tester.resolveVariable(this.value)?.toString();
  String? variableName = tester.resolveVariable(this.variableName);
  assert(variableName?.isNotEmpty == true);

  var name = "$id('$variableName', '$value', '$equals', '$caseSensitive')";
  log(
    name,
    tester: tester,
  );

  var match = false;
  var actual = tester.resolveVariable('{{$variableName}}');
  if (equals ==
      (caseSensitive == true
          ? (actual?.toString() == value)
          : (actual?.toString().toLowerCase() ==
              value?.toString().toLowerCase()))) {
    match = true;
  }
  if (match != true) {
    throw Exception(
      'variableName: [$variableName] -- actualValue: [$actual] ${equals == true ? '!=' : '=='} [$value] (caseSensitive = [$caseSensitive]).',
    );
  }
}