summaryrefslogtreecommitdiff
path: root/addons/gdUnit4/src/matchers/GdUnitArgumentMatchers.gd
diff options
context:
space:
mode:
authorradiohotline <radoihotline@disroot.rg>2026-08-25 16:33:56 +0300
committerradiohotline <radoihotline@disroot.rg>2026-08-25 16:33:56 +0300
commita89e744ed0e8c759caf041a580112365bbfe4303 (patch)
treedd61e320904176995727e86a857d00c90d4933ba /addons/gdUnit4/src/matchers/GdUnitArgumentMatchers.gd
parent6d53d8cac78250dc888aa49d5f9d4175c6652feb (diff)
escoria updateHEADmain
Diffstat (limited to 'addons/gdUnit4/src/matchers/GdUnitArgumentMatchers.gd')
-rw-r--r--addons/gdUnit4/src/matchers/GdUnitArgumentMatchers.gd42
1 files changed, 42 insertions, 0 deletions
diff --git a/addons/gdUnit4/src/matchers/GdUnitArgumentMatchers.gd b/addons/gdUnit4/src/matchers/GdUnitArgumentMatchers.gd
new file mode 100644
index 0000000..6a70cc1
--- /dev/null
+++ b/addons/gdUnit4/src/matchers/GdUnitArgumentMatchers.gd
@@ -0,0 +1,42 @@
+class_name GdUnitArgumentMatchers
+extends RefCounted
+
+const TYPE_ANY = TYPE_MAX + 100
+
+
+static func to_matcher(arguments: Array[Variant], auto_deep_check_mode := false) -> ChainedArgumentMatcher:
+ var matchers: Array[Variant] = []
+ for arg: Variant in arguments:
+ # argument is already a matcher
+ if arg is GdUnitArgumentMatcher:
+ matchers.append(arg)
+ else:
+ # pass argument into equals matcher
+ matchers.append(EqualsArgumentMatcher.new(arg, auto_deep_check_mode))
+ return ChainedArgumentMatcher.new(matchers)
+
+
+static func any() -> GdUnitArgumentMatcher:
+ return AnyArgumentMatcher.new()
+
+
+static func by_type(type: int) -> GdUnitArgumentMatcher:
+ return AnyBuildInTypeArgumentMatcher.new([type])
+
+
+static func by_types(types: PackedInt32Array) -> GdUnitArgumentMatcher:
+ return AnyBuildInTypeArgumentMatcher.new(types)
+
+
+static func any_class(clazz: Object) -> GdUnitArgumentMatcher:
+ return AnyClazzArgumentMatcher.new(clazz)
+
+
+static func is_variant_string_matching(value: Variant) -> GdUnitResult:
+ if value is String or value is StringName:
+ return GdUnitResult.success()
+ if value is GdUnitArgumentMatcher:
+ if str(value) == "any()" or str(value) == "any_string()":
+ return GdUnitResult.success()
+ return GdUnitResult.error("Only 'any()' and 'any_string()' argument matchers are allowed!")
+ return GdUnitResult.error("Only String or StringName types are allowed!")