Esempio n. 1
0
        public async Task TestPresubscriptionRefreshAsync()
        {
            var subscribe = new MbedCloudSDK.Connect.Api.Subscribe.Subscribe();

            Assert.IsEmpty(subscribe.AllLocalSubscriptions);
            var observer1 = (await subscribe.ResourceValuesAsync()).Filter(new ResourceValuesFilter {
                DeviceId = "1", ResourcePaths = new List <string>()
                {
                    "3/0/0", "3/0/1"
                }
            });
            var observer2 = (await subscribe.ResourceValuesAsync()).Filter(new ResourceValuesFilter {
                DeviceId = "2", ResourcePaths = new List <string>()
                {
                    "3/0/0", "3/0/1"
                }
            })
                            .Filter(new ResourceValuesFilter {
                DeviceId = "3", ResourcePaths = new List <string>()
                {
                    "3/0/0", "3/0/1"
                }
            });

            Assert.AreEqual(3, subscribe.AllLocalSubscriptions.Count);

            observer1.Unsubscribe();

            Assert.AreEqual(2, subscribe.AllLocalSubscriptions.Count);
        }
Esempio n. 2
0
        public async Task TestUnsubscribeAsync()
        {
            var subscribe = new MbedCloudSDK.Connect.Api.Subscribe.Subscribe();
            var items     = new List <ResourceValueChange>();
            var observer1 = await subscribe.ResourceValuesAsync();

            observer1.OnNotify += res => items.Add(res);
            var observer2 = await subscribe.ResourceValuesAsync();

            observer2.OnNotify += res => items.Add(res);
            var observer3 = await subscribe.ResourceValuesAsync();

            observer3.OnNotify += res => items.Add(res);
            MockNotification(subscribe);
            MockNotification(subscribe);

            Assert.AreEqual(subscribe.ResourceValueObservers.Count, 3);

            Assert.AreEqual(items.Count, 90);

            items.Clear();

            observer1.Unsubscribe();

            MockNotification(subscribe);
            MockNotification(subscribe);

            Assert.AreEqual(subscribe.ResourceValueObservers.Count, 2);

            Assert.AreEqual(items.Count, 60);
        }
Esempio n. 3
0
        public async Task TestAllNotifications()
        {
            var subscribe = new MbedCloudSDK.Connect.Api.Subscribe.Subscribe();
            var items     = new List <ResourceValueChange>();
            var observer  = await subscribe.ResourceValuesAsync();

            observer.OnNotify += res => items.Add(res);

            MockNotification(subscribe);
            MockNotification(subscribe);

            Assert.AreEqual(30, items.Count);
        }
Esempio n. 4
0
        public async Task TestSubscribingToOneDeviceAsync()
        {
            var subscribe = new MbedCloudSDK.Connect.Api.Subscribe.Subscribe();
            var items     = new List <ResourceValueChange>();
            var observer  = (await subscribe.ResourceValuesAsync()).Filter(new ResourceValuesFilter {
                DeviceId = "1"
            });

            observer.OnNotify += res => items.Add(res);

            MockNotification(subscribe);
            MockNotification(subscribe);

            Assert.AreEqual(6, items.Count);
        }
Esempio n. 5
0
        public async Task TestSubscribingToAllDevicesAndSpecificPathsWithWildcardAsync()
        {
            var subscribe = new MbedCloudSDK.Connect.Api.Subscribe.Subscribe();
            var items     = new List <ResourceValueChange>();
            var observer  = (await subscribe.ResourceValuesAsync()).Filter(new ResourceValuesFilter {
                DeviceId = "2", ResourcePaths = new List <string>()
                {
                    "/3/*"
                }
            });

            observer.OnNotify += res => items.Add(res);

            MockNotification(subscribe);
            MockNotification(subscribe);

            Assert.AreEqual(6, items.Count);
        }
Esempio n. 6
0
        public async Task TestSubscribingToResourcePathAsync()
        {
            var subscribe = new MbedCloudSDK.Connect.Api.Subscribe.Subscribe();
            var items     = new List <ResourceValueChange>();
            var observer  = (await subscribe.ResourceValuesAsync()).Filter(new ResourceValuesFilter {
                ResourcePaths = new List <string>()
                {
                    "/3/0/0"
                }
            });

            observer.OnNotify += res => items.Add(res);

            MockNotification(subscribe);
            MockNotification(subscribe);

            Assert.AreEqual(10, items.Count);
        }