From 56480c7c0a60d175e981409a2989acd0c92a929b Mon Sep 17 00:00:00 2001 From: bakerboy448 <55419169+bakerboy448@users.noreply.github.com> Date: Fri, 5 Sep 2025 09:41:27 -0500 Subject: [PATCH] Fixed: Null Tag Handling --- .../Identification/DistanceFixture.cs | 24 +++++++++++++++++++ .../TrackImport/Identification/Distance.cs | 4 ++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Identification/DistanceFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Identification/DistanceFixture.cs index 8c0851f6d..c263a7e5a 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Identification/DistanceFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Identification/DistanceFixture.cs @@ -163,5 +163,29 @@ public void test_raw_distance() dist.RawDistance().Should().Be(2.25); } + + [Test] + public void test_add_string_null_handling() + { + var dist = new Distance(); + + dist.AddString("string", null, "target"); + dist.Penalties.Should().BeEquivalentTo(new Dictionary> { { "string", new List { 1.0 } } }); + + dist.AddString("string2", "value", null); + dist.Penalties.Should().BeEquivalentTo(new Dictionary> + { + { "string", new List { 1.0 } }, + { "string2", new List { 1.0 } } + }); + + dist.AddString("string3", null, null); + dist.Penalties.Should().BeEquivalentTo(new Dictionary> + { + { "string", new List { 1.0 } }, + { "string2", new List { 1.0 } }, + { "string3", new List { 0.0 } } + }); + } } } diff --git a/src/NzbDrone.Core/MediaFiles/TrackImport/Identification/Distance.cs b/src/NzbDrone.Core/MediaFiles/TrackImport/Identification/Distance.cs index 12fa48af2..63a9f5633 100644 --- a/src/NzbDrone.Core/MediaFiles/TrackImport/Identification/Distance.cs +++ b/src/NzbDrone.Core/MediaFiles/TrackImport/Identification/Distance.cs @@ -125,8 +125,8 @@ private static string Clean(string input) public void AddString(string key, string value, string target) { // Adds a penaltly based on the distance between value and target - var cleanValue = Clean(value); - var cleanTarget = Clean(target); + var cleanValue = Clean(value ?? string.Empty); + var cleanTarget = Clean(target ?? string.Empty); if (cleanValue.IsNullOrWhiteSpace() && cleanTarget.IsNotNullOrWhiteSpace()) {