Ejemplo n.º 1
0
        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);
        }