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); } }
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())); }); }
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)); }
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); }); }
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)); }
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)); }
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)); }
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())); }); }
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" }; }); }
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"); }
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())); }); }
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" }; }); }