public void TestPageBuilderContextWhenConstructedReturnsTheConstructedValues()
        {
            var browser       = new ExpressionData(null, typeof(object));
            var document      = new ExpressionData(null, typeof(object));
            var parentElement = new ExpressionData(null, typeof(object));

            var context = new PageBuilderContext(browser, parentElement, document);

            Assert.AreSame(browser, context.Browser);
            Assert.AreSame(document, context.Document);
            Assert.AreSame(parentElement, context.ParentElement);
            Assert.IsNull(context.RootLocator);
            Assert.IsNull(context.CurrentElement);
        }
        public void TestCreateChildContextWhenMultipleContextsAreCreatedThenTheRootContextIsTheFirstParent()
        {
            var browser       = new ExpressionData(null, typeof(object));
            var document      = new ExpressionData(null, typeof(object));
            var parentElement = new ExpressionData(null, typeof(object));
            var context       = new PageBuilderContext(browser, parentElement, document);

            var child1        = new ExpressionData(null, typeof(object));
            var child2        = new ExpressionData(null, typeof(object));
            var childContext1 = context.CreateChildContext(child1);
            var childContext2 = childContext1.CreateChildContext(child2);

            Assert.AreSame(document, childContext1.ParentElement);
            Assert.AreSame(parentElement, childContext1.RootLocator);

            Assert.AreSame(child1, childContext2.ParentElement);
            Assert.AreSame(parentElement, childContext2.RootLocator);
        }