Advertisement
Guest User

Untitled

a guest
Oct 7th, 2018
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.32 KB | None | 0 0
  1. #region Copyright
  2.  
  3. // ==================================================================================================
  4. // This file is part of the Navitaire dotREZ application.
  5. // Copyright ©2018 Navitaire LLC An Amadeus company. All rights reserved.
  6. // ==================================================================================================
  7.  
  8. #endregion
  9.  
  10. using System;
  11. using NUnit.Framework;
  12.  
  13. using Navitaire.Automation.Framework;
  14. using Navitaire.Automation.DotRezMobility;
  15. using Navitaire.DotRez.Mobile.UITests.Utilities.Config;
  16. using TestData = Navitaire.DotRez.Mobile.UITests.Utilities.TestData.MemberRegistrationSmoke;
  17.  
  18.  
  19. namespace Navitaire.DotRez.Mobile.UITests.SmokeTests
  20. {
  21. /// <summary>
  22. /// Smoketest Scenario 1 for DotRez Mobile
  23. /// </summary>
  24. [TestFixture]
  25. public class MemberRegistrationSmoke
  26. {
  27. /// <summary>
  28. /// Smoketest for Member Registration using Home Page
  29. /// </summary>
  30. [Test]
  31. [Category("Smoke Tests")]
  32. public void MemberRegistrationHomePageSmokeTest()
  33. {
  34. MobileApp.Close();
  35. AssertManager assertManager = new AssertManager();
  36.  
  37. Logger.Register(new TraceLogger());
  38. Logger.Register(new XmlLogger(@"TestResults\MemberRegistrationHomePageSmokeTest_Log_" + DateTime.Now.ToString("ddMMMyyyyHHmmss")));
  39.  
  40. Logger.StartTest();
  41. Logger.StartIteration(1);
  42.  
  43. //Unique Username generated at runtime
  44. string Username = string.Format(TestDataHelper.GetTestValue(TestDataType.Member, "Username"),
  45. DateTime.Now.ToString("MMddyyHHmmss"));
  46. string Email = $"{ Username }{ TestDataHelper.GetTestValue(TestDataType.Member, "EmailSuffix") }";
  47.  
  48. /// 1. Launch the App and Register a Member account.
  49. using (var DotRezMobilePage = UIViews.Get<DotRezMobilePage>(new UIActionLogger(), new UISearchCatcher(), new UITimeLogger()))
  50. {
  51. DotRezMobilePage.Open();
  52.  
  53. DotRezMobilePage.LoginRegister();
  54.  
  55. DotRezMobilePage.Screenshot("Tap Login/Register");
  56. }
  57.  
  58. using (var SignInPage = UIViews.Get<SignInPage>(new UIActionLogger(), new UISearchCatcher(), new UITimeLogger()))
  59. {
  60. SignInPage.Open();
  61.  
  62. /// 2. Click Create Account button on Sign in Page.
  63. SignInPage.CreateAnAccount();
  64.  
  65. SignInPage.Screenshot("Tap CREATE AN ACCOUNT");
  66. }
  67.  
  68. using (var RegisterPage = UIViews.Get<RegisterPage>(new UIActionLogger(), new UISearchCatcher(), new UITimeLogger()))
  69. {
  70. RegisterPage.Open();
  71.  
  72. RegisterPage.Username = Username.Substring(0, 1);
  73. RegisterPage.Title = TestDataHelper.GetTestValue(TestDataType.Member, "Title");
  74. RegisterPage.FirstName = TestDataHelper.GetTestValue(TestDataType.Member, "FirstName");
  75. RegisterPage.LastName = TestDataHelper.GetTestValue(TestDataType.Member, "LastName");
  76. RegisterPage.DateOfBirth(TestDataHelper.GetTestDataAge(TestDataType.Member, "Age"));
  77. RegisterPage.Email = Email;
  78. RegisterPage.Password = TestDataHelper.GetTestValue(TestDataType.Member, "Password").Substring(0, 2);//Invalid password length
  79.  
  80. RegisterPage.CreateAccount();
  81. RegisterPage.ClearPassword();
  82. // ~ - Invalid field input will not be processed
  83. assertManager.Record(() => Assert.True(RegisterPage.RequiredFieldsWarningExists),
  84. "Invalid field input was not processed.",
  85. "Invalid field input was processed.");
  86.  
  87. RegisterPage.ClearUsername();
  88. RegisterPage.Username = Username;
  89. RegisterPage.Password = TestDataHelper.GetTestValue(TestDataType.Member, "Password");
  90.  
  91. RegisterPage.Screenshot("Fill up Register details");
  92.  
  93. RegisterPage.CreateAccount();
  94.  
  95. RegisterPage.Screenshot("Tap Create Account");
  96. }
  97.  
  98. using (var DotRezMobilePage = UIViews.Get<DotRezMobilePage>(new UIActionLogger(), new UISearchCatcher(), new UITimeLogger()))
  99. {
  100. bool AutomaticallyLoggedIn = DotRezMobilePage.AutomaticallyLoggedIn;
  101. bool RegisterSuccessful = DotRezMobilePage.RegisterSuccessful;
  102.  
  103. DotRezMobilePage.Open();
  104.  
  105. DotRezMobilePage.Menu();
  106.  
  107. bool UserLoggedIn = DotRezMobilePage.UserIsLoggedIn($"{ TestDataHelper.GetTestValue(TestDataType.Member, "FirstName") } { TestDataHelper.GetTestValue(TestDataType.Member, "LastName") }");
  108.  
  109. // ~ - Able to register a Member using the following:
  110. // ~ a. Log in Icon on Home Page
  111. assertManager.Record(() => Assert.True(RegisterSuccessful && UserLoggedIn),
  112. $"{ Username } able to register using Icon on Home Page",
  113. $"{ Username } not registered as member using Icon on Home Page");
  114.  
  115. // ~ - User is auto logged in after member creation
  116. assertManager.Record(() => Assert.True(AutomaticallyLoggedIn && UserLoggedIn),
  117. $"{ Username } is auto logged in after member creation",
  118. $"{ Username } is not auto logged in");
  119.  
  120. DotRezMobilePage.Logout();
  121. DotRezMobilePage.ConfirmLogoutYes();
  122. }
  123.  
  124. MobileApp.Close();
  125.  
  126. Logger.EndIteration();
  127. Logger.EndTest();
  128. Assert.True(assertManager.TestPassed);
  129. }
  130.  
  131. /// <summary>
  132. /// Smoketest for Member Registration using Search Page
  133. /// </summary>
  134. [Test]
  135. [Category("Smoke Tests")]
  136. public void MemberRegistrationSearchPageSmokeTest()
  137. {
  138. MobileApp.Close();
  139. AssertManager assertManager = new AssertManager();
  140.  
  141. Logger.Register(new TraceLogger());
  142. Logger.Register(new XmlLogger(@"TestResults\MemberRegistrationSearchPageSmokeTest_Log_" + DateTime.Now.ToString("ddMMMyyyyHHmmss")));
  143.  
  144. Logger.StartTest();
  145. Logger.StartIteration(1);
  146.  
  147. //Unique Username generated at runtime
  148. string Username = string.Format(TestDataHelper.GetTestValue(TestDataType.Member, "Username"),
  149. DateTime.Now.ToString("MMddyyHHmmss"));
  150. string Email = $"{ Username }{ TestDataHelper.GetTestValue(TestDataType.Member, "EmailSuffix") }";
  151.  
  152. /// 1. Launch the App and Register a Member account.
  153. using (var DotRezMobilePage = UIViews.Get<DotRezMobilePage>(new UIActionLogger(), new UISearchCatcher(), new UITimeLogger()))
  154. {
  155. DotRezMobilePage.Open();
  156.  
  157. DotRezMobilePage.BookAFlight();
  158. }
  159.  
  160. using (var BookAFlightPage = UIViews.Get<BookAFlightPage>(new UIActionLogger(), new UISearchCatcher(), new UITimeLogger()))
  161. {
  162. BookAFlightPage.Open();
  163.  
  164. BookAFlightPage.LoginRegister();
  165.  
  166. BookAFlightPage.Screenshot("Tap Login/Register");
  167. }
  168.  
  169. using (var SignInPage = UIViews.Get<SignInPage>(new UIActionLogger(), new UISearchCatcher(), new UITimeLogger()))
  170. {
  171. SignInPage.Open();
  172.  
  173. /// 2. Click Create Account button on Sign in Page.
  174. SignInPage.CreateAnAccount();
  175.  
  176. SignInPage.Screenshot("Tap CREATE AN ACCOUNT");
  177. }
  178.  
  179. using (var RegisterPage = UIViews.Get<RegisterPage>(new UIActionLogger(), new UISearchCatcher(), new UITimeLogger()))
  180. {
  181. RegisterPage.Open();
  182.  
  183. RegisterPage.Username = Username;
  184. RegisterPage.Title = TestDataHelper.GetTestValue(TestDataType.Member, "Title");
  185. RegisterPage.FirstName = TestDataHelper.GetTestValue(TestDataType.Member, "FirstName");
  186. RegisterPage.LastName = TestDataHelper.GetTestValue(TestDataType.Member, "LastName");
  187. RegisterPage.DateOfBirth(TestDataHelper.GetTestDataAge(TestDataType.Member, "Age"));
  188. RegisterPage.Email = Email.Substring(0, 7);
  189. RegisterPage.Password = TestDataHelper.GetTestValue(TestDataType.Member, "Password");
  190.  
  191. RegisterPage.CreateAccount();
  192.  
  193. // ~ - Invalid field input will not be processed
  194. assertManager.Record(() => Assert.True(RegisterPage.RequiredFieldsWarningExists),
  195. "Invalid field input was not processed.",
  196. "Invalid field input was processed.");
  197.  
  198. RegisterPage.ClearEmail();
  199. RegisterPage.Email = Email;
  200.  
  201. RegisterPage.Screenshot("Fill up Register details");
  202.  
  203. RegisterPage.CreateAccount();
  204.  
  205. RegisterPage.Screenshot("Tap Create Account");
  206. }
  207.  
  208. using (var BookAFlightPage = UIViews.Get<BookAFlightPage>(new UIActionLogger(), new UISearchCatcher(), new UITimeLogger()))
  209. {
  210. bool AutomaticallyLoggedIn = BookAFlightPage.AutomaticallyLoggedIn;
  211. bool RegisterSuccessful = BookAFlightPage.RegisterSuccessful;
  212.  
  213. BookAFlightPage.Open();
  214.  
  215. BookAFlightPage.Menu();
  216.  
  217. bool UserLoggedIn = BookAFlightPage.UserIsLoggedIn($"{ TestDataHelper.GetTestValue(TestDataType.Member, "FirstName") } { TestDataHelper.GetTestValue(TestDataType.Member, "LastName") }");
  218.  
  219. // ~ - Able to register a Member using the following:
  220. // ~ c. Log in/Register option in Slider Menu
  221. assertManager.Record(() => Assert.True(RegisterSuccessful && UserLoggedIn),
  222. $"{ Username } able to register using Slider Menu",
  223. $"{ Username } not registered as member using Slider Menu");
  224.  
  225. // ~ - User is auto logged in after member creation
  226. assertManager.Record(() => Assert.True(AutomaticallyLoggedIn && UserLoggedIn),
  227. $"{ Username } is auto logged in after member creation",
  228. $"{ Username } is not auto logged in");
  229.  
  230. BookAFlightPage.Logout();
  231. BookAFlightPage.ConfirmLogoutYes();
  232. }
  233.  
  234. MobileApp.Close();
  235.  
  236. Logger.EndIteration();
  237. Logger.EndTest();
  238. Assert.True(assertManager.TestPassed);
  239. }
  240.  
  241. /// <summary>
  242. /// Smoketest for Member Registration using Slider Menu
  243. /// </summary>
  244. [Test]
  245. [Category("Smoke Tests")]
  246. public void MemberRegistrationSliderMenuSmokeTest()
  247. {
  248. MobileApp.Close();
  249. AssertManager assertManager = new AssertManager();
  250.  
  251. Logger.Register(new TraceLogger());
  252. Logger.Register(new XmlLogger(@"TestResults\MemberRegistrationSliderMenuSmokeTest_Log_" + DateTime.Now.ToString("ddMMMyyyyHHmmss")));
  253.  
  254. Logger.StartTest();
  255. Logger.StartIteration(1);
  256.  
  257. //Unique Username generated at runtime
  258. string Username = string.Format(TestDataHelper.GetTestValue(TestDataType.Member, "Username"),
  259. DateTime.Now.ToString("MMddyyHHmmss"));
  260. string Email = $"{ Username }{ TestDataHelper.GetTestValue(TestDataType.Member, "EmailSuffix") }";
  261.  
  262. /// 1. Launch the App and Register a Member account.
  263. using (var DotRezMobilePage = UIViews.Get<DotRezMobilePage>(new UIActionLogger(), new UISearchCatcher(), new UITimeLogger()))
  264. {
  265. DotRezMobilePage.Open();
  266.  
  267. DotRezMobilePage.Menu();
  268.  
  269. DotRezMobilePage.MenuLoginRegister();
  270.  
  271. DotRezMobilePage.Screenshot("Tap Menu > Login/Register");
  272. }
  273.  
  274. using (var SignInPage = UIViews.Get<SignInPage>(new UIActionLogger(), new UISearchCatcher(), new UITimeLogger()))
  275. {
  276. SignInPage.Open();
  277.  
  278. /// 2. Click Create Account button on Sign in Page.
  279. SignInPage.CreateAnAccount();
  280.  
  281. SignInPage.Screenshot("Tap CREATE AN ACCOUNT");
  282. }
  283.  
  284. using (var RegisterPage = UIViews.Get<RegisterPage>(new UIActionLogger(), new UISearchCatcher(), new UITimeLogger()))
  285. {
  286. RegisterPage.Open();
  287.  
  288. RegisterPage.Username = Username;
  289. RegisterPage.Title = TestDataHelper.GetTestValue(TestDataType.Member, "Title");
  290. RegisterPage.FirstName = TestDataHelper.GetTestValue(TestDataType.Member, "FirstName");
  291. RegisterPage.LastName = TestDataHelper.GetTestValue(TestDataType.Member, "LastName");
  292. RegisterPage.DateOfBirth(TestDataHelper.GetTestDataAge(TestDataType.Member, "Age"));
  293. RegisterPage.Email = Email;
  294. RegisterPage.Password = TestDataHelper.GetTestValue(TestDataType.Member, "Password").ToLower();
  295. RegisterPage.CreateAccount();
  296.  
  297. // ~ - Invalid field input will not be processed
  298. assertManager.Record(() => Assert.True(RegisterPage.RequiredFieldsWarningExists),
  299. "Invalid field input was not processed.",
  300. "Invalid field input was processed.");
  301.  
  302. RegisterPage.ClearPassword();
  303. RegisterPage.Password = TestDataHelper.GetTestValue(TestDataType.Member, "Password");
  304.  
  305. RegisterPage.Screenshot("Fill up Register details");
  306.  
  307. RegisterPage.CreateAccount();
  308.  
  309. RegisterPage.Screenshot("Tap Create Account");
  310. }
  311.  
  312. using (var DotRezMobilePage = UIViews.Get<DotRezMobilePage>(new UIActionLogger(), new UISearchCatcher(), new UITimeLogger()))
  313. {
  314. bool AutomaticallyLoggedIn = DotRezMobilePage.AutomaticallyLoggedIn;
  315. bool RegisterSuccessful = DotRezMobilePage.RegisterSuccessful;
  316.  
  317. DotRezMobilePage.Open();
  318.  
  319. DotRezMobilePage.Menu();
  320.  
  321. bool UserLoggedIn = DotRezMobilePage.UserIsLoggedIn($"{ TestDataHelper.GetTestValue(TestDataType.Member, "FirstName") } { TestDataHelper.GetTestValue(TestDataType.Member, "LastName") }");
  322.  
  323. // ~ - Able to register a Member using the following:
  324. // ~ b. Log in Icon on Search Page
  325. assertManager.Record(() => Assert.True(RegisterSuccessful && UserLoggedIn),
  326. $"{ Username } able to register using Icon on Search Page",
  327. $"{ Username } not registered as member using Icon on Search Page");
  328.  
  329. // ~ - User is auto logged in after member creation
  330. assertManager.Record(() => Assert.True(AutomaticallyLoggedIn && UserLoggedIn),
  331. $"{ Username } is auto logged in after member creation",
  332. $"{ Username } is not auto logged in");
  333.  
  334. DotRezMobilePage.Logout();
  335. DotRezMobilePage.ConfirmLogoutYes();
  336. }
  337.  
  338. MobileApp.Close();
  339.  
  340. Logger.EndIteration();
  341. Logger.EndTest();
  342. Assert.True(assertManager.TestPassed);
  343. }
  344. }
  345. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement