public byte[] ProcessRequest(RequestUrl url) { if (url.Resource != "files.json") { throw new InvalidOperationException("Api function unknown"); } var folderParameter = url.Parameters.SingleOrDefault( p => p.Key.Equals("directory", StringComparison.OrdinalIgnoreCase)); if (folderParameter == null) { throw new InvalidOperationException("Specify parameter directory"); } FilesRequestResponse response; try { response = new FilesRequestResponse { Files = fileSystem.GetFiles(folderParameter.Value).ToArray() }; } catch (IOException exception) { response = new FilesRequestResponse { ErrorMessage = exception.Message }; } return(Encoding.UTF8.GetBytes(response.ToJson())); }
public void FromJson_WithFiles_ReturnsFilesAndLeavesErrorMessageEmpty() { var json = "{\"files\":[{\"kind\":0,\"path\":\"TempPath\"}],\"errorMessage\":null}"; var result = FilesRequestResponse.FromJson(json); Assert.IsNull(result.ErrorMessage); Assert.AreEqual(result.Files.Single().Path, "TempPath"); }
public void FromJson_WithErrorMessage_ReturnsMessage() { var json = "{\"files\":null,\"errorMessage\":\"This is a error message\"}"; var result = FilesRequestResponse.FromJson(json); Assert.AreEqual("This is a error message", result.ErrorMessage); Assert.IsNull(result.Files); }
public void ToJson_WithError_SerializesToJson() { var testee = new FilesRequestResponse { ErrorMessage = "This is a error message" }; var result = testee.ToJson(); Assert.AreEqual("{\"files\":null,\"errorMessage\":\"This is a error message\"}", result); }
public void ToJson_WithFiles_SerializesJson() { var file = new File { Kind = FileKind.File, Path = "TempPath" }; var testee = new FilesRequestResponse { Files = new[] { file } }; var result = testee.ToJson(); Assert.AreEqual("{\"files\":[{\"kind\":0,\"path\":\"TempPath\"}],\"errorMessage\":null}", result); }