summaryrefslogtreecommitdiff
path: root/addons/gdUnit4/src/asserts/GdUnitFileAssertImpl.gd
diff options
context:
space:
mode:
Diffstat (limited to 'addons/gdUnit4/src/asserts/GdUnitFileAssertImpl.gd')
-rw-r--r--addons/gdUnit4/src/asserts/GdUnitFileAssertImpl.gd116
1 files changed, 116 insertions, 0 deletions
diff --git a/addons/gdUnit4/src/asserts/GdUnitFileAssertImpl.gd b/addons/gdUnit4/src/asserts/GdUnitFileAssertImpl.gd
new file mode 100644
index 0000000..c4f9570
--- /dev/null
+++ b/addons/gdUnit4/src/asserts/GdUnitFileAssertImpl.gd
@@ -0,0 +1,116 @@
+extends GdUnitFileAssert
+
+const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd")
+
+var _base: GdUnitAssertImpl
+
+
+func _init(current :Variant) -> void:
+ _base = GdUnitAssertImpl.new(current)
+ # save the actual assert instance on the current thread context
+ GdUnitThreadManager.get_current_context().set_assert(self)
+ if not GdUnitAssertions.validate_value_type(current, TYPE_STRING):
+ @warning_ignore("return_value_discarded")
+ report_error("GdUnitFileAssert inital error, unexpected type <%s>" % GdObjects.typeof_as_string(current))
+
+
+func _notification(event :int) -> void:
+ if event == NOTIFICATION_PREDELETE:
+ if _base != null:
+ _base.notification(event)
+ _base = null
+
+
+func current_value() -> String:
+ return _base.current_value()
+
+
+func report_success() -> GdUnitFileAssert:
+ @warning_ignore("return_value_discarded")
+ _base.report_success()
+ return self
+
+
+func report_error(error :String) -> GdUnitFileAssert:
+ @warning_ignore("return_value_discarded")
+ _base.report_error(error)
+ return self
+
+
+func failure_message() -> String:
+ return _base.failure_message()
+
+
+func override_failure_message(message: String) -> GdUnitFileAssert:
+ @warning_ignore("return_value_discarded")
+ _base.override_failure_message(message)
+ return self
+
+
+func append_failure_message(message: String) -> GdUnitFileAssert:
+ @warning_ignore("return_value_discarded")
+ _base.append_failure_message(message)
+ return self
+
+
+func is_null() -> GdUnitFileAssert:
+ @warning_ignore("return_value_discarded")
+ _base.is_null()
+ return self
+
+
+func is_not_null() -> GdUnitFileAssert:
+ @warning_ignore("return_value_discarded")
+ _base.is_not_null()
+ return self
+
+
+func is_equal(expected: Variant) -> GdUnitFileAssert:
+ @warning_ignore("return_value_discarded")
+ _base.is_equal(expected)
+ return self
+
+
+func is_not_equal(expected: Variant) -> GdUnitFileAssert:
+ @warning_ignore("return_value_discarded")
+ _base.is_not_equal(expected)
+ return self
+
+
+func is_file() -> GdUnitFileAssert:
+ var current := current_value()
+ if FileAccess.open(current, FileAccess.READ) == null:
+ return report_error("Is not a file '%s', error code %s" % [current, FileAccess.get_open_error()])
+ return report_success()
+
+
+func exists() -> GdUnitFileAssert:
+ var current := current_value()
+ if not FileAccess.file_exists(current):
+ return report_error("The file '%s' not exists" %current)
+ return report_success()
+
+
+func is_script() -> GdUnitFileAssert:
+ var current := current_value()
+ if FileAccess.open(current, FileAccess.READ) == null:
+ return report_error("Can't acces the file '%s'! Error code %s" % [current, FileAccess.get_open_error()])
+
+ var script := load(current)
+ if not script is GDScript:
+ return report_error("The file '%s' is not a GdScript" % current)
+ return report_success()
+
+
+func contains_exactly(expected_rows: Array) -> GdUnitFileAssert:
+ var current := current_value()
+ if FileAccess.open(current, FileAccess.READ) == null:
+ return report_error("Can't acces the file '%s'! Error code %s" % [current, FileAccess.get_open_error()])
+
+ var script: GDScript = load(current)
+ if script is GDScript:
+ var source_code := GdScriptParser.to_unix_format(script.source_code)
+ var rows := Array(source_code.split("\n"))
+ @warning_ignore("return_value_discarded")
+ GdUnitArrayAssertImpl.new(rows).contains_exactly(expected_rows)
+ return self