diff --git a/MagikaNet.Tests/MagikaClientTests.cs b/MagikaNet.Tests/MagikaClientTests.cs index 1d3b376..7b594fb 100644 --- a/MagikaNet.Tests/MagikaClientTests.cs +++ b/MagikaNet.Tests/MagikaClientTests.cs @@ -24,8 +24,8 @@ public void JpegFile_DetectedSuccessfully() Assert.That(r, Is.Not.Null); Assert.That(r.Status, Is.EqualTo("ok")); Assert.That(r.FileType, Is.EqualTo("file")); - Assert.That(r.Value.Output.Label, Is.EqualTo("jpeg")); - Assert.That(r.Value.Output.MimeType, Is.EqualTo("image/jpeg")); + Assert.That(r.Value!.Output.Label, Is.EqualTo("jpeg")); + Assert.That(r.Value!.Output.MimeType, Is.EqualTo("image/jpeg")); } [Test] @@ -50,7 +50,7 @@ public void ShellBytes_DetectedSuccessfully() Assert.That(r, Is.Not.Null); Assert.That(r.Status, Is.EqualTo("ok")); Assert.That(r.FileType, Is.EqualTo("file")); - Assert.That(r.Value.Output.Label, Is.EqualTo("shell")); + Assert.That(r.Value!.Output.Label, Is.EqualTo("shell")); } [Test] @@ -62,4 +62,22 @@ public void EmptyBytes_ReturnsEmptyOutput() var d = m.DetectBytesJson(bytes); Assert.That(d, Contains.Substring("label\":\"empty")); } -} \ No newline at end of file + + [Test] + public void MissingFile_ReturnsErrorStatus() + { + using var m = new MagikaClient(); + + var result = m.DetectPath("nonexistent_file.txt"); + + Assert.That(result, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(result.Status, Is.EqualTo("error")); + Assert.That(result.Message, Is.Not.Null); + Assert.That(result.Message, Is.Not.Empty); + Assert.That(result.FileType, Is.Null); + Assert.That(result.Value, Is.Null); + }); + } +} diff --git a/MagikaNet/DetectionResult.cs b/MagikaNet/DetectionResult.cs index 5617505..b427d86 100644 --- a/MagikaNet/DetectionResult.cs +++ b/MagikaNet/DetectionResult.cs @@ -7,11 +7,14 @@ public class DetectionResult [JsonPropertyName("status")] public required string Status { get; set; } + [JsonPropertyName("message")] + public string? Message { get; set; } + [JsonPropertyName("type")] - public required string FileType { get; set; } + public string? FileType { get; set; } [JsonPropertyName("value")] - public required ValueData Value { get; set; } + public ValueData? Value { get; set; } } public class ValueData