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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
/// <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);
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 TestGetActionName() { var buttonClickAction = new PageNavigationAction(null, null, null); Assert.AreEqual("PageNavigationAction", buttonClickAction.Name); }
/// <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); }