public void SetUp()
        {
            this.testObjectWithInterface = new ParameterInfoCollection();
            var methodInfo = typeof(ParameterInfoCollectionTest).GetMethod("InfoMethodWithInterface");
            var parameters = methodInfo.GetParameters();

            this.parameterInfoMethodWithInterfaces = parameters.ToArray();
            foreach (var parameter in parameters)
            {
                testObjectWithInterface.AddParameterInfo(parameter);
            }

            this.testObject          = new ParameterInfoCollection();
            methodInfo               = typeof(ParameterInfoCollectionTest).GetMethod("InfoMethod");
            parameters               = methodInfo.GetParameters();
            this.parameterInfoMethod = parameters.ToArray();
            foreach (var parameter in parameters)
            {
                testObject.AddParameterInfo(parameter);
            }
        }
        public void AddParameterInfoTest()
        {
            Assert.IsFalse(testObject.HasInterfaces);
            Assert.Count(4, testObject);
            var methodInfo = typeof(ParameterInfoCollectionTest).GetMethod("InfoMethodWithInterface");
            var parameters = methodInfo.GetParameters();

            foreach (var parameter in parameters)
            {
                testObject.AddParameterInfo(parameter);
            }

            Assert.IsTrue(testObject.HasInterfaces);
            Assert.Count(8, testObject);

            var expected = parameterInfoMethod.Concat(parameters);
            var actual   = testObject.StandardTypes;

            Assert.AreElementsEqual(expected.Where(e => !e.ParameterType.IsInterface), actual);

            actual = testObject;
            Assert.AreElementsEqual(expected, actual);
        }