Full Backup Execution
As a user, I want to execute a full backup from a source directory to a target directory,
So that I can ensure all my files and subfolders are completely duplicated, regardless of their previous state.
Given valid source and target paths,
When the full backup job is executed,
Then all files from the source are successfully copied to the target directory.
Given a source directory containing multiple nested subfolders,
When the backup runs,
Then the exact folder structure is recreated and preserved in the target location.
Given an empty directory exists in the source,
When the backup runs,
Then an equivalent empty directory is explicitly created in the target.
Given a file exists in the target directory but no longer exists in the source directory,
When the full backup job is executed,
Then the file is deleted from the target directory to ensure a perfect mirror.
Given a source directory that does not exist,
When the backup starts,
Then a DirectoryNotFoundException is handled, an error is logged, and the job is marked as failed without crashing the application.