public void SutIsMethodQuery()
        {
            // Arrange
            var owner      = new object();
            var methodName = string.Empty;

            // Act
            var sut = new InstanceMethodQuery(owner, methodName);

            // Assert
            Assert.IsAssignableFrom <IMethodQuery>(sut);
        }
        public void SelectMethodsReturnsEmptyEnumerableWhenOwnerDoesNotHaveMethod()
        {
            // Arrange
            var owner      = new CollectionHolder <string>().Collection;
            var methodName = string.Empty;
            var sut        = new InstanceMethodQuery(owner, methodName);

            // Act
            var result = sut.SelectMethods();

            // Assert
            Assert.Empty(result);
        }
        public void SelectMethodsReturnsMethodFromOwner()
        {
            // Arrange
            var owner            = new CollectionHolder <string>().Collection;
            var methodName       = nameof(CollectionHolder <string> .Collection.Add);
            var expectedContents = string.Empty;
            var sut = new InstanceMethodQuery(owner, methodName);

            // Act
            var result     = sut.SelectMethods();
            var enumerable = result.ToArray();

            enumerable.Single().Invoke(new[] { expectedContents });

            // Assert
            Assert.Single(enumerable);
            Assert.Single(owner, expectedContents);
        }