public void ExceptionTest() { bool expectedExceptionRaised = false; try { ResourceReference.ParseJson(null); } catch (ArgumentNullException) { expectedExceptionRaised = true; } Assert.IsTrue(expectedExceptionRaised, "ArgumentNullException expected on null input"); expectedExceptionRaised = false; Deserializer deserializer = new Deserializer(); string invalidRefJson = "{ \"api-ref\" : 5, \"href\" : \"http://domain/sally/notes\"}"; deserializer.SetInput(invalidRefJson); JsonObject refObj = (JsonObject)deserializer.Deserialize(); try { ResourceReference.ParseJson(refObj); } catch (InvalidCastException) { expectedExceptionRaised = true; } Assert.IsTrue(expectedExceptionRaised, "InvalidCastException expected on invalid input"); }
public void ParseTest() { Deserializer deserializer = new Deserializer(); string refJson = "{ \"api-ref\" : \"http://domain/api/1.0/sally/notes\", \"href\" : \"http://domain/sally/notes\"}"; deserializer.SetInput(refJson); JsonObject refObj = (JsonObject)deserializer.Deserialize(); ResourceReference resourceRef = ResourceReference.ParseJson(refObj); Assert.AreEqual("http://domain/api/1.0/sally/notes", resourceRef.ApiRef, "ApiRef"); Assert.AreEqual("http://domain/sally/notes", resourceRef.Href, "Href"); refJson = "{ \"api-ref\" : \"http://domain/api/1.0/sally/notes\"}"; deserializer.SetInput(refJson); refObj = (JsonObject)deserializer.Deserialize(); resourceRef = ResourceReference.ParseJson(refObj); Assert.AreEqual("http://domain/api/1.0/sally/notes", resourceRef.ApiRef, "ApiRef"); Assert.IsNull(resourceRef.Href, "Href should be null when none specified"); refJson = "{ \"href\" : \"http://domain/sally/notes\"}"; deserializer.SetInput(refJson); refObj = (JsonObject)deserializer.Deserialize(); resourceRef = ResourceReference.ParseJson(refObj); Assert.AreEqual("http://domain/sally/notes", resourceRef.Href, "Href"); Assert.IsNull(resourceRef.ApiRef, "ApiRef should be null when none specified"); }