コード例 #1
0
        public void SettingsProviderEnv_VarsSet_Success()
        {
            var ProjectId = Environment.GetEnvironmentVariable("KEEN_PROJECT_ID");
            var MasterKey = Environment.GetEnvironmentVariable("KEEN_MASTER_KEY");
            var WriteKey  = Environment.GetEnvironmentVariable("KEEN_WRITE_KEY");
            var ReadKey   = Environment.GetEnvironmentVariable("KEEN_READ_KEY");

            try
            {
                Environment.SetEnvironmentVariable("KEEN_PROJECT_ID", "X");
                Environment.SetEnvironmentVariable("KEEN_MASTER_KEY", "X");
                Environment.SetEnvironmentVariable("KEEN_WRITE_KEY", "X");
                Environment.SetEnvironmentVariable("KEEN_READ_KEY", "X");

                var settings = new ProjectSettingsProviderEnv();
                Assert.DoesNotThrow(() => new KeenClient(settings));
            }
            finally
            {
                Environment.SetEnvironmentVariable("KEEN_PROJECT_ID", ProjectId);
                Environment.SetEnvironmentVariable("KEEN_MASTER_KEY", MasterKey);
                Environment.SetEnvironmentVariable("KEEN_WRITE_KEY", WriteKey);
                Environment.SetEnvironmentVariable("KEEN_READ_KEY", ReadKey);
            }
        }
コード例 #2
0
        public void RoundTrip_PopulatedObject_WithIV_Success()
        {
            var settings = new ProjectSettingsProviderEnv();
            var IV       = "C0FFEEC0FFEEC0FFEEC0FFEEC0FFEEC0";

            IDictionary <string, object> filter = new ExpandoObject();

            filter.Add("property_name", "account_id");
            filter.Add("operator", "eq");
            filter.Add("property_value", 123);

            dynamic secOpsIn = new ExpandoObject();

            secOpsIn.filters = new List <object>()
            {
                filter
            };
            secOpsIn.allowed_operations = new List <string>()
            {
                "read"
            };
            Assert.DoesNotThrow(() =>
            {
                var scopedKey = ScopedKey.Encrypt(settings.MasterKey, (object)secOpsIn, IV);
                var decrypted = ScopedKey.Decrypt(settings.MasterKey, scopedKey);
                var secOpsOut = JObject.Parse(decrypted);
                Assert.True(secOpsIn.allowed_operations[0] == (string)(secOpsOut["allowed_operations"].First()));
            });
        }
コード例 #3
0
        public void SettingsProviderEnv_VarsSet_Success()
        {
            var ProjectId = Environment.GetEnvironmentVariable("KEEN_PROJECT_ID");
            var MasterKey = Environment.GetEnvironmentVariable("KEEN_MASTER_KEY");
            var WriteKey = Environment.GetEnvironmentVariable("KEEN_WRITE_KEY");
            var ReadKey = Environment.GetEnvironmentVariable("KEEN_READ_KEY");

            try
            {
                Environment.SetEnvironmentVariable("KEEN_PROJECT_ID", "X");
                Environment.SetEnvironmentVariable("KEEN_MASTER_KEY", "X");
                Environment.SetEnvironmentVariable("KEEN_WRITE_KEY", "X");
                Environment.SetEnvironmentVariable("KEEN_READ_KEY", "X");

                var settings = new ProjectSettingsProviderEnv();
                Assert.DoesNotThrow(() => new KeenClient(settings));
            }
            finally
            {
                Environment.SetEnvironmentVariable("KEEN_PROJECT_ID", ProjectId);
                Environment.SetEnvironmentVariable("KEEN_MASTER_KEY", MasterKey);
                Environment.SetEnvironmentVariable("KEEN_WRITE_KEY", WriteKey);
                Environment.SetEnvironmentVariable("KEEN_READ_KEY", ReadKey);
            }
        }
