Ejemplo n.º 1
0
        public void Remove_RemovedOnceAndEventRaised()
        {
            TestDataManager dm   = new TestDataManager();
            TestDataType    data = new TestDataType {
                Id = 1U
            };

            dm.Add(data);
            TestDataObserver obs = new TestDataObserver();

            using IDisposable unsubscriber = dm.Subscribe(obs);
            Assert.IsTrue(dm.Remove(data.Id));
            Assert.IsFalse(dm.Remove(data.Id));
            Assert.AreEqual(0, obs.CompleteCount);
            Assert.AreEqual(0, obs.Errors.Count);
            Assert.AreEqual(1, obs.Next.Count);
            DataChanged <TestDataType> change = obs.Next.Dequeue();

            Assert.IsTrue(change.Action == DataChangedAction.Remove && change.OldItems?.FirstOrDefault() == data);
        }