public void It_is_exposed_on_the_session()
        {
            var robustWrapper = new SpyRobustWrapper();
            var session = new Session(new StubDriver(), robustWrapper);

            Assert.That(session.RobustWrapper, Is.SameAs(robustWrapper));
        }
        public void It_checks_all_of_the_states_in_a_robust_query_expecting_true()
        {
            bool queriedState1 = false;
            bool queriedState2 = false;
            var state1 = new State(new LambdaQuery<bool>(() =>
                                       {
                                           queriedState1 = true;
                                           return false;
                                       }));
            var state2 = new State(new LambdaQuery<bool>(() =>
                                       {
                                           queriedState2 = true;
                                           return true;
                                       }));
            var state3 = new State(new LambdaQuery<bool>(() => true));
            state3.CheckCondition();

            var robustWrapper = new SpyRobustWrapper();
            robustWrapper.StubQueryResult(true, true);

            var session = BuildSession(robustWrapper);

            Assert.That(session.FindState(new [] {state1, state2, state3}), Is.SameAs(state3));

            Assert.IsFalse(queriedState1);
            Assert.IsFalse(queriedState2);

            var query = robustWrapper.QueriesRan<bool>().Single();
            var queryResult = query.Run();
            Assert.IsTrue(queryResult);

            Assert.IsTrue(queriedState1);
            Assert.IsTrue(queriedState2);
        }
 public void SetUp()
 {
     driver = new FakeDriver();
     spyRobustWrapper = new SpyRobustWrapper();
     mockSleepWaiter = new MockSleepWaiter();
     session = new Session(driver, spyRobustWrapper, mockSleepWaiter);
 }
 public void SetUp()
 {
     driver           = new FakeDriver();
     spyRobustWrapper = new SpyRobustWrapper();
     fakeWaiter       = new FakeWaiter();
     stubUrlBuilder   = new StubUrlBuilder();
     session          = TestSessionBuilder.Build(driver, spyRobustWrapper, fakeWaiter, new SpyRestrictedResourceDownloader(),
                                                 stubUrlBuilder);
 }
 public void SetUp()
 {
     driver = new FakeDriver();
     spyRobustWrapper = new SpyRobustWrapper();
     fakeWaiter = new FakeWaiter();
     stubUrlBuilder = new StubUrlBuilder();
     session = TestSessionBuilder.Build(driver, spyRobustWrapper, fakeWaiter, new SpyRestrictedResourceDownloader(),
                                        stubUrlBuilder);
 }
        public void It_uses_individual_timeout_for_query_leaving()
        {
            var individualTimeout = TimeSpan.FromSeconds(321);

            var spyRobustWrapper = new SpyRobustWrapper();
            var session = new Session(null, spyRobustWrapper, null, null, null);

            session.FindLink("bob").WithTimeout(individualTimeout).Now();

            Assert.That(spyRobustWrapper.QueriesRan<Element>().Single().Timeout, Is.EqualTo(individualTimeout));
        }
Beispiel #7
0
        public void It_uses_individual_timeout_for_query_leaving()
        {
            var individualTimeout = TimeSpan.FromSeconds(321);

            var spyRobustWrapper = new SpyRobustWrapper();
            var session          = new Session(null, spyRobustWrapper, null, null, null);

            session.FindLink("bob").WithTimeout(individualTimeout).Now();

            Assert.That(spyRobustWrapper.QueriesRan <Element>().Single().Timeout, Is.EqualTo(individualTimeout));
        }
        public void It_returns_through_within_individual_timeout()
        {
            var spyRobustWrapper = new SpyRobustWrapper();
            var expectedElement = new StubElement();
            spyRobustWrapper.AlwaysReturnFromRobustly(expectedElement);

            var session = new Session(null, spyRobustWrapper, null, null, null);

            var actualElement = session.FindLink("bob").WithTimeout(TimeSpan.FromSeconds(321)).Now();

            Assert.That(actualElement, Is.SameAs(expectedElement));
        }