コード例 #4
0
        public void Decrypt_WriteKey_Success()
        {
            // if mocking is turned on, the write key will be fake and not decryptable, so skip the test
            if (UseMocks)
                return;

            var settings = new ProjectSettingsProviderEnv();
            Assert.DoesNotThrow(() => ScopedKey.Decrypt(settings.MasterKey, settings.WriteKey));
        }
コード例 #5
0
        public void Encrypt_PopulatedObject_Success()
        {
            Assert.DoesNotThrow(() =>
            {
                var settings = new ProjectSettingsProviderEnv();

                const string str = "{\"filters\": [{\"property_name\": \"account_id\",\"operator\": \"eq\",\"property_value\": 123}],\"allowed_operations\": [ \"read\" ]}";
                var secOps = JObject.Parse(str);
                var scopedKey = ScopedKey.Encrypt(settings.MasterKey, secOps);
            });
        }
コード例 #6
0
        public void Encrypt_PopulatedObject_Success()
        {
            Assert.DoesNotThrow(() =>
            {
                var settings = new ProjectSettingsProviderEnv();

                const string str = "{\"filters\": [{\"property_name\": \"account_id\",\"operator\": \"eq\",\"property_value\": 123}],\"allowed_operations\": [ \"read\" ]}";
                var secOps       = JObject.Parse(str);
                var scopedKey    = ScopedKey.Encrypt(settings.MasterKey, secOps);
            });
        }
コード例 #7
0
        public void SettingsProviderEnv_VarsSet_Success()
        {
            Environment.SetEnvironmentVariable(KeenConstants.KeenProjectId, "X");
            Environment.SetEnvironmentVariable(KeenConstants.KeenMasterKey, "X");
            Environment.SetEnvironmentVariable(KeenConstants.KeenWriteKey, "X");
            Environment.SetEnvironmentVariable(KeenConstants.KeenReadKey, "X");

            var settings = new ProjectSettingsProviderEnv();

            Assert.DoesNotThrow(() => new KeenClient(settings));
        }
コード例 #8
0
        public void SettingsProviderEnv_VarsNotSet_Throws()
        {
            Environment.SetEnvironmentVariable(KeenConstants.KeenProjectId, null);
            Environment.SetEnvironmentVariable(KeenConstants.KeenMasterKey, null);
            Environment.SetEnvironmentVariable(KeenConstants.KeenWriteKey, null);
            Environment.SetEnvironmentVariable(KeenConstants.KeenReadKey, null);

            var settings = new ProjectSettingsProviderEnv();

            Assert.Throws <KeenException>(() => new KeenClient(settings));
        }
コード例 #9
0
        public void Decrypt_WriteKey_Success()
        {
            // if mocking is turned on, the write key will be fake and not decryptable, so skip the test
            if (UseMocks)
            {
                return;
            }

            var settings = new ProjectSettingsProviderEnv();

            Assert.DoesNotThrow(() => ScopedKey.Decrypt(settings.MasterKey, settings.WriteKey));
        }
コード例 #10
0
        public void RoundTrip_PopulatedObject_WithIV_Success()
        {
            var settings = new ProjectSettingsProviderEnv();
            const string IV = "C0FFEEC0FFEEC0FFEEC0FFEEC0FFEEC0";

            const string str = "{\"filters\": [{\"property_name\": \"account_id\",\"operator\": \"eq\",\"property_value\": 123}],\"allowed_operations\": [ \"read\" ]}";
            var secOps = JObject.Parse(str);
            
            Assert.DoesNotThrow(() =>
            {
                var scopedKey = ScopedKey.Encrypt(settings.MasterKey, secOps, IV);
                var decrypted = ScopedKey.Decrypt(settings.MasterKey, scopedKey);
                var secOpsOut = JObject.Parse(decrypted);
                Assert.True((string)secOps["allowed_operations"].First() == (string)(secOpsOut["allowed_operations"].First()));
            });
        }
