public void SubDirectoriesExistWhenCreated() { var state = new FileSystemState(); var root = state.GetRootDirectory(); var isAddDirectorySuccess = _directoryController.TryAddDirectory("Test", new Permission(), root, out var testDirectory); Assert.IsTrue(isAddDirectorySuccess); Assert.IsNotNull(root.SubDirectories); Assert.That(root.SubDirectories.Contains(testDirectory)); }
public string ExecuteCommand(params string[] args) { // Validate the arguments to the command if (!TryValidateArguments(out var validationResponse, args)) { return(validationResponse); } // Execute the valid command logic var targetPlanetName = args.LastOrDefault(); // Try to initialize a new directory for this planet var rootDirectory = _fileSystemState.GetRootDirectory(); var planetPermission = _permissionController.GetCustomPermission(canRead: true, canExecute: true); var isAddPlanetDirectorySuccess = _directoryController.TryAddDirectory(targetPlanetName, planetPermission, rootDirectory, out var targetPlanetDirectory); if (!isAddPlanetDirectorySuccess) { return($"Error - Failed to initialize planet `{targetPlanetName}`"); } // Once we know we have a planet folder initialized, set it up with all the needed sub-directories for a planet // TODO - Setup the sub-directories for a planet return(null); }
public void InitializeFileSystemState( FileSystemState fileSystemState, PermissionController permissionController, DirectoryController directoryController) { // TODO - Make it so that all actions are permission based (add requires write access, so does delete, need read access to look at anything, execute to run something, etc) var home = fileSystemState.GetHomeDirectory(); var planetDirectoryPermission = permissionController.GetCustomPermission(canRead: true, canExecute: true); var isAddPlanetDirectorySuccess = directoryController.TryAddDirectory("planets", planetDirectoryPermission, home, out _); Debug.Assert(isAddPlanetDirectorySuccess, $"Failed to add `planets` directory under `{home.Name}` directory"); }
public void InitializeCommandsInFileSystemState( FileSystemState fileSystemState, PermissionController permissionController, DirectoryController directoryController, FileController fileController, IList <string> commandNames) { var root = fileSystemState.GetRootDirectory(); var binDirectoryPermission = permissionController.GetCustomPermission(canRead: true, canExecute: true); var isAddBinDirectorySuccess = directoryController.TryAddDirectory("bin", binDirectoryPermission, root, out var binDirectory); Debug.Assert(isAddBinDirectorySuccess, $"Failed to add `bin` directory under `{root.Name}` directory"); foreach (var commandName in commandNames) { var filePermission = permissionController.GetCustomPermission(canExecute: true); var isAddCommandFileSuccess = fileController.TryAddFile(commandName, FileExtension.exe, filePermission, binDirectory, out _); Debug.Assert(isAddCommandFileSuccess, $"Failed to add `{commandName}{FileExtension.exe.ToString()}` file under `{binDirectory.Name}` directory"); } }