public void VariousWaysToInvokeDelegate()
        {
            StringProcessor del = DelegateActions.ToUpperCaseStatic;

            var input          = "test";
            var expectedOutput = "TEST";

            var directCall = del(input);

            Assert.AreEqual(expectedOutput, directCall);

            var standardInvoke = del.Invoke(input);

            Assert.AreEqual(expectedOutput, standardInvoke);

            var dynamicInvoke = del.GetInvocationList()[0].DynamicInvoke(input);

            Assert.AreEqual(expectedOutput, dynamicInvoke);

            var asyncResult = del.BeginInvoke(input, null, null);
            var asyncInvoke = del.EndInvoke(asyncResult);

            Assert.AreEqual(expectedOutput, asyncInvoke);
        }