Esempio n. 1
0
        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"]);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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);
        }
Esempio n. 13
0
        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);
        }
Esempio n. 14
0
        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);
        }
Esempio n. 15
0
        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);
        }
Esempio n. 16
0
        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);
        }
Esempio n. 17
0
        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);
        }
Esempio n. 18
0
        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);
        }
Esempio n. 20
0
        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));
        }
Esempio n. 22
0
        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);
        }
Esempio n. 23
0
        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);
        }
Esempio n. 24
0
        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);
        }