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 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); }