예제 #1
0
        public void NoErrorIsLoggedIfWeDontRequireAReceiver()
        {
            GameObject       go   = new GameObject();
            MessageComponent comp = new MessageComponent();

            go.AddComponent(comp);
            MemoryStream ms = new MemoryStream();

            System.Diagnostics.TextWriterTraceListener listener = new System.Diagnostics.TextWriterTraceListener(ms);
            System.Diagnostics.Debug.Listeners.Clear();
            System.Diagnostics.Debug.Listeners.Add(listener);

            go.SendMessage("NonExisting", 42, SendMessageOptions.DontRequireReceiver);

            listener.Flush();
            Assert.That(ms.Position, Is.EqualTo(0));
        }
        public void BadHashWarning()
        {
            var old = Diagnostics.ConcurrentHashtableSwitch;

            Diagnostics.ConcurrentHashtableSwitch = new System.Diagnostics.TraceSwitch("ReplacedSwitch", "", "Warning");
            Diagnostics.TypeBadHashReportMap      = new Dictionary <Type, bool>();

            try
            {
                var writer     = new StringWriter();
                var myListener = new System.Diagnostics.TextWriterTraceListener(writer);

                System.Diagnostics.Trace.Listeners.Add(myListener);

                try
                {
                    var dictionary = new ConcurrentDictionary <BadHashObject, int>();

                    for (int i = 0; i < 1000; ++i)
                    {
                        dictionary.Add(new BadHashObject(), i);
                    }

                    System.Threading.Thread.Sleep(1000);

                    myListener.Flush();
                }
                finally
                { System.Diagnostics.Trace.Listeners.Remove(myListener); }

                writer.Close();

                var result = writer.ToString();

                Assert.IsFalse(String.IsNullOrEmpty(result), "Bad hash not reported");
            }
            finally
            {
                Diagnostics.ConcurrentHashtableSwitch = old;
            }
        }