public void ShouldDeserializeBusySignalErrorDataCorrectly() { var expected = new Dictionary <String, Object>(); expected.Add("auth_request", "adc0d351-d8a8-11e8-9fe8-acde48001122"); expected.Add("my_auth", true); expected.Add("expires", new DateTime(2018, 11, 28, 22, 4, 44, DateTimeKind.Utc)); JsonNetJsonEncoder encoder = new JsonNetJsonEncoder(); string data = "{" + "\"error_code\": \"SVC-005\"," + "\"error_detail\": \"An auth already exists. Another one cannot be created until it is either responded to or expires in 250 seconds.\"," + "\"error_data\": {" + "\"auth_request\": \"adc0d351-d8a8-11e8-9fe8-acde48001122\"," + "\"my_auth\": true," + "\"expires\": \"2018-11-28T22:04:44Z\"" + "}" + "}"; IDictionary <String, Object> actual = encoder.DecodeObject <DomainError>(data).ErrorData; Assert.AreEqual(3, actual.Count, message: "Unexpected number of items in ErrorData"); Assert.IsTrue(actual.ContainsKey("auth_request"), "ErrorData has no auth_request key"); Assert.AreEqual("adc0d351-d8a8-11e8-9fe8-acde48001122", actual["auth_request"]); Assert.IsTrue(actual.ContainsKey("my_auth"), "ErrorData has no my_auth key"); Assert.AreEqual(true, actual["my_auth"]); Assert.IsTrue(actual.ContainsKey("expires"), "ErrorData has no expires key"); Assert.AreEqual(new DateTime(2018, 11, 28, 22, 4, 44, DateTimeKind.Utc), actual["expires"]); }
public void ShouldSerializeCorrectly_WithContext() { var encoder = new JsonNetJsonEncoder(); var o = new ServiceV3AuthsPostRequest("my-unique-user-identifier", null, "Authorizing charge for $12.34 at iovation.com", null, null, null, null, null); var json = encoder.EncodeObject(o); Assert.AreEqual("{\"username\":\"my-unique-user-identifier\",\"context\":\"Authorizing charge for $12.34 at iovation.com\"}", json); }
public void ShouldSerializeCorrectly() { var encoder = new JsonNetJsonEncoder(); var o = new ServiceV3SessionsDeleteRequest("my-unique-user-identifier"); var json = encoder.EncodeObject(o); Assert.AreEqual("{\"username\":\"my-unique-user-identifier\"}", json); }
public void ShouldSerializeCorrectly_WithPushTitle() { var encoder = new JsonNetJsonEncoder(); var o = new ServiceV3AuthsPostRequest("my-unique-user-identifier", null, null, null, null, "Push Title", null, null); var json = encoder.EncodeObject(o); Assert.AreEqual("{\"username\":\"my-unique-user-identifier\",\"push_title\":\"Push Title\"}", json); }
public void ShouldSerializeCorrectlyWithTTL() { var encoder = new JsonNetJsonEncoder(); var o = new DirectoryV3DevicesPostRequest("id", 1234); var json = encoder.EncodeObject(o); Assert.AreEqual("{\"identifier\":\"id\",\"ttl\":1234}", json); }
public void ShouldSerializeCorrectly() { var encoder = new JsonNetJsonEncoder(); var o = new DirectoryV3SessionsListPostRequest("id"); var json = encoder.EncodeObject(o); Assert.AreEqual("{\"identifier\":\"id\"}", json); }
public void ShouldDeserializeErrorCodeAndDetailCorrectly() { JsonNetJsonEncoder encoder = new JsonNetJsonEncoder(); string data = "{\"error_code\":\"Error Code\",\"error_detail\":\"Error Detail\"}"; DomainError actual = encoder.DecodeObject <DomainError>(data); Assert.AreEqual("Error Code", actual.ErrorCode); Assert.AreEqual("Error Detail", actual.ErrorDetail); }
public void ShouldSerializeCorrectly() { var encoder = new JsonNetJsonEncoder(); var deviceGuid = Guid.Parse("c4491b0f-70e4-44c0-82e7-d48127d5a77b"); var o = new DirectoryV3DevicesDeleteRequest("id", deviceGuid); var json = encoder.EncodeObject(o); Assert.AreEqual("{\"identifier\":\"id\",\"device_id\":\"c4491b0f-70e4-44c0-82e7-d48127d5a77b\"}", json); }
public void ShouldSerializeCorrectly_WithDenialReasons() { var encoder = new JsonNetJsonEncoder(); var denialReasons = new List <DenialReason> { new DenialReason("1", "Reason 1", true), new DenialReason("2", "Reason 2", false) }; var o = new ServiceV3AuthsPostRequest("my-unique-user-identifier", null, null, null, null, null, null, denialReasons); var json = encoder.EncodeObject(o); Assert.AreEqual("{\"username\":\"my-unique-user-identifier\",\"denial_reasons\":[{\"id\":\"1\",\"reason\":\"Reason 1\",\"fraud\":true},{\"id\":\"2\",\"reason\":\"Reason 2\",\"fraud\":false}]}", json); }
public void Serialization_MapperMapsNoMinimumRequirementsAndNoFactorsWhenNoneAreSpecified() { var expected = "{" + "\"minimum_requirements\":[]," + "\"factors\":[]" + "}"; var policy = new AuthPolicy(null, null, null, null, null, null, null); var actual = new JsonNetJsonEncoder().EncodeObject(policy); Assert.AreEqual(expected, actual); }
public void ShouldDeserialize() { var data = "[{\"status\": 1, \"updated\": \"2018-01-08T18:13:31Z\", \"name\": \"john\'s phone devin test\", \"created\": \"2018-01-08T18:13:31Z\", \"type\": \"IOS\", \"id\": \"77616b20-f49f-11e7-a34e-967362b04474\"}]"; var encoder = new JsonNetJsonEncoder(); var obj = encoder.DecodeObject <List <DirectoryV3DevicesListPostResponse.Device> >(data); Assert.IsTrue(obj.Count == 1); Assert.IsTrue(obj[0].Updated == new DateTime(2018, 1, 8, 18, 13, 31, DateTimeKind.Utc)); Assert.IsTrue(obj[0].Created == new DateTime(2018, 1, 8, 18, 13, 31, DateTimeKind.Utc)); Assert.IsTrue(obj[0].Name == "john\'s phone devin test"); Assert.IsTrue(obj[0].Id == Guid.Parse("77616b20-f49f-11e7-a34e-967362b04474")); Assert.IsTrue(obj[0].Status == 1); Assert.IsTrue(obj[0].Type == "IOS"); }
public void ShouldDecodeSameObjectAsEncoded() { var person = new TestPoco(); person.Age = 5; person.Name = "Bill"; var encoder = new JsonNetJsonEncoder(); var encoded = encoder.EncodeObject(person); var decodedObject = encoder.DecodeObject <TestPoco>(encoded); Assert.AreEqual(person.Age, decodedObject.Age); Assert.AreEqual(person.Name, decodedObject.Name); }
public void Serialization_ObjectParsesMinimumRequirementsAllOnlyWhenOnlySpecified() { var json = "{" + "\"minimum_requirements\":[{" + "\"requirement\":\"authenticated\"," + "\"any\":2" + "}]," + "\"factors\":[]" + "}"; var expected = new AuthPolicy(2, null, null, null, null, null); var actual = new JsonNetJsonEncoder().DecodeObject <AuthPolicy>(json); actual.ShouldCompare(expected); }
public void Serialization_MethodAmountPolicy() { var json = "{" + "\"type\": \"METHOD_AMOUNT\"," + "\"deny_emulator_simulator\": false," + "\"deny_rooted_jailbroken\": false," + "\"amount\": 1, " + "\"fences\": [ " + "{" + "\"name\": \"LV-89102\"," + "\"type\": \"TERRITORY\"," + "\"country\": \"US\", " + "\"postal_code\": \"89012\" " + "}," + "{" + "\"name\": \"California\", " + "\"type\": \"TERRITORY\", " + "\"country\": \"US\", " + "\"administrative_area\": \"US-CA\"," + "\"postal_code\": \"92535\" " + "}," + "{" + "\"name\": \"Ontario\", " + "\"type\": \"TERRITORY\"," + "\"country\": \"CA\", " + "\"administrative_area\": \"CA-ON\"" + "}" + "]" + "}"; var expected = new MethodAmountPolicy( amount: 1, denyEmulatorSimulator: false, denyRootedJailbroken: false, fences: new List <IFence>() { new TerritoryFence(country: "US", name: "LV-89102", administrativeArea: null, postalCode: "89012"), new TerritoryFence(country: "US", name: "California", administrativeArea: "US-CA", postalCode: "92535"), new TerritoryFence(country: "CA", name: "Ontario", administrativeArea: "CA-ON", postalCode: null) } ); var actual = new JsonNetJsonEncoder().DecodeObject <MethodAmountPolicy>(json); actual.ShouldCompare(expected); }
public void Serialization_ObjectParsesMinimumRequirementsTypesOnlyWhenOnlySpecified() { var json = "{" + "\"minimum_requirements\":[{" + "\"requirement\":\"authenticated\"," + "\"knowledge\":1," + "\"inherence\":1," + "\"possession\":1" + "}]," + "\"factors\":[]" + "}"; var expected = new AuthPolicy(null, true, true, true, null, null); var actual = new JsonNetJsonEncoder().DecodeObject <AuthPolicy>(json); actual.ShouldCompare(expected); }
public void Serialization_FactorsPolicy() { var json = "{" + "\"type\": \"FACTORS\"," + "\"deny_emulator_simulator\": false," + "\"deny_rooted_jailbroken\": false," + "\"factors\": [\"POSSESSION\"], " + "\"fences\": [ " + "{" + "\"name\": \"LV-89102\"," + "\"type\": \"TERRITORY\"," + "\"country\": \"US\", " + "\"postal_code\": \"89012\" " + "}," + "{" + "\"name\": \"Point A\", " + "\"type\": \"GEO_CIRCLE\", " + "\"latitude\": 123.45, " + "\"longitude\": -25.45," + "\"radius\": 105 " + "}," + "]" + "}"; var expected = new FactorsPolicy( factors: new List <string>() { "POSSESSION" }, denyEmulatorSimulator: false, denyRootedJailbroken: false, fences: new List <IFence>() { new TerritoryFence(country: "US", name: "LV-89102", administrativeArea: null, postalCode: "89012"), new GeoCircleFence(latitude: 123.45, name: "Point A", longitude: -25.45, radius: 105), } ); var actual = new JsonNetJsonEncoder().DecodeObject <FactorsPolicy>(json); actual.ShouldCompare(expected); }
public void Serialization_ObjectParsesNoMinimumRequirementsWhenThereAreNone() { var json = "{" + "\"minimum_requirements\":[]," + "\"factors\":[" + "{" + "\"factor\":\"device integrity\"," + "\"attributes\":{" + "\"factor enabled\":\"1\"" + "}" + "}" + "]" + "}"; var expected = new AuthPolicy(null, null, null, null, true, null); var actual = new JsonNetJsonEncoder().DecodeObject <AuthPolicy>(json); actual.ShouldCompare(expected); }
public void ShouldSerializeCorrectly_WithPolicy() { var encoder = new JsonNetJsonEncoder(); var policy = new AuthPolicy(2, null, null, null, null, new System.Collections.Generic.List <AuthPolicy.Location> { new AuthPolicy.Location { Radius = 60, Latitude = 27.175, Longitude = 78.0422 } } ); var o = new ServiceV3AuthsPostRequest("my-unique-user-identifier", policy, null, null, null, null, null, null); var json = encoder.EncodeObject(o); var expected = "{\"username\":\"my-unique-user-identifier\",\"policy\":{\"minimum_requirements\":[{\"requirement\":\"authenticated\",\"any\":2}],\"factors\":[{\"factor\":\"geofence\",\"requirement\":\"forced requirement\",\"priority\":1,\"attributes\":{\"locations\":[{\"radius\":60.0,\"latitude\":27.175,\"longitude\":78.0422}]}}]}}"; Assert.AreEqual(expected, json); }
public void Encode_BasicEncoding() { var o = new { name = "hi", age = 87, happy = 1.01, child = new { name = "kid", age = 12, happy = 1.02 } }; var encoder = new JsonNetJsonEncoder(); var result = encoder.EncodeObject(o); Assert.AreEqual("{\"name\":\"hi\",\"age\":87,\"happy\":1.01,\"child\":{\"name\":\"kid\",\"age\":12,\"happy\":1.02}}", result); }
public void Serialization_MapsNoMinimumRequirementsWhenNoneAreSpecified() { var expected = "{" + "\"minimum_requirements\":[]," + "\"factors\":[" + "{" + "\"factor\":\"device integrity\"," + "\"requirement\":\"forced requirement\"," + "\"attributes\":{" + "\"factor enabled\":1" + "}" + "}" + "]" + "}"; var policy = new AuthPolicy(null, null, null, null, true, null, null); var actual = new JsonNetJsonEncoder().EncodeObject(policy); Assert.AreEqual(expected, actual); }
public void Encode_ShouldReturnNullForNull() { var encoder = new JsonNetJsonEncoder(); Assert.IsNull(encoder.EncodeObject(null)); }
public void Serialization_ConditionalGeofence_Works() { var json = "{" + "\"type\": \"COND_GEO\"," + "\"deny_emulator_simulator\": false," + "\"deny_rooted_jailbroken\": false," + "\"fences\": [" + "{" + "\"country\": \"CA\"," + "\"type\": \"TERRITORY\"," + "\"name\": \"Ontario\"," + "\"administrative_area\": \"CA-ON\"" + "}" + "]," + "\"inside\": {" + "\"fences\": []," + "\"type\": \"FACTORS\"," + "\"factors\": [" + "\"POSSESSION\"" + "]" + "}," + "\"outside\": {" + "\"fences\": []," + "\"amount\": 1," + "\"type\": \"METHOD_AMOUNT\"" + "}}"; FactorsPolicy factorsPolicy = new FactorsPolicy( factors: new List <string>() { "POSSESSION" }, denyEmulatorSimulator: null, denyRootedJailbroken: null, fences: new List <IFence>() ); MethodAmountPolicy methodAmountPolicy = new MethodAmountPolicy( fences: new List <IFence>(), denyEmulatorSimulator: null, denyRootedJailbroken: null, amount: 1 ); var expected = new ConditionalGeoFencePolicy( denyRootedJailbroken: false, denyEmulatorSimulator: false, fences: new List <IFence>() { new TerritoryFence(name: "Ontario", country: "CA", administrativeArea: "CA-ON") }, inside: factorsPolicy, outside: methodAmountPolicy); var actual = new JsonNetJsonEncoder().DecodeObject <ConditionalGeoFencePolicy>(json); actual.ShouldCompare(expected); FactorsPolicy inside = (FactorsPolicy)actual.Inside; MethodAmountPolicy outside = (MethodAmountPolicy)actual.Outside; Assert.IsNull(inside.DenyEmulatorSimulator); Assert.IsNull(inside.DenyRootedJailbroken); Assert.IsNull(outside.DenyEmulatorSimulator); Assert.IsNull(outside.DenyRootedJailbroken); }
public void Serialization_FullObject_SerializesAsExpected() { var expected = "{" + "\"minimum_requirements\":[{" + "\"requirement\":\"authenticated\"," + "\"any\":2," + "\"knowledge\":1," + "\"inherence\":1," + "\"possession\":1" + "}]," + "\"factors\":[" + "{" + "\"factor\":\"geofence\"," + "\"requirement\":\"forced requirement\"," + "\"priority\":1," + "\"attributes\":{" + "\"locations\":[" + "{\"radius\":1.1,\"latitude\":2.1,\"longitude\":3.1}," + "{\"radius\":1.2,\"latitude\":2.2,\"longitude\":3.2}" + "]" + "}" + "},{" + "\"factor\":\"device integrity\"," + "\"requirement\":\"forced requirement\"," + "\"attributes\":{" + "\"factor enabled\":1" + "}" + "},{" + "\"factor\":\"timefence\"," + "\"requirement\":\"forced requirement\"," + "\"priority\":1," + "\"attributes\":{" + "\"time fences\":[" + "{\"name\":\"tf1\",\"days\":[\"Monday\",\"Tuesday\",\"Wednesday\"],\"start hour\":0,\"end hour\":23,\"start minute\":0,\"end minute\":59,\"timezone\":\"America/Los_Angeles\"}," + "{\"name\":\"tf2\",\"days\":[\"Thursday\",\"Friday\",\"Saturday\",\"Sunday\"],\"start hour\":0,\"end hour\":23,\"start minute\":0,\"end minute\":59,\"timezone\":\"America/Los_Angeles\"}" + "]" + "}" + "}" + "]" + "}"; var geoFences = new List <AuthPolicy.Location> { new AuthPolicy.Location { Radius = 1.1, Latitude = 2.1, Longitude = 3.1 }, new AuthPolicy.Location { Radius = 1.2, Latitude = 2.2, Longitude = 3.2 } }; var timeFences = new List <AuthPolicy.TimeFence> { new AuthPolicy.TimeFence("tf1", new List <string> { "Monday", "Tuesday", "Wednesday" }, 0, 23, 0, 59, "America/Los_Angeles"), new AuthPolicy.TimeFence("tf2", new List <string> { "Thursday", "Friday", "Saturday", "Sunday" }, 0, 23, 0, 59, "America/Los_Angeles") }; var policy = new AuthPolicy(2, true, true, true, true, geoFences, timeFences); var json = new JsonNetJsonEncoder(); var encoded = json.EncodeObject(policy); Assert.AreEqual(expected, encoded); }
public void Serialization_ObjectParsesAsExpected() { var json = "{" + "\"minimum_requirements\":[{" + "\"requirement\":\"authenticated\"," + "\"any\":2," + "\"knowledge\":1," + "\"inherence\":1," + "\"possession\":1" + "}]," + "\"factors\":[" + "{" + "\"factor\":\"geofence\"," + "\"requirement\":\"forced requirement\"," + "\"priority\":1," + "\"attributes\":{" + "\"locations\":[" + "{\"radius\":1.1,\"latitude\":2.1,\"longitude\":3.1}," + "{\"radius\":1.2,\"latitude\":2.2,\"longitude\":3.2}" + "]" + "}" + "},{" + "\"factor\":\"device integrity\"," + "\"attributes\":{" + "\"factor enabled\":\"1\"" + "}" + "},{" + "\"factor\":\"timefence\"," + "\"requirement\":\"forced requirement\"," + "\"priority\":1," + "\"attributes\":{" + "\"time fences\":[" + "{\"name\":\"tf1\",\"days\":[\"Monday\",\"Tuesday\",\"Wednesday\"],\"start hour\":0,\"end hour\":23,\"start minute\":0,\"end minute\":59,\"timezone\":\"America/Los_Angeles\"}," + "{\"name\":\"tf2\",\"days\":[\"Thursday\",\"Friday\",\"Saturday\",\"Sunday\"],\"start hour\":0,\"end hour\":23,\"start minute\":0,\"end minute\":59,\"timezone\":\"America/Los_Angeles\"}" + "]" + "}" + "}" + "]}"; var geoFences = new List <AuthPolicy.Location> { new AuthPolicy.Location(null, 1.1, 2.1, 3.1), new AuthPolicy.Location(null, 1.2, 2.2, 3.2) }; var timeFences = new List <AuthPolicy.TimeFence> { new AuthPolicy.TimeFence("tf1", new List <string> { "Monday", "Tuesday", "Wednesday" }, 0, 23, 0, 59, "America/Los_Angeles"), new AuthPolicy.TimeFence("tf2", new List <string> { "Thursday", "Friday", "Saturday", "Sunday" }, 0, 23, 0, 59, "America/Los_Angeles") }; var expected = new AuthPolicy(2, true, true, true, true, geoFences, timeFences); var actual = new JsonNetJsonEncoder().DecodeObject <AuthPolicy>(json); actual.ShouldCompare(expected); }