From
NCBC-306: .NET GetJSON operation throws null reference exception
Add support for null values persisted for a key via the
CouchbaseClientExtensions.GetJson(…) method. This method will no
longer thrown a NullReferenceException when the value store for a
key is null and instead simply return null.
[Test]
-
public void Test_That_GetJson_Supports_Null_Values() -
{ -
var key = "A_NULL_THING"; -
var result = Client.StoreJson(StoreMode.Set, key, null); -
Assert.AreEqual(true, result); -
var nullResult = Client.GetJson<Thing>(key); -
Assert.AreEqual(null, nullResult); -
}
I’m not sure this test works for all cases. Say I just started my application can called
var returnedString = Client.GetJson(key);
But there isn’t anything in the system because I just started up, I’ll get a ‘System.ArgumentNullException’ because:
public static T GetJson(this ICouchbaseClient client, string key) where T : class
{
var json = client.Get(key);
return json == Null ? null : DeserializeObject(key, json);
}
The value ‘json’ will actually equal null. Since in this test it won’t equal the string “Null”, it will attempt to call DeserializeObject(key, json), with a null value for ‘json’.
see following test
[Test]
public void Test_That_GetJson_Supports_Empty_Values()
{
//ensure key and value are not stored in the system
var nullResult = Client.GetJson(“my key”);
Assert.AreEqual(null, nullResult);
//fails
}