public void TestMethodIsCalledWhenActionIsNavigationAndHasArgumentsAndSuccessful()
        {
            var page       = new Mock <IPage>(MockBehavior.Strict);
            var pageMapper = new Mock <IPageMapper>(MockBehavior.Strict);
            var logger     = new Mock <ILogger>();
            var browser    = new Mock <IBrowser>(MockBehavior.Strict);

            var action    = new PageNavigationAction(browser.Object, logger.Object, pageMapper.Object);
            var arguments = new Dictionary <string, string> {
                { "MyKey", "MyValue" }
            };
            var context = new PageNavigationAction.PageNavigationActionContext("testproperty", PageNavigationAction.PageAction.NavigateToPage, arguments);

            var postAction = new Mock <NavigationPostAction>(MockBehavior.Strict);

            postAction.Protected().Setup("OnPageNavigate", page.Object, PageNavigationAction.PageAction.NavigateToPage, arguments);

            var result = ActionResult.Successful(page.Object);

            postAction.Object.PerformPostAction(action, context, result);

            postAction.VerifyAll();
            pageMapper.VerifyAll();
            browser.VerifyAll();
            page.VerifyAll();
        }
Ejemplo n.º 2
0
        public void TestExecuteWithInvalidDateTimeLogsInfoAndContinues()
        {
            var pageMapper = new Mock <IPageMapper>(MockBehavior.Strict);

            pageMapper.Setup(p => p.GetTypeFromName("InvalidDateAttributePage")).Returns(typeof(InvalidDateAttributePage));

            var logger = new Mock <ILogger>();

            logger.Setup(l => l.Info("Cannot parse cookie date: {0}", new object[] { "foo" })).Verifiable();

            var browser = new Mock <IBrowser>(MockBehavior.Strict);

            browser.Setup(b => b.AddCookie("TestCookie", "TestValue", "/", null, null, false));

            var navigationAction = new PageNavigationAction(browser.Object, logger.Object, pageMapper.Object);

            var cookiePreAction = new SetCookiePreAction(browser.Object, logger.Object, pageMapper.Object);
            var context         = new ActionContext("InvalidDateAttributePage");

            cookiePreAction.PerformPreAction(navigationAction, context);

            pageMapper.VerifyAll();
            browser.VerifyAll();
            logger.VerifyAll();
        }
        public void TestExecuteWithNavigateAndCorrectParametersAndArgumentsReturnsSuccessful()
        {
            var testPage   = new Mock <IPage>();
            var pageMapper = new Mock <IPageMapper>(MockBehavior.Strict);

            pageMapper.Setup(p => p.GetTypeFromName("MyPage")).Returns(typeof(TestBase));

            var logger = new Mock <ILogger>();

            var arguments = new Dictionary <string, string> {
                { "MyKey", "value1" }
            };

            var browser = new Mock <IBrowser>(MockBehavior.Strict);

            browser.Setup(b => b.GoToPage(typeof(TestBase), arguments)).Returns(testPage.Object);


            var navigationAction = new PageNavigationAction(browser.Object, logger.Object, pageMapper.Object);

            var context = new PageNavigationAction.PageNavigationActionContext("MyPage", PageNavigationAction.PageAction.NavigateToPage, arguments);

            var result = navigationAction.Execute(context);

            Assert.AreEqual(true, result.Success);
            Assert.AreSame(testPage.Object, result.Result);

            pageMapper.VerifyAll();
            browser.VerifyAll();
        }
        public void TestExecuteWithEnsureOnPageAndCorrectParametersReturnsSuccessful()
        {
            var testPage   = new Mock <IPage>();
            var pageMapper = new Mock <IPageMapper>(MockBehavior.Strict);

            pageMapper.Setup(p => p.GetTypeFromName("MyPage")).Returns(typeof(TestBase));

            var logger = new Mock <ILogger>();

            var browser = new Mock <IBrowser>(MockBehavior.Strict);

            browser.Setup(b => b.Page(typeof(TestBase))).Returns(testPage.Object);
            browser.Setup(b => b.EnsureOnPage(testPage.Object));

            var navigationAction = new PageNavigationAction(browser.Object, logger.Object, pageMapper.Object);

            var context = new PageNavigationAction.PageNavigationActionContext("MyPage", PageNavigationAction.PageAction.EnsureOnPage);

            var result = navigationAction.Execute(context);

            Assert.AreEqual(true, result.Success);
            Assert.AreSame(testPage.Object, result.Result);

            pageMapper.VerifyAll();
            browser.VerifyAll();
        }
