public void Or_Nesting_Class_Matches()
        {
            var control = new Control1 {
                Classes = { "foo" }
            };
            Style nested;
            var   parent = new Style(x => x.OfType <Control1>())
            {
                Children =
                {
                    (nested = new Style(x => Selectors.Or(
                                            x.Nesting().Class("foo"),
                                            x.Nesting().Class("bar")))),
                }
            };

            var match = nested.Selector.Match(control, parent);

            Assert.Equal(SelectorMatchResult.Sometimes, match.Result);

            var sink = new ActivatorSink(match.Activator);

            Assert.True(sink.Active);
            control.Classes.Clear();
            Assert.False(sink.Active);
        }
        public void Double_Nesting_Class_Matches()
        {
            var control = new Control1
            {
                Classes = { "foo", "bar" },
            };

            Style parent;
            Style nested;
            var   grandparent = new Style(x => x.OfType <Control1>())
            {
                Children =
                {
                    (parent         = new Style(x => x.Nesting().Class("foo"))
                    {
                        Children    =
                        {
                            (nested = new Style(x => x.Nesting().Class("bar")))
                        }
                    })
                }
            };

            var match = nested.Selector.Match(control, parent);

            Assert.Equal(SelectorMatchResult.Sometimes, match.Result);

            var sink = new ActivatorSink(match.Activator);

            Assert.True(sink.Active);
            control.Classes.Remove("foo");
            Assert.False(sink.Active);
        }