public void DoNotFollow_NoAdditionalExclusions_ReturnsDoNotFollowFixed()
        {
            // Arrange
            var expectedResult = Substitute.For<ITypeExclusion>();

            var sut = new SutDoNotFollowTypeExclusions(expectedResult);

            // Act
            var result = sut.DoNotFollow;

            // Assert
            Assert.Same(expectedResult, result);
        }
        public void DoNotFollow_NoAdditionalExclusions_ReturnsDoNotFollowFixed()
        {
            // Arrange
            var expectedResult = Substitute.For <ITypeExclusion>();

            var sut = new SutDoNotFollowTypeExclusions(expectedResult);

            // Act
            var result = sut.DoNotFollow;

            // Assert
            Assert.Same(expectedResult, result);
        }
        public void DoNotFollow_AdditionalExclusions_ReturnsCompositeTypeExclusion()
        {
            // Arrange
            var additional = Substitute.For<ITypeExclusion>();

            var doNotFollowFixed = Substitute.For<ITypeExclusion>();
            var sut = new SutDoNotFollowTypeExclusions(doNotFollowFixed)
                      {
                          DoNotFollow = additional
                      };

            // Act
            var result = (CompositeTypeExclusion)sut.DoNotFollow;

            // Assert
            Assert.Equal(2, result.TypeExclusions.Count());
            Assert.Contains(doNotFollowFixed, result.TypeExclusions);
            Assert.Contains(additional, result.TypeExclusions);
        }
        public void DoNotFollow_AdditionalExclusions_ReturnsCompositeTypeExclusion()
        {
            // Arrange
            var additional = Substitute.For <ITypeExclusion>();

            var doNotFollowFixed = Substitute.For <ITypeExclusion>();
            var sut = new SutDoNotFollowTypeExclusions(doNotFollowFixed)
            {
                DoNotFollow = additional
            };

            // Act
            var result = (CompositeTypeExclusion)sut.DoNotFollow;

            // Assert
            Assert.Equal(2, result.TypeExclusions.Count());
            Assert.Contains(doNotFollowFixed, result.TypeExclusions);
            Assert.Contains(additional, result.TypeExclusions);
        }