Exemple #1
0
        public void RandomWrapper_aspect_Test()
        {
            // make sure wrappers don't wrap themselves
            var r1    = new Random();
            var rasp1 = r1.Aspect();
            var r2    = (Random)rasp1;
            var rasp2 = r2.Aspect(); // this should be wrapping an Aspect with another Aspect- This should not result in 2 wrappers.

            Assert.AreEqual(rasp1, rasp2);
        }
Exemple #2
0
        public void RandomWrapper_both_Test()
        {
            var r    = new Random();
            var rth  = r.Threadsafe();
            var rasp = r.Aspect();

            Assert.AreNotEqual(rth, rasp);

            var rasp2 = rth.Aspect(); // Threadsafe is already an Aspect, so this should return itself

            Assert.AreEqual(rasp2, rth);

            var rth2 = rasp.Threadsafe(); // Not the other way around in this case

            Assert.AreNotEqual(rth2, rasp);

            // now rth2 is a Threadsafe wrapping an Aspect wrapping Random.
            var rasp3 = rth2.Aspect();

            Assert.AreEqual(rasp3, rth2);
        }