public void ConcurrentChangeTrackedComplexTypeListReadOnlyWithNull()
        {
            var list = new ConcurrentChangeTrackedModifiableList <DummyComplexType>(new List <DummyComplexType> {
                null
            });

            list.IsReadOnly = true;
            Assert.Throws <InvalidOperationException>(() => list.Add(new DummyComplexType()));
        }
        public void ConcurrentChangeTrackedComplexTypeListHasBeenModifiedWithNull()
        {
            var list = new ConcurrentChangeTrackedModifiableList <DummyComplexType>(new List <DummyComplexType> {
                null
            });

            list.Add(null);
            Assert.True(list.HasBeenModified);
        }
        public void ConcurrentChangeTrackedComplexTypeListReadOnly()
        {
            var list = new ConcurrentChangeTrackedModifiableList <DummyComplexType>(new List <DummyComplexType> {
                new DummyComplexType()
            });

            list.IsReadOnly = true;
            Assert.Throws <InvalidOperationException>(() => list.Add(new DummyComplexType()));
            Assert.False(list.HasBeenModified);
            Assert.True(list.First().IsReadOnly);
        }
Example #4
0
        public void IModifiableCollectionFromExistingCollectionIsNotChanged()
        {
            IEnumerable <Protocol.Models.MetadataItem> collection = new List <Protocol.Models.MetadataItem>()
            {
                new Protocol.Models.MetadataItem("a", "b")
            };

            ConcurrentChangeTrackedModifiableList <MetadataItem> result = UtilitiesInternal.CollectionToThreadSafeCollectionIModifiable(
                collection,
                objectCreationFunc: o => new MetadataItem(o));

            Assert.False(result.HasBeenModified);
        }
        public void ModifiableItemChangedUpdatesList()
        {
            var list = new ConcurrentChangeTrackedModifiableList <DummyComplexType>(
                new List <DummyComplexType> {
                new DummyComplexType()
            });

            Assert.Equal(1, list.Count);
            Assert.False(list.HasBeenModified);

            list.First().HasBeenModified = true;
            Assert.True(list.HasBeenModified);
        }