public void CreateAndAdd_WithDelegate()
        {
            var target = new DisposableCollection();
            var actual = target.CreateAndAdd(() => new TestDisposableObject());

            //Assert
            target.Should().HaveCount(1);
            target.Should().Contain(actual);
        }
        public void CreateAndAdd_WithValue()
        {
            var expected = new TestDisposableObject();

            var target = new DisposableCollection();
            var actual = target.CreateAndAdd(expected);

            //Assert
            actual.Should().Be(expected);
            target.Should().HaveCount(1);
            target.Should().Contain(expected);
        }
        public void Ctor_DefaultWorks()
        {
            //Act
            var target = new DisposableCollection();

            //Assert
            target.Should().BeEmpty();
        }
        public void Ctor_EmptyListIsEmpty()
        {
            var expected = new List <IDisposable>();

            //Act
            var target = new DisposableCollection(expected);

            //Assert
            target.Should().BeEmpty();
        }
        public void Ctor_NullListIsEmpty()
        {
            List <IDisposable> items = null;

            //Act
            var target = new DisposableCollection(items);

            //Assert
            target.Should().BeEmpty();
        }
        public void Ctor_ValidListWorks()
        {
            var expected = new List <IDisposable>()
            {
                new TestDisposableObject(),
                new TestDisposableObject(),
                new TestDisposableObject()
            };

            //Act
            var target = new DisposableCollection(expected);

            //Assert
            target.Should().ContainInOrder(expected);
        }