public void Constructor_WithValidValues_ReturnsUnsubscriberInstance()
        {
            var obj = new object();
            var collection = new Collection<object> {obj};

            var unsubscriber = new Unsubscriber<object>(obj, collection);

            Assert.IsNotNull(unsubscriber);
        }
        public void Constructor_WithNullValues_ReturnsUnsubscriberInstance()
        {
            var nullInstance = new Unsubscriber<object>(null, new Collection<object>());
            var nullCollection = new Unsubscriber<object>(new object(), null);
            var nullInstanceAndCollection = new Unsubscriber<object>(null, null);

            Assert.IsNotNull(nullInstance);
            Assert.IsNotNull(nullCollection);
            Assert.IsNotNull(nullInstanceAndCollection);
        }
        public void Dispose_WithNullConstructorParameters_DoesNotThrow()
        {
            var nullInstance = new Unsubscriber<object>(null, new Collection<object>());
            var nullCollection = new Unsubscriber<object>(new object(), null);
            var nullInstanceAndCollection = new Unsubscriber<object>(null, null);

            Assert.DoesNotThrow(nullInstance.Dispose);
            Assert.DoesNotThrow(nullCollection.Dispose);
            Assert.DoesNotThrow(nullInstanceAndCollection.Dispose);
        }
        public void Dispose_WithCollectionContainingInstance_RemovesInstanceFromCollection()
        {
            var obj = new object();
            var collection = new Collection<object> {obj};

            var unsubscriber = new Unsubscriber<object>(obj, collection);
            unsubscriber.Dispose();

            Assert.IsEmpty(collection);
        }
        public void WhenUnsubscribe_ShouldBeDisposed()
        {
            var mock1 = new Mock <INotificationObserver <string> >();
            var mock2 = new Mock <INotificationObserver <string> >();
            var mock3 = new Mock <INotificationObserver <string> >();

            var obs = new SynchronizedCollection <INotificationObserver <string> > {
                mock1.Object, mock2.Object, mock3.Object
            };
            var unsub = new Unsubscriber(obs, mock2.Object);

            unsub.Dispose();

            Assert.Equal(2, obs.Count);
            Assert.DoesNotContain(mock2.Object, obs);
        }
        public void Dispose()
        {
            var mockery = new MockRepository();
            var observer = mockery.StrictMock<IObserver<string>>();
            var observers = mockery.StrictMock<IList<IObserver<string>>>();

            using (mockery.Record()) {
                Expect.Call(observers.Contains(observer)).Return(true);
                Expect.Call(observers.Remove(observer)).Return(true);
            }

            using (mockery.Playback()) {
                var unsubscriber = new Unsubscriber<string>(observers, observer);
                unsubscriber.Dispose();
            }
        }
        /// <summary>
        /// Constructor, obtiene instancias de servicios de banner y campaña
        /// Se subscribe a los mismos
        /// Ordena el inicio de tareas de actualizacion
        /// </summary>
        /// <param name="campaignService"></param>
        /// <param name="bannerService"></param>
        public OperativeForm(ICampaignService campaignService, IBannerService bannerService)
        {
            InitializeComponent();
            this.iCampaignService = campaignService;
            this.iBannerService   = bannerService;
            this.bannerText.Text  = "";
            iBannerUnsubscriber   = (Unsubscriber <IList <string> >)iBannerService.Subscribe(this);
            iCampaignUnsubscriber = (Unsubscriber <byte[]>) this.iCampaignService.Subscribe(this);
            iBannerService.StartAsyncTasks();
            iCampaignService.StartAsyncTasks();


            // Timmer para mover el banner de texto
            this.timer.Interval = 100;
            this.timer.Start();
        }
示例#8
0
        /// <summary>Snippet for DeleteUnsubscriberAsync</summary>
        public async Task DeleteUnsubscriberRequestObjectAsync()
        {
            // Snippet: DeleteUnsubscriberAsync(DeleteUnsubscriberRequest, CallSettings)
            // Additional: DeleteUnsubscriberAsync(DeleteUnsubscriberRequest, CancellationToken)
            // Create client
            UnsubscribersClient unsubscribersClient = await UnsubscribersClient.CreateAsync();

            // Initialize request argument(s)
            DeleteUnsubscriberRequest request = new DeleteUnsubscriberRequest
            {
                UnsubscriberName = UnsubscriberName.FromProjectUnsubscriber("[PROJECT]", "[UNSUBSCRIBER]"),
            };
            // Make the request
            Unsubscriber response = await unsubscribersClient.DeleteUnsubscriberAsync(request);

            // End snippet
        }