Beispiel #9
0
        public void SetUp()
        {
            driver               = new FakeDriver();
            spyRobustWrapper     = new SpyRobustWrapper();
            fakeWaiter           = new FakeWaiter();
            stubUrlBuilder       = new StubUrlBuilder();
            sessionConfiguration = new SessionConfiguration();
            browserSession       = TestSessionBuilder.Build(sessionConfiguration, driver, spyRobustWrapper, fakeWaiter, new SpyRestrictedResourceDownloader(),
                                                            stubUrlBuilder);

            elementScope = browserSession.FindXPath(".");
        }
Beispiel #10
0
        public void It_returns_through_within_individual_timeout()
        {
            var spyRobustWrapper = new SpyRobustWrapper();
            var expectedElement  = new StubElement();

            spyRobustWrapper.AlwaysReturnFromRobustly(expectedElement);

            var session = new Session(null, spyRobustWrapper, null, null, null);

            var actualElement = session.FindLink("bob").WithTimeout(TimeSpan.FromSeconds(321)).Now();

            Assert.That(actualElement, Is.SameAs(expectedElement));
        }
Beispiel #11
0
        public void When_query_returns_false_It_raises_an_exception()
        {
            var state1 = new State(new AlwaysSucceedsQuery <bool>(false, true, TimeSpan.Zero, SessionConfiguration.RetryInterval));
            var state2 = new State(new AlwaysSucceedsQuery <bool>(false, true, TimeSpan.Zero, SessionConfiguration.RetryInterval));

            var robustWrapper = new SpyRobustWrapper();

            robustWrapper.StubQueryResult(true, false);

            var session = BuildSession(robustWrapper);

            try
            {
                session.FindState(state1, state2);
                Assert.Fail("Expected MissingHTMLException");
            }
            catch (MissingHtmlException e)
            {
                Assert.That(e.Message, Is.EqualTo("None of the given states was reached within the configured timeout."));
            }
        }
Beispiel #12
0
        public void It_checks_all_of_the_states_in_a_robust_query_expecting_true()
        {
            bool queriedState1 = false;
            bool queriedState2 = false;
            var  state1        = new State(new LambdaQuery <bool>(() =>
            {
                queriedState1 = true;
                return(false);
            }));
            var state2 = new State(new LambdaQuery <bool>(() =>
            {
                queriedState2 = true;
                return(true);
            }));
            var state3 = new State(new LambdaQuery <bool>(() => true));

            state3.CheckCondition();

            var robustWrapper = new SpyRobustWrapper();

            robustWrapper.StubQueryResult(true, true);

            var session = BuildSession(robustWrapper);

            Assert.That(session.FindState(new [] { state1, state2, state3 }), Is.SameAs(state3));

            Assert.IsFalse(queriedState1);
            Assert.IsFalse(queriedState2);

            var query       = robustWrapper.QueriesRan <bool>().Single();
            var queryResult = query.Run();

            Assert.IsTrue(queryResult);

            Assert.IsTrue(queriedState1);
            Assert.IsTrue(queriedState2);
        }
Beispiel #13
0
 public void SetUp()
 {
     driver = new FakeDriver();
     spyRobustWrapper = new SpyRobustWrapper();
     session = new Session(driver, spyRobustWrapper);
 }
        public void When_query_returns_false_It_raises_an_exception()
        {
            var state1 = new State(new AlwaysSucceedsQuery<bool>(false, true, TimeSpan.Zero, SessionConfiguration.RetryInterval));
            var state2 = new State(new AlwaysSucceedsQuery<bool>(false, true, TimeSpan.Zero, SessionConfiguration.RetryInterval));

            var robustWrapper = new SpyRobustWrapper();
            robustWrapper.StubQueryResult(true, false);

            var session = BuildSession(robustWrapper);

            try
            {
                session.FindState(state1, state2);
                Assert.Fail("Expected MissingHTMLException");
            }
            catch (MissingHtmlException e)
            {
                Assert.That(e.Message, Is.EqualTo("None of the given states was reached within the configured timeout."));
            }
        }