Ejemplo n.º 5
0
        public void TestExecuteWhenFieldDoesNotExistDoesNothing()
        {
            var pageMapper = new Mock<IPageMapper>(MockBehavior.Strict);
            pageMapper.Setup(p => p.GetTypeFromName("doesnotexist")).Returns((Type)null);

            var logger = new Mock<ILogger>();
            var browser = new Mock<IBrowser>(MockBehavior.Strict);

            var navigationAction = new PageNavigationAction(browser.Object, logger.Object, pageMapper.Object);

            var cookiePreAction = new SetCookiePreAction(browser.Object, logger.Object, pageMapper.Object);
            var context = new ActionContext("doesnotexist");

            cookiePreAction.PerformPreAction(navigationAction, context);
           
            pageMapper.VerifyAll();
            browser.VerifyAll();
        }
Ejemplo n.º 6
0
        public void TestExecuteWithPageThatDoesNotContainAnAttributeDoesNothing()
        {
            var pageMapper = new Mock<IPageMapper>(MockBehavior.Strict);
            pageMapper.Setup(p => p.GetTypeFromName("NoAttributePage")).Returns(typeof(NoAttributePage));

            var logger = new Mock<ILogger>();

            var browser = new Mock<IBrowser>(MockBehavior.Strict);
            
            var navigationAction = new PageNavigationAction(browser.Object, logger.Object, pageMapper.Object);

            var cookiePreAction = new SetCookiePreAction(browser.Object, logger.Object, pageMapper.Object);
            var context = new ActionContext("NoAttributePage");

            cookiePreAction.PerformPreAction(navigationAction, context);

            pageMapper.VerifyAll();
            browser.VerifyAll();
        }
Ejemplo n.º 7
0
        public void TestExecuteWithNumericSlidingDateTimePassesToBrowser()
        {
            var pageMapper = new Mock<IPageMapper>(MockBehavior.Strict);
            pageMapper.Setup(p => p.GetTypeFromName("SlidingDateAttributePage")).Returns(typeof(SlidingDateAttributePage));

            var logger = new Mock<ILogger>();

            var browser = new Mock<IBrowser>(MockBehavior.Strict);
            browser.Setup(b => b.AddCookie("TestCookie", "TestValue", "/", It.Is<DateTime?>(d => d.Value > DateTime.Now), null, false));

            var navigationAction = new PageNavigationAction(browser.Object, logger.Object, pageMapper.Object);

            var cookiePreAction = new SetCookiePreAction(browser.Object, logger.Object, pageMapper.Object);
            var context = new ActionContext("SlidingDateAttributePage");

            cookiePreAction.PerformPreAction(navigationAction, context);

            pageMapper.VerifyAll();
            browser.VerifyAll();
        }
