public static void InitializeTestSpecs(TestContext testContext)
        {
            _devices          = new Dictionary <string, Device>();
            _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;
                var updateLocationParms = $"{{ \"name\": \"Test Device Location\", \"latitude\": {Constants.TestDeviceLatitude}, \"longitude\": {Constants.TestDeviceLongitude} }}";
                var resultLocation      = testDevice.UpdateLocation(updateLocationParms).Result;
                var updateMetadataParms = "{ \"owner\": \"The Testing Guy\" } ";
                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(500);

                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(500);
            }
        }
示例#2
0
 public static void InitializeTestSpecs(TestContext testContext)
 {
     using (var client = new M2XClient(_masterKey))
     {
         var createDeviceParms  = $"{{ \"name\": \"*** PLEASE DELETE ME *** Test Auto Created Device {DateTime.UtcNow.Ticks}\", \"visibility\": \"private\" }}";
         var createDeviceResult = client.CreateDevice(createDeviceParms).Result;
         _testDevice       = JsonConvert.DeserializeObject <Device>(createDeviceResult.Raw);
         _testDeviceExists = _testDevice != null;
     }
 }
示例#3
0
        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 CanCreate_Collection_And_PrivateDevice_ThenAdd_DeviceToCollection_TheRemove_DeviceFromCollection_AndDelete_Both()
        {
            using (var client = new M2XClient(_masterKey))
            {
                var collectionParameters   = $"{{ \"name\": \"*** PLEASE DELETE ME *** Test Auto Created Collection {DateTime.UtcNow.Ticks}\" }}";
                var createCollectionResult = await client.CreateCollection(collectionParameters);

                Assert.IsNotNull(createCollectionResult);
                Assert.IsFalse(createCollectionResult.Error);
                Assert.IsFalse(createCollectionResult.ServerError);
                Assert.IsNull(createCollectionResult.WebError);
                Assert.IsFalse(string.IsNullOrWhiteSpace(createCollectionResult.Raw));

                var collection = JsonConvert.DeserializeObject <Collection>(createCollectionResult.Raw);
                Assert.IsNotNull(collection);

                var collectionWrapper = client.Collection(collection.id);
                Assert.IsNotNull(collectionWrapper);

                var deviceParameters = $"{{ \"name\": \"*** PLEASE DELETE ME *** Test Auto Created Device {DateTime.UtcNow.Ticks}\", \"visibility\": \"private\" }}";
                var result           = await client.CreateDevice(deviceParameters);

                Assert.IsNotNull(result);
                Assert.IsFalse(result.Error);
                Assert.IsFalse(result.ServerError);
                Assert.IsNull(result.WebError);
                Assert.IsFalse(string.IsNullOrWhiteSpace(result.Raw));

                var device = JsonConvert.DeserializeObject <Device>(result.Raw);
                Assert.IsNotNull(device);

                var addCollectionDeviceResult = await collectionWrapper.AddDevice(device.id);

                Assert.IsNotNull(addCollectionDeviceResult);
                Assert.IsTrue(string.IsNullOrWhiteSpace(addCollectionDeviceResult.Raw));


                var checkCollectionDevices0 = await collectionWrapper.Details();

                Assert.IsNotNull(checkCollectionDevices0);
                Assert.IsFalse(string.IsNullOrWhiteSpace(checkCollectionDevices0.Raw));
                var checkCollection0 = JsonConvert.DeserializeObject <Collection>(checkCollectionDevices0.Raw);
                Assert.IsNotNull(checkCollection0);
                Assert.IsTrue(checkCollection0.devices > 0);

                var removeCollectionDeviceResult = await collectionWrapper.RemoveDevice(device.id);

                Assert.IsNotNull(removeCollectionDeviceResult);
                Assert.IsTrue(string.IsNullOrWhiteSpace(removeCollectionDeviceResult.Raw));


                var checkCollectionDevices1 = await collectionWrapper.Details();

                Assert.IsNotNull(checkCollectionDevices1);
                Assert.IsFalse(string.IsNullOrWhiteSpace(checkCollectionDevices1.Raw));
                var checkCollection1 = JsonConvert.DeserializeObject <Collection>(checkCollectionDevices1.Raw);
                Assert.IsNotNull(checkCollection1);
                Assert.IsTrue(checkCollection1.devices == 0);

                var deviceWrapper = client.Device(device.id, device.serial != null ? device.serial.ToString() : null);
                Assert.IsNotNull(deviceWrapper);
                await deviceWrapper.Delete();

                var devicesCheck = await client.SearchDevices(new { ids = device.id });

                Assert.IsNotNull(devicesCheck);
                Assert.IsFalse(devicesCheck.Error);
                Assert.IsFalse(devicesCheck.ServerError);
                Assert.IsNull(devicesCheck.WebError);
                Assert.IsFalse(string.IsNullOrWhiteSpace(devicesCheck.Raw));
                ProcessDeviceSearchResult(devicesCheck.Raw, false);

                await collectionWrapper.Delete();

                var collectionCheck       = client.Collection(collection.id);
                var collectionCheckResult = await collectionCheck.Details();

                Assert.IsNotNull(collectionCheck);
                Assert.IsTrue(collectionCheckResult.Error);
                Assert.IsFalse(collectionCheckResult.ServerError);
                Assert.IsNull(collectionCheckResult.WebError);
                Assert.IsFalse(string.IsNullOrWhiteSpace(collectionCheckResult.Raw));
                ProcessCollectionsSearchResult(collectionCheckResult.Raw, false);
            }
        }