public void delegate_is_a_type_wrapping_method_call()
        {
            TransformerDelegateDemo transformer = EquivalentTransformation;

            // change variable value to fix test.
            const string expectedDelegateType = "TransformerDelegateDemo";

            Assert.Equal(expectedDelegateType, typeof(TransformerDelegateDemo).Name);
            Assert.True(transformer is Delegate);
        }
        public void should_pass_delegate_instance_as_normal_variable()
        {
            TransformerDelegateDemo transformer = DoubleTransformation;

            int actualResult = PassingDelegateAsArgument(transformer);

            // change variable value to fix test.
            const int expectedResult = 5;

            Assert.Equal(expectedResult, actualResult);
        }
        public void should_call_original_method_when_invoking_delegate()
        {
            TransformerDelegateDemo transformer = EquivalentTransformation;

            int transformResult = transformer(2);

            // change variable value to fix test.
            const int expectedResult = 2;

            Assert.Equal(expectedResult, transformResult);
        }
 private static int PassingDelegateAsArgument(TransformerDelegateDemo transformer)
 {
     return(transformer(2) + 1);
 }
 private static int PassingDelegateAsArgument(TransformerDelegateDemo transformer)
 {
     return transformer(2) + 1;
 }