public async Task ChangeDataNotification_IsRecievedWhenUpdateData_WithAdditionals()
        {
            //given
            ChangeDataNotification changeDataNotification = null;
            var newTitle    = "newTitle";
            var newText     = "newText";
            var additionals = new Dictionary <string, string>();

            additionals.Add("key", "value");

            await
            _syncSubscriber.RealTimeSync.SubscribeCollection(TestData.ProjectId,
                                                             collectionId : TestData.SubscriptionCollectionId);

            _syncSubscriber.ChangeDataObservable.Subscribe(m => changeDataNotification = m);

            var newData = await _syncServer.DataObjects.New(new DataObjectDefinitionRequest()
            {
                ProjectId    = TestData.ProjectId,
                CollectionId = TestData.SubscriptionCollectionId,
                Title        = "test",
                Additional   = additionals
            });

            additionals.Clear();
            additionals.Add("newKey", "newValue");

            //when
            await _syncServer.DataObjects.Update(
                new DataObjectDefinitionRequest()
            {
                ProjectId    = TestData.ProjectId,
                CollectionId = TestData.SubscriptionCollectionId,
                Title        = newTitle,
                Text         = newText,
                Additional   = additionals
            }, newData.Id);

            await WaitForNotifications();

            //then
            changeDataNotification.ShouldNotBeNull();
            changeDataNotification.Target.ShouldNotBeNull();

            //cleanup
            await
            _syncSubscriber.RealTimeSync.UnsubscribeCollection(TestData.ProjectId,
                                                               collectionId : TestData.SubscriptionCollectionId);

            await
            _syncServer.DataObjects.Delete(new DataObjectSimpleQueryRequest()
            {
                ProjectId    = TestData.ProjectId,
                CollectionId = TestData.SubscriptionCollectionId
            });
        }
        public async Task ChangeDataNotification_IsRecievedWhenUpdateData()
        {
            //given
            ChangeDataNotification changeDataNotification = null;
            var newTitle = "newTitle";
            var newText  = "newText";
            await
            _syncSubscriber.RealTimeSync.SubscribeCollection(TestData.ProjectId,
                                                             collectionId : TestData.SubscriptionCollectionId);

            _syncSubscriber.ChangeDataObservable.Subscribe(m => changeDataNotification = m);

            var newData = await _syncServer.DataObjects.New(new DataObjectDefinitionRequest()
            {
                ProjectId    = TestData.ProjectId,
                CollectionId = TestData.SubscriptionCollectionId,
                Title        = "test"
            });

            //when
            await _syncServer.DataObjects.Update(
                new DataObjectDefinitionRequest()
            {
                ProjectId    = TestData.ProjectId,
                CollectionId = TestData.SubscriptionCollectionId,
                Title        = newTitle,
                Text         = newText
            }, newData.Id);

            await WaitForNotifications();

            //then
            changeDataNotification.ShouldNotBeNull();

            //cleanup
            await
            _syncSubscriber.RealTimeSync.UnsubscribeCollection(TestData.ProjectId,
                                                               collectionId : TestData.SubscriptionCollectionId);

            await
            _syncServer.DataObjects.Delete(new DataObjectSimpleQueryRequest()
            {
                ProjectId    = TestData.ProjectId,
                CollectionId = TestData.SubscriptionCollectionId
            });
        }