public async Task CanAccess_ApiKey_SingleDistribution_ById_AndUpdate_DistributionMetadata_SingleField() { if (_accountIsNotPro) { Assert.Inconclusive("The API key used for this test run is not enabled for Full Access. Please upgrade the account or use an API key that has the necessary permissions."); return; } using (var client = new M2XClient(_masterKey)) { var distribution = client.Distribution(_distributions["primary"].id); var updateMetaDataValue = "The man sitting next to the man..."; var updateMetaDataParams = $"{{ \"value\": \"{updateMetaDataValue}\" }}"; var result = await distribution.UpdateMetadataField(Constants.TestMetadataDefaultFieldName, updateMetaDataParams); RequestWasProcessedAndReturnedExpectedValue(result); var verifyUpdateResult = await distribution.Metadata(); Assert.IsNotNull(verifyUpdateResult); Assert.IsFalse(verifyUpdateResult.Error); Assert.IsFalse(verifyUpdateResult.ServerError); Assert.IsNull(verifyUpdateResult.WebError); Assert.IsFalse(string.IsNullOrWhiteSpace(verifyUpdateResult.Raw)); Assert.IsTrue(verifyUpdateResult.Raw.Length > 6); Assert.IsTrue(verifyUpdateResult.Raw.ToLowerInvariant().Contains(updateMetaDataValue.ToLowerInvariant())); } }
private static void DestroyTestResources() { if ((_devices != null && _devices.Any()) || (_distributions != null && _distributions.Any())) { using (var client = new M2XClient(_masterKey)) { if (_distributions != null && _distributions.Any()) { for (var i = _distributions.Count(); i > 0; i--) { var _distribution = _distributions.ElementAt(i - 1); var distribution = client.Distribution(_distribution.Value.id); var result = distribution.Delete().Result; System.Threading.Thread.Sleep(250); _distributions.Remove(_distribution.Key); } } if (_devices != null && _devices.Any()) { for (var i = _devices.Count(); i > 0; i--) { var _device = _devices.ElementAt(i - 1); var device = client.Device(_device.Value.id); var result = device.Delete().Result; System.Threading.Thread.Sleep(250); _devices.Remove(_device.Key); } } } } }
public static void InitializeTestSpecs(TestContext testContext) { _devices = new Dictionary <string, Device>(); _distributions = new Dictionary <string, Distribution>(); _testDeviceSerial = $"td-{DateTime.UtcNow.Ticks}"; using (var client = new M2XClient(_masterKey)) { var createDeviceParms = $"{{ \"base_device\": \"d781ab7460136af9db496c97172a6e6c\", \"name\": \"{Constants.TestDeviceNamePrefix} {DateTime.UtcNow.Ticks}\", \"description\": \"{Constants.TestDeviceDescription}\", \"serial\": \"{_testDeviceSerial}\", \"visibility\": \"private\" }}"; var createDeviceResult = client.CreateDevice(createDeviceParms).Result; var device = JsonConvert.DeserializeObject <Device>(createDeviceResult.Raw); _devices.Add("primary", device); _testDeviceId = device.id; var testDevice = client.Device(device.id); var updateTagsParms = "{ \"tags\": \"test only\" }"; var resultTags = testDevice.Update(updateTagsParms).Result; for (var i = 0; i < 5; i++) { var updateLocationParms = $"{{ \"name\": \"Test Device Location{i + 1}\", \"latitude\": {(Constants.TestDeviceLatitude + i)}, \"longitude\": {(Constants.TestDeviceLongitude + i)} }}"; var resultLocation = testDevice.UpdateLocation(updateLocationParms).Result; } var updateMetadataParms = $"{{ \"{Constants.TestMetadataDefaultFieldName}\": \"{Constants.TestMetadataDefaultFieldValue}\" }} "; var resultMetadata = testDevice.UpdateMetadata(updateMetadataParms); var stream01UpdateParms = $"{{ \"values\": [ {{ \"timestamp\": \"{DateTime.Now.AddSeconds(-10).ToString("yyyy-MM-ddTHH:mm:ssZ")}\", \"value\": 98.6 }}, {{ \"timestamp\": \"{DateTime.Now.AddSeconds(-5).ToString("yyyy-MM-ddTHH:mm:ssZ")}\", \"value\": 98.7 }} ] }}"; var stream01 = testDevice.Stream(Constants.TestStreamName001); var resultStream01Post = stream01.PostValues(stream01UpdateParms).Result; System.Threading.Thread.Sleep(250); var stream02UpdateParms = $"{{ \"values\": [ {{ \"timestamp\": \"{DateTime.Now.AddSeconds(-10).ToString("yyyy-MM-ddTHH:mm:ssZ")}\", \"value\": \"normal\" }}, {{ \"timestamp\": \"{DateTime.Now.AddSeconds(-5).ToString("yyyy-MM-ddTHH:mm:ssZ")}\", \"value\": \"normal\" }} ] }}"; var stream02 = testDevice.Stream(Constants.TestStreamName002); var resultStream02Post = stream02.PostValues(stream02UpdateParms).Result; System.Threading.Thread.Sleep(250); var testDistributionCreateParms = $"{{ \"name\": \"Test Distribution {DateTime.Now.Ticks}\", \"description\": \"This is just a test!\", \"visibility\": \"private\", \"base_device\": \"{_testDeviceId}\", \"metadata\": {{ \"{Constants.TestMetadataDefaultFieldName}\": \"{Constants.TestMetadataDefaultFieldValue}\" }} }}"; var testDistributionCreateResult = client.CreateDistribution(testDistributionCreateParms).Result; _accountIsNotPro = testDistributionCreateResult.Error; if (_accountIsNotPro) { return; } var testDistribution = JsonConvert.DeserializeObject <Distribution>(testDistributionCreateResult.Raw); var distributionAddDeviceParms = $"{{ \"serial\": \"td-{(DateTime.UtcNow.Ticks + 50)}\" }}"; var distributionDeviceData = client.Distribution(testDistribution.id).AddDevice(distributionAddDeviceParms).Result; var distributionDevice = JsonConvert.DeserializeObject <Device>(distributionDeviceData.Raw); _devices.Add(distributionDevice.serial, distributionDevice); _distributions.Add("primary", testDistribution); System.Threading.Thread.Sleep(250); } }
public async Task CanAccess_ApiKey_SingleDistribution_ById_AndUpdate_DistributionMetadata() { if (_accountIsNotPro) { Assert.Inconclusive("The API key used for this test run is not enabled for Full Access. Please upgrade the account or use an API key that has the necessary permissions."); return; } using (var client = new M2XClient(_masterKey)) { var distributionName = $"*** PLEASE DELETE ME *** Test Auto Created Distribution {DateTime.UtcNow.Ticks}"; var distributionParameters = $"{{ \"name\": \"{distributionName}\", \"visibility\": \"private\", \"metadata\": {{ \"{Constants.TestMetadataDefaultFieldName}\": \"{Constants.TestMetadataDefaultFieldValue}\" }} }}"; var createDistributionResult = await client.CreateDistribution(distributionParameters); Assert.IsNotNull(createDistributionResult); Assert.IsFalse(createDistributionResult.Error); Assert.IsFalse(createDistributionResult.ServerError); Assert.IsNull(createDistributionResult.WebError); Assert.IsFalse(string.IsNullOrWhiteSpace(createDistributionResult.Raw)); var distributionData = JsonConvert.DeserializeObject <Distribution>(createDistributionResult.Raw); var distribution = client.Distribution(distributionData.id); _distributions.Add(distributionName, distributionData); var updateMetaDataValue = "The man sitting next to the man..."; var updateMetaDataParams = $"{{ \"owner\": \"{updateMetaDataValue}\" }}"; var result = await distribution.UpdateMetadata(updateMetaDataParams); RequestWasProcessedAndReturnedExpectedValue(result); var verifyUpdateResult = await distribution.Metadata(); Assert.IsNotNull(verifyUpdateResult); Assert.IsFalse(verifyUpdateResult.Error); Assert.IsFalse(verifyUpdateResult.ServerError); Assert.IsNull(verifyUpdateResult.WebError); Assert.IsFalse(string.IsNullOrWhiteSpace(verifyUpdateResult.Raw)); Assert.IsTrue(verifyUpdateResult.Raw.Length > 6); Assert.IsTrue(verifyUpdateResult.Raw.ToLowerInvariant().Contains(updateMetaDataValue.ToLowerInvariant())); } }
public async Task CanAccess_ApiKey_SingleDistribution_ById_AndView_SingleMetadataField() { if (_accountIsNotPro) { Assert.Inconclusive("The API key used for this test run is not enabled for Full Access. Please upgrade the account or use an API key that has the necessary permissions."); return; } using (var client = new M2XClient(_masterKey)) { var distribution = client.Distribution(_distributions["primary"].id); var result = await distribution.MetadataField(Constants.TestMetadataDefaultFieldName); Assert.IsNotNull(result); Assert.IsFalse(result.Error); Assert.IsFalse(result.ServerError); Assert.IsNull(result.WebError); Assert.IsFalse(string.IsNullOrWhiteSpace(result.Raw)); Assert.IsTrue(result.Raw.Length > 6); } }