コード例 #11
0
        public void RoundTrip_PopulatedObject_WithIV_Success()
        {
            var          settings = new ProjectSettingsProviderEnv();
            const string IV       = "C0FFEEC0FFEEC0FFEEC0FFEEC0FFEEC0";

            const string str    = "{\"filters\": [{\"property_name\": \"account_id\",\"operator\": \"eq\",\"property_value\": 123}],\"allowed_operations\": [ \"read\" ]}";
            var          secOps = JObject.Parse(str);

            Assert.DoesNotThrow(() =>
            {
                var scopedKey = ScopedKey.Encrypt(settings.MasterKey, secOps, IV);
                var decrypted = ScopedKey.Decrypt(settings.MasterKey, scopedKey);
                var secOpsOut = JObject.Parse(decrypted);
                Assert.True((string)secOps["allowed_operations"].First() == (string)(secOpsOut["allowed_operations"].First()));
            });
        }
コード例 #12
0
        public void Encrypt_PopulatedObject_Success()
        {
            Assert.DoesNotThrow(() =>
            {
                var settings = new ProjectSettingsProviderEnv();

                dynamic secOps = new ExpandoObject();

                IDictionary<string, object> filter = new ExpandoObject();
                filter.Add("property_name", "account_id" );
                filter.Add("operator", "eq" );
                filter.Add("property_value", 123 );
                secOps.filters = new List<object>(){ filter };
                secOps.allowed_operations = new List<string>(){ "read" };
            });
        }
コード例 #13
0
        public void SettingsProviderEnv_VarsSet_SettingsAreCorrect()
        {
            var projectId = "projectId";
            var masterKey = "masterKey";
            var writeKey  = "writeKey";
            var readKey   = "readKey";

            Environment.SetEnvironmentVariable(KeenConstants.KeenProjectId, projectId);
            Environment.SetEnvironmentVariable(KeenConstants.KeenMasterKey, masterKey);
            Environment.SetEnvironmentVariable(KeenConstants.KeenWriteKey, writeKey);
            Environment.SetEnvironmentVariable(KeenConstants.KeenReadKey, readKey);

            var settings = new ProjectSettingsProviderEnv();

            Assert.AreEqual(settings.ProjectId, projectId, "Project id wasn't properly set");
            Assert.AreEqual(settings.MasterKey, masterKey, "Master key wasn't properly set");
            Assert.AreEqual(settings.WriteKey, writeKey, "Write key wasn't properly set");
            Assert.AreEqual(settings.ReadKey, readKey, "Read key wasn't properly set");
        }
コード例 #14
0
        public void RoundTrip_PopulatedObject_Success()
        {
            var settings = new ProjectSettingsProviderEnv();

            IDictionary<string, object> filter = new ExpandoObject();
            filter.Add("property_name", "account_id");
            filter.Add("operator", "eq");
            filter.Add("property_value", 123);

            dynamic secOpsIn = new ExpandoObject();
            secOpsIn.filters = new List<object>() { filter };
            secOpsIn.allowed_operations = new List<string>() { "read" };
            Assert.DoesNotThrow(() =>
            {
                var scopedKey = ScopedKey.Encrypt(settings.MasterKey, (object)secOpsIn);
                var decrypted = ScopedKey.Decrypt(settings.MasterKey, scopedKey);
                var secOpsOut = JObject.Parse(decrypted);
                Assert.True(secOpsIn.allowed_operations[0] == (string)(secOpsOut["allowed_operations"].First()));
            });
        }
コード例 #15
0
        public void Encrypt_PopulatedObject_Success()
        {
            Assert.DoesNotThrow(() =>
            {
                var settings = new ProjectSettingsProviderEnv();

                dynamic secOps = new ExpandoObject();

                IDictionary <string, object> filter = new ExpandoObject();
                filter.Add("property_name", "account_id");
                filter.Add("operator", "eq");
                filter.Add("property_value", 123);
                secOps.filters = new List <object>()
                {
                    filter
                };
                secOps.allowed_operations = new List <string>()
                {
                    "read"
                };
            });
        }