public void SutIsMethodQuery()
        {
            // Arrange
            // Act
            var sut = new GreedyMockConstructorQuery();

            // Assert
            Assert.IsAssignableFrom <IMethodQuery>(sut);
        }
 public void SutIsMethodQuery()
 {
     // Fixture setup
     // Exercise system
     var sut = new GreedyMockConstructorQuery();
     // Verify outcome
     Assert.IsAssignableFrom<IMethodQuery>(sut);
     // Teardown
 }
        public void SutIsMethodQuery()
        {
            // Fixture setup
            // Exercise system
            var sut = new GreedyMockConstructorQuery();

            // Verify outcome
            Assert.IsAssignableFrom <IMethodQuery>(sut);
            // Teardown
        }
        public void SelectMethodsReturnsCorrectResultForNonMockTypes(Type t)
        {
            // Arrange
            var sut = new GreedyMockConstructorQuery();
            // Act
            var result = sut.SelectMethods(t);

            // Assert
            Assert.Empty(result);
        }
 public void SelectMethodsReturnsCorrectResultForNonMockTypes(Type t)
 {
     // Fixture setup
     var sut = new GreedyMockConstructorQuery();
     // Exercise system
     var result = sut.SelectMethods(t);
     // Verify outcome
     Assert.Empty(result);
     // Teardown
 }
        public void SelectMethodsReturnsCorrectResultForNonMockTypes(Type t)
        {
            // Fixture setup
            var sut = new GreedyMockConstructorQuery();
            // Exercise system
            var result = sut.SelectMethods(t);

            // Verify outcome
            Assert.Empty(result);
            // Teardown
        }
        public void SelectMethodsReturnsCorrectNumberOfConstructorsForTypesWithConstructors(Type t)
        {
            // Arrange
            var mockType      = t.GetTypeInfo().GetGenericArguments().Single();
            var expectedCount = mockType.GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).Length;

            var sut = new GreedyMockConstructorQuery();
            // Act
            var result = sut.SelectMethods(t);

            // Assert
            Assert.Equal(expectedCount, result.Count());
        }
        public void SelectMethodsReturnsCorrectNumberOfConstructorsForTypesWithConstructors(Type t)
        {
            // Fixture setup
            var mockType = t.GetGenericArguments().Single();
            var expectedCount = mockType.GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).Length;

            var sut = new GreedyMockConstructorQuery();
            // Exercise system
            var result = sut.SelectMethods(t);
            // Verify outcome
            Assert.Equal(expectedCount, result.Count());
            // Teardown
        }
        public void SelectMethodsReturnsCorrectNumberOfConstructorsForTypesWithConstructors(Type t)
        {
            // Fixture setup
            var mockType      = t.GetGenericArguments().Single();
            var expectedCount = mockType.GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).Length;

            var sut = new GreedyMockConstructorQuery();
            // Exercise system
            var result = sut.SelectMethods(t);

            // Verify outcome
            Assert.Equal(expectedCount, result.Count());
            // Teardown
        }
        public void MethodsDefineCorrectParameters(Type t)
        {
            // Arrange
            var mockType         = t.GetTypeInfo().GetGenericArguments().Single();
            var mockTypeCtorArgs = from ci in mockType.GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
                                   select ci.GetParameters();

            var sut = new GreedyMockConstructorQuery();
            // Act
            var result = sut.SelectMethods(t);
            // Assert
            var actualArgs = from ci in result
                             select ci.Parameters;

            Assert.True(mockTypeCtorArgs.All(expectedParams =>
                                             actualArgs.Any(expectedParams.SequenceEqual)));
        }
        public void MethodsDefineCorrectParameters(Type t)
        {
            // Fixture setup
            var mockType = t.GetGenericArguments().Single();
            var mockTypeCtorArgs = from ci in mockType.GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
                                   select ci.GetParameters();

            var sut = new GreedyMockConstructorQuery();
            // Exercise system
            var result = sut.SelectMethods(t);
            // Verify outcome
            var actualArgs = from ci in result
                             select ci.Parameters;
            Assert.True(mockTypeCtorArgs.All(expectedParams =>
                actualArgs.Any(expectedParams.SequenceEqual)));
            // Teardown
        }
        public void MethodsDefineCorrectParameters(Type t)
        {
            // Fixture setup
            var mockType         = t.GetGenericArguments().Single();
            var mockTypeCtorArgs = from ci in mockType.GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
                                   select ci.GetParameters();

            var sut = new GreedyMockConstructorQuery();
            // Exercise system
            var result = sut.SelectMethods(t);
            // Verify outcome
            var actualArgs = from ci in result
                             select ci.Parameters;

            Assert.True(mockTypeCtorArgs.All(expectedParams =>
                                             actualArgs.Any(expectedParams.SequenceEqual)));
            // Teardown
        }
        public void MethodsAreReturnedInCorrectOrder(Type t)
        {
            // Arrange
            var mockType = t.GetTypeInfo().GetGenericArguments().Single();
            var mockTypeCtorArgCounts = from ci in mockType.GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
                                        let paramCount = ci.GetParameters().Length
                                                         orderby paramCount descending
                                                         select paramCount;

            var sut = new GreedyMockConstructorQuery();
            // Act
            var result = sut.SelectMethods(t);
            // Assert
            var actualArgCounts = from ci in result
                                  select ci.Parameters.Count();

            Assert.True(mockTypeCtorArgCounts.SequenceEqual(actualArgCounts));
        }
        public void MethodsAreReturnedInCorrectOrder(Type t)
        {
            // Fixture setup
            var mockType = t.GetGenericArguments().Single();
            var mockTypeCtorArgCounts = from ci in mockType.GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
                                        let paramCount = ci.GetParameters().Length
                                        orderby paramCount descending
                                        select paramCount;

            var sut = new GreedyMockConstructorQuery();
            // Exercise system
            var result = sut.SelectMethods(t);
            // Verify outcome
            var actualArgCounts = from ci in result
                                  select ci.Parameters.Count();
            Assert.True(mockTypeCtorArgCounts.SequenceEqual(actualArgCounts));
            // Teardown
        }