public void CanWrapCollectionCollection()
        {
            var originalCollection           = new ObservableCollection <ItemMetadata>();
            IViewsCollection viewsCollection = new ViewsCollection(originalCollection, x => true);

            Assert.AreEqual(0, viewsCollection.Count());

            var item = new object();

            originalCollection.Add(new ItemMetadata(item));
            Assert.AreEqual(1, viewsCollection.Count());
            Assert.AreSame(item, viewsCollection.First());
        }
Example #2
0
        public void CanWrapCollectionCollection()
        {
            var originalCollection           = new ObservableCollection <IView>();
            IViewsCollection viewsCollection = new ViewsCollection(originalCollection);

            Assert.AreEqual(0, viewsCollection.Count());

            var item = new MockView();

            originalCollection.Add(item);
            Assert.AreEqual(1, viewsCollection.Count());
            Assert.AreSame(item, viewsCollection.First());
        }
        public void CanFilterCollection()
        {
            var originalCollection           = new ObservableCollection <ItemMetadata>();
            IViewsCollection viewsCollection = new ViewsCollection(originalCollection, x => x.Name == "Possible");

            originalCollection.Add(new ItemMetadata(new object()));

            Assert.AreEqual(0, viewsCollection.Count());

            var item = new object();

            originalCollection.Add(new ItemMetadata(item)
            {
                Name = "Possible"
            });
            Assert.AreEqual(1, viewsCollection.Count());

            Assert.AreSame(item, viewsCollection.First());
        }
        public void ChangingMetadataOnItemAddsOrRemovesItFromTheFilteredCollection()
        {
            var originalCollection                 = new ObservableCollection <ItemMetadata>();
            IViewsCollection viewsCollection       = new ViewsCollection(originalCollection, x => x.IsActive);
            bool             addedToCollection     = false;
            bool             removedFromCollection = false;

            viewsCollection.CollectionChanged += (s, e) =>
            {
                if (e.Action == NotifyCollectionChangedAction.Add)
                {
                    addedToCollection = true;
                }
                else if (e.Action == NotifyCollectionChangedAction.Remove)
                {
                    removedFromCollection = true;
                }
            };

            originalCollection.Add(new ItemMetadata(new object())
            {
                IsActive = true
            });
            Assert.IsTrue(addedToCollection);
            Assert.IsFalse(removedFromCollection);
            addedToCollection = false;

            originalCollection[0].IsActive = false;

            Assert.AreEqual(0, viewsCollection.Count());
            Assert.IsTrue(removedFromCollection);
            Assert.IsFalse(addedToCollection);
            Assert.AreEqual(0, viewsCollection.Count());
            addedToCollection     = false;
            removedFromCollection = false;

            originalCollection[0].IsActive = true;

            Assert.AreEqual(1, viewsCollection.Count());
            Assert.IsTrue(addedToCollection);
            Assert.IsFalse(removedFromCollection);
        }
        public void EnumeratesWrappedItems()
        {
            var originalCollection = new ObservableCollection <ItemMetadata>()
            {
                new ItemMetadata(new object()),
                new ItemMetadata(new object())
            };
            IViewsCollection viewsCollection = new ViewsCollection(originalCollection, x => true);

            Assert.AreEqual(2, viewsCollection.Count());

            Assert.AreSame(originalCollection[0].Item, viewsCollection.ElementAt(0));
            Assert.AreSame(originalCollection[1].Item, viewsCollection.ElementAt(1));
        }