Exemple #1
0
        public void ScopeExitTest()
        {
            int    n  = 1;
            bool   b  = true;
            string s0 = "ok";

            {
                using (Scope.OnExit(() => n = 1))
                    n = 2;

                Assert.AreEqual(1, n);
            }

            {
                using (Scope.OnExit <int>(n, (x) => n = x))
                    n = 2;

                Assert.AreEqual(1, n);
            }

            {
                using (Scope.OnExit <int, bool>(n, b, (x, y) => { n = x; b = y; }))
                {
                    n = 5;
                    b = false;
                }

                Assert.AreEqual(1, n);
                Assert.AreEqual(true, b);
            }

            {
                using (Scope.OnExit <int, bool, string>(n, b, s0, (x, y, s) => { n = x; b = y; s0 = s; }))
                {
                    n  = 5;
                    b  = false;
                    s0 = "bad";
                }

                Assert.AreEqual(1, n);
                Assert.AreEqual(true, b);
                Assert.AreEqual("ok", s0);
            }


            {
                var text = "Cool scopper!";
                using (var log = new TestMemoryLog())
                    using (var app = new TestApplication {
                        Log = log
                    })
                    {
                        log.Start();

                        using (new Scope(logText: text, logMsgType: MessageType.Warning, measureTime: true))
                        {
                            for (int i = 0; i < 1000000; i++)
                            {
                                ;
                            }
                        }

                        Assert.AreEqual(1, log.Messages.Count);
                        Assert.AreEqual(text, log.Messages[0].Text);
                        Assert.AreEqual("NFX.NUnit.ScopeTestFixture.ScopeExitTest[ScopeTest.cs",
                                        log.Messages[0].From.TakeWhile(c => c != ':'));
                        Assert.AreEqual("time", log.Messages[0].Parameters.TakeWhile(c => c != '='));
                        Assert.AreEqual(MessageType.Warning, log.Messages[0].Type);
                    }
            }
        }
Exemple #2
0
        public void ScopeExitTest()
        {
            int  n = 1;
            bool b = true;
            string s0 = "ok";

            {
                using (Scope.OnExit(() => n = 1))
                    n = 2;

                Assert.AreEqual(1, n);
            }

            {
                using (Scope.OnExit<int>(n, (x) => n = x))
                    n = 2;

                Assert.AreEqual(1, n);
            }

            {
                using (Scope.OnExit<int,bool>(n, b, (x,y) => {n=x; b=y;}))
                {
                    n = 5;
                    b = false;
                }

                Assert.AreEqual(1, n);
                Assert.AreEqual(true, b);
            }

            {
                using (Scope.OnExit<int,bool,string>(n, b, s0, (x,y,s) => {n=x; b=y; s0=s;}))
                {
                    n = 5;
                    b = false;
                    s0 = "bad";
                }

                Assert.AreEqual(1, n);
                Assert.AreEqual(true, b);
                Assert.AreEqual("ok", s0);
            }

            {
                var text = "Cool scopper!";
                using (var log = new TestMemoryLog())
                using (var app = new TestApplication { Log = log })
                {
                    log.Start();

                    using (new Scope(logText: text, logMsgType: MessageType.Warning, measureTime: true))
                    {
                        for (int i = 0; i < 1000000; i++) ;
                    }

                    Assert.AreEqual(1,      log.Messages.Count);
                    Assert.AreEqual(text,   log.Messages[0].Text);
                    Assert.AreEqual("NFX.NUnit.ScopeTestFixture.ScopeExitTest[ScopeTest.cs",
                                    log.Messages[0].From.TakeWhile(c => c != ':'));
                    Assert.AreEqual("time", log.Messages[0].Parameters.TakeWhile(c => c != '='));
                    Assert.AreEqual(MessageType.Warning, log.Messages[0].Type);
                }
            }
        }