Ejemplo n.º 8
0
        public void TestExecuteWithNavigateAndCorrectParametersAndArgumentsReturnsSuccessful()
        {
            var pageMapper = new Mock<IPageMapper>(MockBehavior.Strict);
            pageMapper.Setup(p => p.GetTypeFromName("AttributePage")).Returns(typeof(AttributePage));

            var logger = new Mock<ILogger>();

            var browser = new Mock<IBrowser>(MockBehavior.Strict);
            browser.Setup(b => b.AddCookie("TestCookie", "TestValue", "/mydomain", null, "www.mydomain.com", true));

            var navigationAction = new PageNavigationAction(browser.Object, logger.Object, pageMapper.Object);

            var cookiePreAction = new SetCookiePreAction(browser.Object, logger.Object, pageMapper.Object);
            var context = new ActionContext("AttributePage");

            cookiePreAction.PerformPreAction(navigationAction, context);

            pageMapper.VerifyAll();
            browser.VerifyAll();
        }
        public void TestMethodIsCalledWhenActionIsNavigationAndSuccessful()
        {
            var page = new Mock<IPage>(MockBehavior.Strict);
            var pageMapper = new Mock<IPageMapper>(MockBehavior.Strict);
            var logger = new Mock<ILogger>();
            var browser = new Mock<IBrowser>(MockBehavior.Strict);

            var action = new PageNavigationAction(browser.Object, logger.Object, pageMapper.Object);
            var context = new PageNavigationAction.PageNavigationActionContext("testproperty", PageNavigationAction.PageAction.NavigateToPage);

            var postAction = new Mock<NavigationPostAction>(MockBehavior.Strict);
            postAction.Protected().Setup("OnPageNavigate", page.Object, PageNavigationAction.PageAction.NavigateToPage, ItExpr.IsNull<Dictionary<string, string>>());

            var result = ActionResult.Successful(page.Object);
            postAction.Object.PerformPostAction(action, context, result);

            postAction.VerifyAll();
            pageMapper.VerifyAll();
            browser.VerifyAll();
            page.VerifyAll();
        }
Ejemplo n.º 10
0
        public void TestExecuteWhenFieldDoesNotExistThrowsAnException()
        {
            var pageMapper = new Mock<IPageMapper>(MockBehavior.Strict);
            pageMapper.Setup(p => p.GetTypeFromName("doesnotexist")).Returns((Type)null);

            var logger = new Mock<ILogger>();
            var browser = new Mock<IBrowser>(MockBehavior.Strict);

            var navigationAction = new PageNavigationAction(browser.Object, logger.Object, pageMapper.Object);

            var context = new PageNavigationAction.PageNavigationActionContext("doesnotexist", PageNavigationAction.PageAction.EnsureOnPage);

            var result = navigationAction.Execute(context);
            
            Assert.AreEqual(false, result.Success);
            Assert.IsNotNull(result.Exception);
            Assert.AreEqual("Cannot locate a page for name: doesnotexist. Check page aliases in the test assembly.", result.Exception.Message);
            
            pageMapper.VerifyAll();
            browser.VerifyAll();
        }
Ejemplo n.º 11
0
        public void TestExecuteWhenFieldDoesNotExistThrowsAnException()
        {
            var pageMapper = new Mock <IPageMapper>(MockBehavior.Strict);

            pageMapper.Setup(p => p.GetTypeFromName("doesnotexist")).Returns((Type)null);

            var logger  = new Mock <ILogger>();
            var browser = new Mock <IBrowser>(MockBehavior.Strict);

            var navigationAction = new PageNavigationAction(browser.Object, logger.Object, pageMapper.Object);

            var context = new PageNavigationAction.PageNavigationActionContext("doesnotexist", PageNavigationAction.PageAction.EnsureOnPage);

            var result = navigationAction.Execute(context);

            Assert.AreEqual(false, result.Success);
            Assert.IsNotNull(result.Exception);
            Assert.AreEqual("Cannot locate a page for name: doesnotexist. Check page aliases in the test assembly.", result.Exception.Message);

            pageMapper.VerifyAll();
            browser.VerifyAll();
        }
Ejemplo n.º 12
0
        public void TestIsCalledWhenActionIsNavigationAndSuccessful()
        {
            var page       = new Mock <IPage>(MockBehavior.Strict);
            var pageMapper = new Mock <IPageMapper>(MockBehavior.Strict);
            var logger     = new Mock <ILogger>();
            var browser    = new Mock <IBrowser>(MockBehavior.Strict);

            var action  = new PageNavigationAction(browser.Object, logger.Object, pageMapper.Object);
            var context = new PageNavigationAction.PageNavigationActionContext("testproperty", PageNavigationAction.PageAction.NavigateToPage);

            var postAction = new Mock <NavigationPostAction>(MockBehavior.Strict);

            postAction.Protected().Setup("OnPageNavigate", page.Object, PageNavigationAction.PageAction.NavigateToPage, ItExpr.IsNull <Dictionary <string, string> >());

            var result = ActionResult.Successful(page.Object);

            postAction.Object.PerformPostAction(action, context, result);

            postAction.VerifyAll();
            pageMapper.VerifyAll();
            browser.VerifyAll();
            page.VerifyAll();
        }
