Esempio n. 1
0
        public void LazyChildrenCloneNullLambdaThrowsException(IList <IMetadataObject> values)
        {
            // Act
            var sut = new LazyChildren <IMetadataObject>(values.ToImmutableList());

            // Assert
            Assert.Throws <ArgumentNullException>(() => sut.Clone(true, null));
        }
Esempio n. 2
0
        public void LazyChildrenChildrenAccessThrowErrorIfNoParentAttached(IList <IMetadataObject> values)
        {
            // Act
            var sut = new LazyChildren <IMetadataObject>(values.ToImmutableList());

            // Assert
            Assert.Throws <NotSupportedException>(() => sut.GetEnumerator());
        }
Esempio n. 3
0
        public void LazyChildrenAttachToNullParentThrowsException(IList <IMetadataObject> values)
        {
            // Act
            var sut = new LazyChildren <IMetadataObject>(values.ToImmutableList());

            // Assert
            Assert.Throws <ArgumentNullException>(() => sut.AttachToParent(null));
        }
Esempio n. 4
0
        public void LazyChildrenThrowsErrorWhenAddGetsCalledDirectly(IList <IMetadataObject> values, IMetadataObject parent, IMetadataObject child)
        {
            // Act
            var sut = new LazyChildren <IMetadataObject>(values.ToImmutableList());

            sut.AttachToParent(parent);

            // Assert
            Assert.Throws <NotSupportedException>(() => sut.Add(child));
        }
Esempio n. 5
0
        public void LazyChildrenForceVisitIsFalseByDefault(IList <IMetadataObject> values, IMetadataObject parent)
        {
            // Act
            var sut = new LazyChildren <IMetadataObject>(values.ToImmutableList());

            sut.AttachToParent(parent);

            // Assert
            Assert.That(sut.ForceVisit, Is.False);
        }
Esempio n. 6
0
        public void LazyChildrenThrowsErrorIfLambdaReturnsNull(IMetadataObject parent)
        {
            // Act
            var sut = new LazyChildren <IMetadataObject>(_ => null);

            sut.AttachToParent(parent);

            // Assert
            Assert.Throws <NotSupportedException>(() => sut.GetEnumerator());
        }
Esempio n. 7
0
        public void LazyChildrenAttachToOnlyOneParent(IList <IMetadataObject> values, IMetadataObject parent, IMetadataObject otherParent)
        {
            // Act
            var sut = new LazyChildren <IMetadataObject>(values.ToImmutableList());

            sut.AttachToParent(parent);

            // Assert
            Assert.Throws <NotSupportedException>(() => sut.AttachToParent(otherParent));
        }
Esempio n. 8
0
        public void LazyChildrenAttachToSameParentTwiceIsIgnored(IList <IMetadataObject> values, IMetadataObject parent)
        {
            // Act
            var sut = new LazyChildren <IMetadataObject>(values.ToImmutableList());

            sut.AttachToParent(parent);

            // Assert
            sut.AttachToParent(parent); // No error
        }
Esempio n. 9
0
        public void LazyChildrenCloneDoesNotContainDeletedValues(IList <IMetadataObject> values, IMetadataObject parent)
        {
            // Act
            var sut = new LazyChildren <IMetadataObject>(values.ToImmutableList());

            sut.AttachToParent(parent);
            var clone = (LazyChildren <IMetadataObject>)sut.Clone(true, o => o, deleted: new[] { values[0] });

            // Assert
            clone.AttachToParent(parent);
            Assert.That(clone.Count, Is.EqualTo(values.Count - 1));
            Assert.That(clone, Does.Not.Contain(values[0]));
        }
Esempio n. 10
0
        public void LazyChildrenCloneContainsAddedValues(IList <IMetadataObject> values, IMetadataObject parent, IMetadataObject added)
        {
            // Act
            var sut = new LazyChildren <IMetadataObject>(values.ToImmutableList());

            sut.AttachToParent(parent);
            var clone = (LazyChildren <IMetadataObject>)sut.Clone(true, o => o, added: new[] { added });

            // Assert
            clone.AttachToParent(parent);
            Assert.That(clone.Count, Is.EqualTo(values.Count + 1));
            Assert.That(clone, Does.Contain(added));
        }
Esempio n. 11
0
        public void LazyChildrenReturnUnchangedEntryChildrenIfProvided(IList <IMetadataObject> values, IMetadataObject parent)
        {
            // Act
            var sut = new LazyChildren <IMetadataObject>(values.ToImmutableList());

            sut.AttachToParent(parent);

            // Assert
            Assert.That(sut.Parent, Is.SameAs(parent));
            Assert.That(sut.AreChildrenLoaded, Is.True);
            Assert.That(sut.Count, Is.EqualTo(values.Count));
            Assert.That(sut, Is.EquivalentTo(values));
            Assert.That(sut.ForceVisit, Is.False);
        }
Esempio n. 12
0
        public void LazyChildrenCloneCallsUpdateLambda(IFixture fixture, IList <IMetadataObject> values, IMetadataObject parent)
        {
            // Act
            var sut = new LazyChildren <IMetadataObject>(values.ToImmutableList());

            sut.AttachToParent(parent);
            var newValues = new List <IMetadataObject>();
            var clone     = (LazyChildren <IMetadataObject>)sut.Clone(true, _ =>
            {
                var o = fixture.Create <IMetadataObject>();
                newValues.Add(o);
                return(o);
            });

            // Assert
            Assert.That(clone.Parent, Is.Null);
            Assert.That(clone.ForceVisit, Is.True);
            clone.AttachToParent(parent);
            Assert.That(clone.Count, Is.EqualTo(values.Count));
            Assert.That(clone, Is.EquivalentTo(newValues));
        }