Example #1
0
        public void TestMultipleUnlistenWeak()
        {
            StreamSink <int> s = Stream.CreateSink <int>();

            List <int> @out = new List <int>();

            ((Action)(() =>
            {
                // ReSharper disable once UnusedVariable
                IWeakListener l = s.ListenWeak(@out.Add);

                s.Send(1);

                l.Unlisten();
                l.Unlisten();

                s.Send(2);

                l.Unlisten();
            }))();

            s.Send(3);
            s.Send(4);

            Assert.AreEqual(1, @out.Count);
        }
Example #2
0
        public void TestListenWeak()
        {
            StreamSink <int> s = Stream.CreateSink <int>();

            List <int> @out = new List <int>();

            ((Action)(() =>
            {
                // ReSharper disable once UnusedVariable
                IWeakListener l = s.ListenWeak(@out.Add);

                s.Send(1);
                s.Send(2);
            }))();

            GC.Collect(0, GCCollectionMode.Forced);
            s.Send(3);
            s.Send(4);

            Assert.AreEqual(2, @out.Count);
        }