public static void TestStateFeature()
            {
                ISubject <int> stream = new AsyncSubject <int>();

                stream.OnNext(1);
                stream.OnNext(10);
                stream.OnCompleted();

                stream.AttachConsoleHandlers();
                stream.AttachConsoleHandlers();
            }
            /// <summary>
            /// nothing printed on the screen because "OnCompleted" is not invoked
            /// </summary>
            public static void TestNoCompleteNoPub()
            {
                ISubject <int> stream = new AsyncSubject <int>();

                stream.AttachConsoleHandlers();

                stream.OnNext(1);
                stream.OnNext(2);
            }
            public static void TestOnlyPubLastWhenCompleted()
            {
                ISubject <int> stream = new AsyncSubject <int>();

                stream.AttachConsoleHandlers();

                foreach (int num in Enumerable.Range(1, 3))
                {
                    Console.WriteLine("\tdata generated: {0}", num);
                    stream.OnNext(num);
                }

                Helper.Pause();
                stream.OnCompleted();
            }