diff --git a/src/JsonApiDotNetCore/Models/Identifiable.cs b/src/JsonApiDotNetCore/Models/Identifiable.cs index 08dd43bf22..038544a89c 100644 --- a/src/JsonApiDotNetCore/Models/Identifiable.cs +++ b/src/JsonApiDotNetCore/Models/Identifiable.cs @@ -37,6 +37,9 @@ public string StringId /// protected virtual string GetStringId(object value) { + if(value == null) + return string.Empty; + var type = typeof(T); var stringValue = value.ToString(); diff --git a/test/UnitTests/Models/IdentifiableTests.cs b/test/UnitTests/Models/IdentifiableTests.cs index 778b1b485f..da4e30360a 100644 --- a/test/UnitTests/Models/IdentifiableTests.cs +++ b/test/UnitTests/Models/IdentifiableTests.cs @@ -21,6 +21,16 @@ public void Setting_StringId_To_Null_Sets_Id_As_Default() Assert.Equal(0, resource.Id); } - private class IntId : Identifiable { } + [Fact] + public void GetStringId_Returns_EmptyString_If_Object_Is_Null() + { + var resource = new IntId(); + var stringId = resource.ExposedGetStringId(null); + Assert.Equal(string.Empty, stringId); + } + + private class IntId : Identifiable { + public string ExposedGetStringId(object value) => GetStringId(value); + } } }