public void CurrentDirectoryUnchangedWhenTargetDirectoryIsNull()
        {
            var state = new FileSystemState();
            var before = state.GetCurrentDirectory();
            var isSetDirectorySuccess = state.TrySetCurrentDirectory(null);
            var after = state.GetCurrentDirectory();

            Assert.IsFalse(isSetDirectorySuccess);
            Assert.AreEqual(before, after);
        }
        public void CanChangeCurrentDirectory()
        {
            var state = new FileSystemState();
            var before = state.GetCurrentDirectory();
            var target = new Directory();

            var isSetDirectorySuccess = state.TrySetCurrentDirectory(target);
            var after = state.GetCurrentDirectory();

            Assert.IsTrue(isSetDirectorySuccess);
            Assert.AreNotEqual(before, after);
            Assert.AreEqual(target, after);
        }
        private string ChangeDirectoryToRoot(string targetDirectoryName)
        {
            var rootDirectory             = _fileSystemState.GetRootDirectory();
            var isRootDirectorySetSuccess = _fileSystemState.TrySetCurrentDirectory(rootDirectory);

            if (!isRootDirectorySetSuccess)
            {
                return($"Error - Failed to set current directory to root `{targetDirectoryName}`");
            }

            return("Current working directory changed");
        }