public void Concat_ShouldConcatFullChain(params string[] parms)
        {
            // arrange
            var extraPath = new CodePath();
            var sut       = new CodePath();

            foreach (var name in parms)
            {
                var mockedMethod = Mock.Create <Method>();
                Mock.Arrange(() => mockedMethod.FullName).Returns(name);
                extraPath.AddLast(mockedMethod);
                sut.AddLast(mockedMethod);
            }

            // act
            sut.Concat(extraPath);

            // assert
            Assert.Equal(parms.Length * 2, sut.Count());
            Assert.Equal(parms.Length * 2, sut.Length);

            var index = 0;

            foreach (var method in sut)
            {
                Assert.Equal(parms[index % parms.Length], method.FullName);
                index++;
            }
        }