Ejemplo n.º 13
0
        public void TestExecuteWithNavigateAndCorrectParametersReturnsSuccessful()
        {
            var testPage = new Mock<IPage>();
            var pageMapper = new Mock<IPageMapper>(MockBehavior.Strict);
            pageMapper.Setup(p => p.GetTypeFromName("MyPage")).Returns(typeof(TestBase));

            var logger = new Mock<ILogger>();

            var browser = new Mock<IBrowser>(MockBehavior.Strict);
            browser.Setup(b => b.GoToPage(typeof(TestBase), null)).Returns(testPage.Object);


            var navigationAction = new PageNavigationAction(browser.Object, logger.Object, pageMapper.Object);

            var context = new PageNavigationAction.PageNavigationActionContext("MyPage", PageNavigationAction.PageAction.NavigateToPage);

            var result = navigationAction.Execute(context);

            Assert.AreEqual(true, result.Success);
            Assert.AreSame(testPage.Object, result.Result);

            pageMapper.VerifyAll();
            browser.VerifyAll();
        }
Ejemplo n.º 14
0
 /// <summary>
 /// Called when page navigation has occurred.
 /// </summary>
 /// <param name="page">The page that has been navigated to.</param>
 /// <param name="actionType">Type of the action.</param>
 /// <param name="pageArguments">The page arguments.</param>
 protected abstract void OnPageNavigate(IPage page, PageNavigationAction.PageAction actionType, IDictionary<string, string> pageArguments);
Ejemplo n.º 15
0
        public void TestExecuteWithInvalidDateTimeLogsInfoAndContinues()
        {
            var pageMapper = new Mock<IPageMapper>(MockBehavior.Strict);
            pageMapper.Setup(p => p.GetTypeFromName("InvalidDateAttributePage")).Returns(typeof(InvalidDateAttributePage));

            var logger = new Mock<ILogger>();
            logger.Setup(l => l.Info("Cannot parse cookie date: {0}", new object[] { "foo" })).Verifiable();

            var browser = new Mock<IBrowser>(MockBehavior.Strict);
            browser.Setup(b => b.AddCookie("TestCookie", "TestValue", "/", null, null, false));

            var navigationAction = new PageNavigationAction(browser.Object, logger.Object, pageMapper.Object);

            var cookiePreAction = new SetCookiePreAction(browser.Object, logger.Object, pageMapper.Object);
            var context = new ActionContext("InvalidDateAttributePage");

            cookiePreAction.PerformPreAction(navigationAction, context);

            pageMapper.VerifyAll();
            browser.VerifyAll();
            logger.VerifyAll();
        }
Ejemplo n.º 16
0
        public void TestGetActionName()
        {
            var buttonClickAction = new PageNavigationAction(null, null, null);

            Assert.AreEqual("PageNavigationAction", buttonClickAction.Name);
        }
Ejemplo n.º 17
0
 /// <summary>
 /// Called when page navigation has occurred.
 /// </summary>
 /// <param name="page">The page that has been navigated to.</param>
 /// <param name="actionType">Type of the action.</param>
 /// <param name="pageArguments">The page arguments.</param>
 protected override void OnPageNavigate(IPage page, PageNavigationAction.PageAction actionType, IDictionary<string, string> pageArguments)
 {
     this.tokenManager.SetToken("NavigatedPageSuccess", page.PageType.Name);
 }
Ejemplo n.º 18
0
        public void TestGetActionName()
        {
            var buttonClickAction = new PageNavigationAction(null, null, null);

            Assert.AreEqual("PageNavigationAction", buttonClickAction.Name);
        }