public void Test_To_Transport_Works()
        {
            var expected = new TransportDomain.FactorsPolicy(
                new List <string>()
            {
                "KNOWLEDGE", "POSSESSION", "INHERENCE"
            },
                false,
                false,
                new List <TransportDomain.IFence>()
                );

            var factorsPolicy = new FactorsPolicy(
                null, true, true, true, false, false
                );

            TransportDomain.FactorsPolicy actual = (TransportDomain.FactorsPolicy)factorsPolicy.ToTransport();

            Assert.IsInstanceOfType(actual, typeof(TransportDomain.FactorsPolicy));
            Assert.AreEqual(expected.DenyEmulatorSimulator, actual.DenyEmulatorSimulator);
            Assert.AreEqual(expected.DenyRootedJailbroken, actual.DenyRootedJailbroken);
            Assert.AreEqual(expected.Factors.Count, actual.Factors.Count);
            CollectionAssert.AreEquivalent(expected.Factors, actual.Factors);
            CollectionAssert.AreEquivalent(expected.Fences, actual.Fences);
        }
        public void Test_Deny_Attributes_Can_Be_Null_For_Nested_Policies()
        {
            FactorsPolicy factorsPolicy = new FactorsPolicy(null, true, true, true, null, null);

            Assert.IsNull(factorsPolicy.DenyEmulatorSimulator);
            Assert.IsNull(factorsPolicy.DenyRootedJailbroken);
        }
        public void Test_Constructor()
        {
            List <IFence> fences = new List <IFence>()
            {
                new TerritoryFence("US")
            };
            FactorsPolicy policy = new FactorsPolicy(fences, true, true, true, true, true);

            Assert.AreEqual(true, policy.DenyEmulatorSimulator);
            Assert.AreEqual(true, policy.DenyRootedJailbroken);
            Assert.AreEqual(true, policy.RequireInherenceFactor);
            Assert.AreEqual(true, policy.RequireKnowledgeFactor);
            Assert.AreEqual(true, policy.RequirePossessionFactor);
            Assert.AreEqual(1, policy.Fences.Count);
            Assert.AreEqual("US", (policy.Fences[0] as TerritoryFence)?.Country);
        }
        public void WhenISetTheOutsidePolicyFactorsTo(string factors)
        {
            FactorsPolicy currentPolicy     = ((_directoryClientContext.LoadedAdvancedServicePolicy as ConditionalGeoFencePolicy).Outside as FactorsPolicy);
            bool          requireKnowledge  = factors.ToLower().Contains("knowledge");
            bool          requirePossession = factors.ToLower().Contains("possession");
            bool          requireInherence  = factors.ToLower().Contains("inherence");
            FactorsPolicy newPolicy         = new FactorsPolicy(
                fences: currentPolicy.Fences,
                requireKnowledgeFactor: requireKnowledge,
                requirePossessionFactor: requirePossession,
                requireInherenceFactor: requireInherence,
                denyRootedJailbroken: currentPolicy.DenyRootedJailbroken,
                denyEmulatorSimulator: currentPolicy.DenyEmulatorSimulator
                );

            _directoryClientContext.SetOutsideConditionalGeofencePolicy(newPolicy);
        }
Example #5
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);
        }
        public void WhenISetTheOutsidePolicyToANewFactorsPolicy()
        {
            FactorsPolicy insidePolicy = new FactorsPolicy(null, true);

            _directoryClientContext.SetOutsideConditionalGeofencePolicy(insidePolicy);
        }
Example #7
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);
        }