示例#1
0
        public static void ReloadableParent()
        {
            var parent = new Reloadable();
            var child  = new Mux.Markup.Transform();

            parent.Add(child);

            try
            {
                var reference = new WeakReference <Mux.Markup.IInternalTransform>(child);

                Mux.Markup.Transforms.Add("path", reference);
                Mux.Markup.Transforms.Reload(new[] { "path" });
                Assert.IsEmpty(parent);
                Assert.True(parent.reloaded);
                LogAssert.Expect(LogType.Log, "Reloaded Mux");
                LogAssert.NoUnexpectedReceived();
                parent.reloaded = false;

                Mux.Markup.Transforms.Remove("path", reference);
                Mux.Markup.Transforms.Reload(new[] { "path" });
                Assert.False(parent.reloaded);
            }
            finally
            {
                parent.Destroy();
            }
        }
示例#2
0
        public static void Unreloadable()
        {
            var target = new Mux.Markup.Transform();

            try
            {
                var reference = new WeakReference <Mux.Markup.IInternalTransform>(target);

                Mux.Markup.Transforms.Add("path", reference);
                Mux.Markup.Transforms.Reload(new[] { "path" });
                LogAssert.Expect(LogType.Log, "Reloadable Mux ancestor not found for Mux.Markup.Transform.");
                LogAssert.NoUnexpectedReceived();

                Mux.Markup.Transforms.Remove("path", reference);
                Mux.Markup.Transforms.Reload(new[] { "path" });
            }
            finally
            {
                target.Destroy();
            }
        }