示例#9
0
        public void Unsubscribe_From_DB_When_Disposing()
        {
            var subscriptions = new SubscriptionDict();
            var sub1          = new DocumentSubscription <Model>(_db.NotificationService);
            var sub2          = new CollectionSubscription <Model>(_db.NotificationService);

            subscriptions.TryAdd(sub1, default);
            subscriptions.TryAdd(sub2, default);
            subscriptions.Keys.Should().HaveCount(2);
            subscriptions.Keys.Should().Contain(sub1);
            subscriptions.Keys.Should().Contain(sub2);

            using (var unsubscriber = new Unsubscriber(subscriptions, sub1))
            { }

            subscriptions.Keys.Should().HaveCount(1);
            subscriptions.Keys.Should().Contain(sub2);
        }
示例#10
0
        /// <summary>Snippet for UpdateUnsubscriberAsync</summary>
        public async Task UpdateUnsubscriberRequestObjectAsync()
        {
            // Snippet: UpdateUnsubscriberAsync(UpdateUnsubscriberRequest, CallSettings)
            // Additional: UpdateUnsubscriberAsync(UpdateUnsubscriberRequest, CancellationToken)
            // Create client
            UnsubscribersClient unsubscribersClient = await UnsubscribersClient.CreateAsync();

            // Initialize request argument(s)
            UpdateUnsubscriberRequest request = new UpdateUnsubscriberRequest
            {
                Unsubscriber = new Unsubscriber(),
                UpdateMask   = new FieldMask(),
            };
            // Make the request
            Unsubscriber response = await unsubscribersClient.UpdateUnsubscriberAsync(request);

            // End snippet
        }
示例#11
0
        /// <summary>Snippet for CreateUnsubscriberAsync</summary>
        public async Task CreateUnsubscriberRequestObjectAsync()
        {
            // Snippet: CreateUnsubscriberAsync(CreateUnsubscriberRequest, CallSettings)
            // Additional: CreateUnsubscriberAsync(CreateUnsubscriberRequest, CancellationToken)
            // Create client
            UnsubscribersClient unsubscribersClient = await UnsubscribersClient.CreateAsync();

            // Initialize request argument(s)
            CreateUnsubscriberRequest request = new CreateUnsubscriberRequest
            {
                ParentAsProjectName = ProjectName.FromProject("[PROJECT]"),
                Unsubscriber        = new Unsubscriber(),
            };
            // Make the request
            Unsubscriber response = await unsubscribersClient.CreateUnsubscriberAsync(request);

            // End snippet
        }
示例#12
0
 public virtual void Unsubscribe()
 {
     Unsubscriber.Dispose();
 }
            private static WeakListenerInternal AddSourceEvent(object source, object state)
            {
                var array = (object[])state;
                var @this = (WeakListenerInternal)array[0];
                var weakItem = (WeakEventListenerWrapper)array[1];
                @this.Listeners = new[] { weakItem };

                //Binding context
                if (@this._eventInfo == null)
                    BindingServiceProvider.ContextManager.GetBindingContext(source).ValueChanged += (EventHandler<ISourceValue, EventArgs>)@this.Handler;
                else
                {
#if PCL_WINRT
                    var addMethod = @this._eventInfo.AddMethod;
#else
                    var addMethod = @this._eventInfo.GetAddMethod(true);
#endif
                    @this.RegToken = addMethod.InvokeEx(source, @this.Handler);
                }

                array[2] = new Unsubscriber(@this, weakItem);
                return @this;
            }
示例#14
0
 public virtual void Subscribe(Publisher publisher)
 {
     m_Cancellation = publisher.Subscribe(this);
 }
示例#15
0
        public void Dispose_WithCollectionMissingInstance_DoesNotThrow()
        {
            var unsubscriber = new Unsubscriber<object>(new object(), new Collection<object>());

            Assert.DoesNotThrow(unsubscriber.Dispose);
        }
 public void Subscribe(Observable <T> provider)
 {
     cancellation = provider.Subscribe(this);
 }
示例#17
0
        public virtual void Unsubscribe(IObserver <WeatherInfo> observer)
        {
            var unsubscriber = new Unsubscriber(Observers, observer);

            unsubscriber.Dispose();
        }
 private static WeakPropertyChangedListener AddSourceEvent(INotifyPropertyChanged source, object state)
 {
     var array = (object[])state;
     var @this = (WeakPropertyChangedListener)array[0];
     var weakItem = (WeakEventListenerWrapper)array[1];
     var path = (string)array[2];
     @this._listeners = new[] { new KeyValuePair<WeakEventListenerWrapper, string>(weakItem, path) };
     source.PropertyChanged += @this.Handle;
     array[3] = new Unsubscriber(@this, weakItem);
     return @this;
 }
示例#19
0
        public void Constructor_WithCollectionMissingInstance_ReturnsUnsubscriberInstance()
        {
            var unsubscriber = new Unsubscriber<object>(new object(), new Collection<object>());

            Assert.IsNotNull(unsubscriber);
        }