public void Purchase_SeleniumTestingToolsCookbook() { var itemUrl = "/Selenium-Testing-Cookbook-Gundecha-Unmesh/dp/1849515743"; var itemPrice = "40.49"; var clientPurchaseInfo = new ClientPurchaseInfo( new ClientAddressInfo() { FullName = "John Smith", Country = "United States", Address1 = "950 Avenue of the Americas", State = "New York", City = "New York City", Zip = "10001-2121", Phone = "00164644885569" }) { CouponCode = "99PERDIS" }; var clientLoginInfo = new ClientLoginInfo() { Email = "*****@*****.**", Password = "******" }; Container.RegisterInstance <IPurchasePromotionalCodeStrategy>( new UiPurchasePromotionalCodeStrategy(Container.Resolve <PlaceOrderPage>(), 40.49)); var purchaseContext = Container.Resolve <PurchaseContext>(); purchaseContext.PurchaseItem(itemUrl, itemPrice, clientLoginInfo, clientPurchaseInfo); }
public void PurchaseItem(string itemUrl, string itemPrice, ClientLoginInfo clientLoginInfo, ClientPurchaseInfo clientPurchaseInfo) { _itemPage.Navigate(itemUrl); _itemPage.ClickBuyNowButton(); _previewShoppingCartPage.ClickProceedToCheckoutButton(); _signInPage.Login(clientLoginInfo.Email, clientLoginInfo.Password); _shippingAddressPage.FillShippingInfo(clientPurchaseInfo); _shippingAddressPage.ClickDifferentBillingCheckBox(clientPurchaseInfo); _shippingAddressPage.ClickContinueButton(); _shippingPaymentPage.ClickBottomContinueButton(); _shippingAddressPage.FillBillingInfo(clientPurchaseInfo); _shippingAddressPage.ClickContinueButton(); _shippingPaymentPage.ClickTopContinueButton(); double couponDiscount = 0; if (_purchasePromotionalCodeStrategy != null) { _purchasePromotionalCodeStrategy.AssertPromotionalCodeDiscount(); couponDiscount = _purchasePromotionalCodeStrategy.GetPromotionalCodeDiscountAmount(); } var totalPrice = double.Parse(itemPrice); _placeOrderPage.AssertOrderTotalPrice(totalPrice, couponDiscount); // Some other actions... if (_purchasePromotionalCodeStrategy != null) { _purchasePromotionalCodeStrategy.AssertPromotionalCodeDiscount(); } }
public void Purchase_SimpleBehaviourEngine() { var itemUrl = "/Selenium-Testing-Cookbook-Gundecha-Unmesh/dp/1849515743"; var itemPrice = "40.49"; var clientPurchaseInfo = new ClientPurchaseInfo( new ClientAddressInfo() { FullName = "John Smith", Country = "United States", Address1 = "950 Avenue of the Americas", State = "New York", City = "New York City", Zip = "10001-2121", Phone = "00164644885569" }) { CouponCode = "99PERDIS" }; var clientLoginInfo = new ClientLoginInfo() { Email = "*****@*****.**", Password = "******" }; Behaviours.Core.BehaviourExecutor.Execute( new ItemPageNavigationBehaviour(itemUrl), new ItemPageBuyBehaviour(), new PreviewShoppingCartPageProceedBehaviour(), new SignInPageLoginBehaviour(clientLoginInfo), new ShippingAddressPageFillShippingBehaviour(clientPurchaseInfo), new ShippingAddressPageFillDifferentBillingBehaviour(clientPurchaseInfo), new ShippingAddressPageContinueBehaviour(), new ShippingPaymentPageContinueBehaviour(), new PlaceOrderPageAssertFinalAmountsBehaviour(itemPrice)); }
public void TestMethod1() { var itemUrl = "/Selenium-Testing-Cookbook-Gundecha-Unmesh/dp/1849515743"; var itemPrice = "44.99"; var clientPurchaseInfo = new ClientPurchaseInfo( new ClientAddressInfo() { FullName = "John Smith", Country = "United States", Address1 = "950 Avenue of the Americas", State = "New York", City = "New York City", Zip = "10001-2121", Phone = "00164644885569" }) { GiftWrapping = GiftWrappingStyles.None }; var clientLoginInfo = new ClientLoginInfo() { Email = "*****@*****.**", Password = "******" }; //new PurchaseContext(new SalesTaxOrderValidationStrategy()).PurchaseItem(itemUrl, itemPrice, clientLoginInfo, clientPurchaseInfo); var salesTaxStrategy = new PurchaseContext(new SalesTaxOrderValidationStrategy()); salesTaxStrategy.PurchaseItem(itemUrl, itemPrice, clientLoginInfo, clientPurchaseInfo); Thread.Sleep(5000); }
public void Purchase_SeleniumTestingToolsCookbook() { var itemUrl = "/Selenium-Testing-Cookbook-Gundecha-Unmesh/dp/1849515743"; var itemPrice = "40.49"; var clientPurchaseInfo = new ClientPurchaseInfo( new ClientAddressInfo() { FullName = "John Smith", Country = "United States", Address1 = "950 Avenue of the Americas", State = "New York", City = "New York City", Zip = "10001-2121", Phone = "00164644885569" }) { GiftWrapping = GiftWrappingStyles.None }; var clientLoginInfo = new ClientLoginInfo() { Email = "*****@*****.**", Password = "******" }; new PurchaseContext(new SalesTaxOrderValidationStrategy()).PurchaseItem(itemUrl, itemPrice, clientLoginInfo, clientPurchaseInfo); }
public void Purchase_ShoppingCartFacade() { var itemUrl = "/Selenium-Testing-Cookbook-Gundecha-Unmesh/dp/1849515743"; var itemPrice = "40.49"; var clientPurchaseInfo = new ClientPurchaseInfo( new ClientAddressInfo() { FullName = "John Smith", Country = "United States", Address1 = "950 Avenue of the Americas", State = "New York", City = "New York City", Zip = "10001-2121", Phone = "00164644885569" }) { CouponCode = "99PERDIS" }; var clientLoginInfo = new ClientLoginInfo() { Email = "*****@*****.**", Password = "******" }; var shoppingCart = Container.Resolve <ShoppingCart>(); shoppingCart.PurchaseItem(itemUrl, itemPrice, clientLoginInfo, clientPurchaseInfo); }
public void Purchase_SeleniumTestingToolsCookbook() { var itemUrl = "/Selenium-Testing-Cookbook-Gundecha-Unmesh/dp/1849515743"; var itemPrice = "40.49"; var clientPurchaseInfo = new ClientPurchaseInfo( new ClientAddressInfo() { FullName = "John Smith", Country = "United States", Address1 = "950 Avenue of the Americas", State = "New York", City = "New York City", Zip = "10001-2121", Phone = "00164644885569" }) { CouponCode = "99PERDIS" }; var clientLoginInfo = new ClientLoginInfo() { Email = "*****@*****.**", Password = "******" }; var purchaseContext = new PurchaseContext(NullPurchasePromotionalCodeStrategy.Null, new ItemPage(Driver.Browser), new PreviewShoppingCartPage(Driver.Browser), new SignInPage(Driver.Browser), new ShippingAddressPage(Driver.Browser), new ShippingPaymentPage(Driver.Browser), new PlaceOrderPage(Driver.Browser)); purchaseContext.PurchaseItem(itemUrl, itemPrice, clientLoginInfo, clientPurchaseInfo); }
public void LoginWithEmailAndPass(string email, string password) { _clientLoginInfo = new ClientLoginInfo { Email = email, Password = password, }; Execute(); }
public void LoginWithEmailAndPass(string email, string password) { this.clientLoginInfo = new ClientLoginInfo { Email = email, Password = password }; base.Execute(); }
private void PurchaseItemInternal(string itemUrl, ClientLoginInfo clientLoginInfo, ClientPurchaseInfo clientPurchaseInfo) { ItemPage.Instance.Navigate(itemUrl); ItemPage.Instance.ClickBuyNowButton(); PreviewShoppingCartPage.Instance.ClickProceedToCheckoutButton(); SignInPage.Instance.Login(clientLoginInfo.Email, clientLoginInfo.Password); ShippingAddressPage.Instance.FillShippingInfo(clientPurchaseInfo); ShippingAddressPage.Instance.ClickContinueButton(); ShippingPaymentPage.Instance.ClickBottomContinueButton(); ShippingPaymentPage.Instance.ClickTopContinueButton(); }
public void PurchaseItem(string itemUrl, string itemPrice, ClientLoginInfo clientLoginInfo, ClientPurchaseInfo clientPurchaseInfo) { ItemPage.Instance.Navigate(itemUrl); ItemPage.Instance.ClickBuyNowButton(); PreviewShoppingCartPage.Instance.ClickProceedToCheckoutButton(); SignInPage.Instance.Login(clientLoginInfo.Email, clientLoginInfo.Password); ShippingAddressPage.Instance.FillShippingInfo(clientPurchaseInfo); ShippingAddressPage.Instance.ClickContinueButton(); ShippingPaymentPage.Instance.ClickBottomContinueButton(); ShippingPaymentPage.Instance.ClickTopContinueButton(); _orderValidationStrategy.ValidateOrderSummary(itemPrice, clientPurchaseInfo); }
//------------------------------------------------------------------------- /// <summary> /// 当前服务器组响应玩家登陆. /// </summary> /// <param name="account">账号</param> /// <param name="password">密码</param> /// <param name="chanel">渠道</param> /// <returns></returns> public bool addLoginPlayer(string account, string password, string chanel, IComponent s) { if (mLoginPlayerQueue.ContainsKey(account)) { return(false); } ClientLoginInfo player = new ClientLoginInfo(); player.account = account; player.password = password; player.server = mServerGroupName; player.chanel = chanel; player.session = s; return(mLoginPlayerQueue.TryAdd(account, player)); }
//------------------------------------------------------------------------- /// <summary> /// gate server 通过zk反馈的登陆结果. /// </summary> /// <param name="account">玩家账号</param> /// <param name="result">结果</param> public void gateBackPlayerLoginResult(string account, string result, Dictionary <byte, object> param) { ClientLoginInfo player = null; if (mLoginPlayerQueue.TryGetValue(account, out player)) { player.param = param; if (result == "success") { player.state = eLogingState.gateBackSuccess; } else { player.state = eLogingState.gateBackFailed; } } }
public void PurchaseItem(string itemUrl, string itemPrice, ClientLoginInfo clientLoginInfo, ClientPurchaseInfo clientPurchaseInfo) { ItemPage.Instance.Navigate(itemUrl); ItemPage.Instance.ClickBuyNowButton(); PreviewShoppingCartPage.Instance.ClickProceedToCheckoutButton(); SignInPage.Instance.Login(clientLoginInfo.Email, clientLoginInfo.Password); ShippingAddressPage.Instance.FillShippingInfo(clientPurchaseInfo); ShippingAddressPage.Instance.ClickDifferentBillingCheckBox(clientPurchaseInfo); ShippingAddressPage.Instance.ClickContinueButton(); ShippingPaymentPage.Instance.ClickBottomContinueButton(); ShippingAddressPage.Instance.FillBillingInfo(clientPurchaseInfo); ShippingAddressPage.Instance.ClickContinueButton(); ShippingPaymentPage.Instance.ClickTopContinueButton(); decimal expectedTotalPrice = this.orderPurchaseStrategy.CalculateTotalPrice(); this.orderPurchaseStrategy.ValidateOrderSummary(expectedTotalPrice); }
public async Task <ClientReply> Auth([FromBody] ClientLoginInfo loginInfo) { try { Console.WriteLine($"{loginInfo.userName} has requested login.."); var op = await _dataAccess.GetUserByEmail(loginInfo.userName); if (_dataAccess.ComparePassword(loginInfo.password, op.password)) { string sessKey = _sessionKeyManager.GenerateNewSessionKey(op.userID); return(new ClientReply() { token = sessKey, Error = (int)ErrorMessage.NoError }); } else if (!op.activated) { return(new ClientReply() { token = null, Error = (int)ErrorMessage.UnActivated }); } else { return(new ClientReply() { token = null, Error = (int)ErrorMessage.InvalidCredentials }); } } catch (Exception e) { Console.WriteLine(e.ToString()); return(new ClientReply { token = null, Error = (int)ErrorMessage.Unknown }); } }
public void PurchaseItem( string itemUrl, string itemPrice, ClientLoginInfo clientLoginInfo, ClientPurchaseInfo clientPurchaseInfo) { _itemPage.Navigate(itemUrl); _itemPage.ClickBuyNowButton(); _previewShoppingCartPage.ClickProceedToCheckoutButton(); _signInPage.Login(clientLoginInfo.Email, clientLoginInfo.Password); _shippingAddressPage.FillShippingInfo(clientPurchaseInfo); _shippingAddressPage.ClickDifferentBillingCheckBox(clientPurchaseInfo); _shippingAddressPage.ClickContinueButton(); _shippingPaymentPage.ClickBottomContinueButton(); _shippingAddressPage.FillBillingInfo(clientPurchaseInfo); _shippingAddressPage.ClickContinueButton(); _shippingPaymentPage.ClickTopContinueButton(); var totalPrice = double.Parse(itemPrice); _placeOrderPage.AssertOrderTotalPrice(totalPrice); }
public void Purchase_SeleniumTestingToolsCookbook_DecoratedStrategies() { string itemUrl = "/Selenium-Testing-Cookbook-Gundecha-Unmesh/dp/1849515743"; decimal itemPrice = 40.49m; var shippingInfo = new ClientAddressInfo() { FullName = "John Smith", Country = "United States", Address1 = "950 Avenue of the Americas", State = "Texas", City = "Houston", Zip = "77001", Phone = "00164644885569" }; var billingInfo = new ClientAddressInfo() { FullName = "Anton Angelov", Country = "Bulgaria", Address1 = "950 Avenue of the Americas", City = "Sofia", Zip = "1672", Phone = "0894464647" }; ClientPurchaseInfo clientPurchaseInfo = new ClientPurchaseInfo(billingInfo, shippingInfo) { GiftWrapping = GiftWrappingStyles.Fancy }; ClientLoginInfo clientLoginInfo = new ClientLoginInfo() { Email = "*****@*****.**", Password = "******" }; OrderPurchaseStrategy orderPurchaseStrategy = new TotalPriceOrderPurchaseStrategy(itemPrice); orderPurchaseStrategy = new SalesTaxOrderPurchaseStrategy(orderPurchaseStrategy, itemPrice, clientPurchaseInfo); orderPurchaseStrategy = new VatTaxOrderPurchaseStrategy(orderPurchaseStrategy, itemPrice, clientPurchaseInfo); new PurchaseContext(orderPurchaseStrategy).PurchaseItem(itemUrl, itemPrice.ToString(), clientLoginInfo, clientPurchaseInfo); }
public void Purchase_Decorator() { var itemUrl = "/Selenium-Testing-Cookbook-Gundecha-Unmesh/dp/1849515743"; var itemPrice = 44.99m; var shippingInfo = new ClientAddressInfo() { FullName = "John Smith", Country = "United States", Address1 = "7518 CAROTHERS STREET", State = "Texas", City = "Houston", Zip = "77001", Phone = "00164644885569" }; var billingInfo = new ClientAddressInfo() { FullName = "Anton Angelov", Country = "Bulgaria", Address1 = "950 Avenue of the Americas", City = "Sofia", Zip = "1672", Phone = "0894464647" }; var clientPurchaseInfo = new ClientPurchaseInfo(billingInfo, shippingInfo) { GiftWrapping = GiftWrappingStyles.Fancy }; var clientLoginInfo = new ClientLoginInfo() { Email = "*****@*****.**", Password = "******" }; Advanced.Strategies.OrderPurchaseStrategy orderPurchaseStrategy = new Advanced.Strategies.TotalPriceOrderPurchaseStrategy(itemPrice); orderPurchaseStrategy = new Advanced.Strategies.SalesTaxOrderPurchaseStrategy(orderPurchaseStrategy, itemPrice, clientPurchaseInfo); orderPurchaseStrategy = new Advanced.Strategies.VatTaxOrderPurchaseStrategy(orderPurchaseStrategy, itemPrice, clientPurchaseInfo); new PurchaseContext(orderPurchaseStrategy).PurchaseItem(itemUrl, itemPrice.ToString(), clientLoginInfo, clientPurchaseInfo); }
public void Purchase_SeleniumTestingToolsCookbook() { string itemUrl = "/Selenium-Testing-Cookbook-Gundecha-Unmesh/dp/1849515743"; string itemPrice = "40.49"; var shippingInfo = new ClientAddressInfo() { FullName = "John Smith", Country = "United States", Address1 = "950 Avenue of the Americas", State = "New York", City = "New York City", Zip = "10001-2121", Phone = "00164644885569" }; var billingInfo = new ClientAddressInfo() { FullName = "Anton Angelov", Country = "Bulgaria", Address1 = "950 Avenue of the Americas", City = "Sofia", Zip = "1672", Phone = "0894464647" }; ClientPurchaseInfo clientPurchaseInfo = new ClientPurchaseInfo(billingInfo, shippingInfo) { GiftWrapping = GiftWrappingStyles.Fancy }; ClientLoginInfo clientLoginInfo = new ClientLoginInfo() { Email = "*****@*****.**", Password = "******" }; new PurchaseContext(new SalesTaxOrderPurchaseStrategy(), new VatTaxOrderPurchaseStrategy(), new GiftOrderPurchaseStrategy()) .PurchaseItem(itemUrl, itemPrice, clientLoginInfo, clientPurchaseInfo); }
public SignInPageLoginBehaviour(ClientLoginInfo clientLoginInfo) { this.signInPage = UnityContainerFactory.GetContainer().Resolve <SignInPage>(); this.shippingAddressPage = UnityContainerFactory.GetContainer().Resolve <ShippingAddressPage>(); this.clientLoginInfo = clientLoginInfo; }
public void PurchaseItemSalesTax(string itemUrl, string itemPrice, string taxAmount, ClientLoginInfo clientLoginInfo, ClientPurchaseInfo clientPurchaseInfo) { PurchaseItemInternal(itemUrl, clientLoginInfo, clientPurchaseInfo); PlaceOrderPage.Instance.Validate().EstimatedTaxPrice(taxAmount); }
public void PurchaseItemGiftWrapping(string itemUrl, string itemPrice, string giftWrapTax, ClientLoginInfo clientLoginInfo, ClientPurchaseInfo clientPurchaseInfo) { PurchaseItemInternal(itemUrl, clientLoginInfo, clientPurchaseInfo); PlaceOrderPage.Instance.Validate().GiftWrapPrice(giftWrapTax); }
//------------------------------------------------------------------------- // 暂时放这里,应该放入独立线程(防止阻塞用户登陆). public override void update(float elapsed_tm) { List <string> del = new List <string>(); foreach (var player in mLoginPlayerQueue) { ClientLoginInfo info = player.Value; if (null == info) { continue; } // 先做断线检测. if (info.state != eLogingState.loginError) { // todo,添加session是否处于连接状态的查询接口 if (info.session == null)// || !info.session. .Connected) { info.state = eLogingState.loginError; info.result = eLoginResult.disconnected; } } if (info.state == eLogingState.connect) { eLoginResult rtCode = eLoginResult.accountNotExists; string sql = string.Format("SELECT AccountName, Password , LoginStatus , AccountId FROM Account WHERE AccountName='{0}';", info.account); EbLog.Note("Login SQL STR :" + sql); MySqlCommand cmd = new MySqlCommand(sql, connection); MySqlDataReader rdr = null; try { rdr = cmd.ExecuteReader(); if (rdr.Read()) { if ((string)rdr["Password"] != info.password) { rtCode = eLoginResult.wrongPassword; } else if ((string)rdr["LoginStatus"] != eLoginStatus.offline.ToString()) { rtCode = eLoginResult.loginstatus; } else { // 登录成功. rtCode = eLoginResult.success; info.tokenId = generateId().ToString(); info.accountId = (long)rdr["AccountId"]; } info.result = rtCode; } if (rdr != null) { rdr.Close(); rdr.Dispose(); rdr = null; } if (rtCode == eLoginResult.success) { // update status sql = string.Format("UPDATE Account SET LoginStatus = '{0}' WHERE AccountName='{1}';", eLoginStatus.loging.ToString(), info.account); EbLog.Note("Login SQL STR :" + sql); MySqlCommand updateCmd = new MySqlCommand(sql, connection); cmd.ExecuteNonQuery(); } } catch (Exception ex) { EbLog.Error(ex.ToString()); } finally { cmd.Dispose(); cmd = null; if (rdr != null) { if (rdr.IsClosed == false) { rdr.Close(); } rdr.Dispose(); rdr = null; } } if (rtCode == ((byte)eLoginResult.success)) { info.state = eLogingState.updateLoging2Db; } } if (info.state == eLogingState.updateLoging2Db) { foreach (var gate in mGateInfo) { GateInfo ser = gate.Value; if (!ser.bloginLock) { // 目前只有账号信息和当前longin id放入ZooKeeper. string dt = info.account + "," + mCoApp.NodeIdStr + "," + info.tokenId.ToString() + "," + info.accountId.ToString(); info.gateId = ser.id; mCoApp.getZk().awriteData(ser.loginNode, dt, null); EbLog.Note("send to gate node :" + ser.loginNode + ",account:" + dt); mCoApp.getZk().acreate(ser.loginLockNode, "", ZK_CONST.ZOO_EPHEMERAL, null); EbLog.Note("set remote lock :" + ser.loginLockNode + ",account:" + dt); ser.bloginLock = true; info.state = eLogingState.updateZk2Gate; break; } } } if (info.state == eLogingState.gateBackSuccess || info.state == eLogingState.gateBackFailed || info.state == eLogingState.loginError) { eLoginStatus curState = (info.state == eLogingState.gateBackSuccess) ? eLoginStatus.online : eLoginStatus.offline; string sql = string.Format("UPDATE Account SET LoginStatus = '{0}' WHERE AccountName='{1}';", curState, info.account); EbLog.Note("Login SQL STR :" + sql); MySqlCommand cmd = new MySqlCommand(sql, connection); try { MySqlCommand updateCmd = new MySqlCommand(sql, connection); cmd.ExecuteNonQuery(); info.state = eLogingState.updateOnline2Db; } catch (Exception ex) { //mLog.ErrorFormat("accoundName:{0}, password:{1} ", info.account, info.password); EbLog.Error(ex.ToString()); } finally { cmd.Dispose(); cmd = null; } if (info.state == eLogingState.updateOnline2Db) { //反馈消息给client. //if (info.peer.Connected)// todo,判定session是否处于连接状态 { //Dictionary<byte, object> p = new Dictionary<byte, object>(); //p[0] = curState.ToString(); //if (curState == eLoginStatus.online) //{ // var list = mGateInfo.Where(gt => gt.Value.id.Equals(info.gateId)); // p[1] = list.First().Value.ipport; // p[2] = info.tokenId; //} //else //{ // p[1] = info.result.ToString(); //} // todo,添加session发送任意数据的方法 LoginUCenterSession <DefUCenterSession> se = info.session as LoginUCenterSession <DefUCenterSession>; se.login2ClientLogin(curState.ToString(), info.tokenId, info.param); //OperationResponse operation_response = new OperationResponse(1, p); //SendResult r = info.peer.SendOperationResponse(operation_response, new SendParameters { ChannelId = 0 }); ////info.session.getRpcPeer().sendEntityRpcData() //if (r != SendResult.Ok) //{ // // Error //} //if (info.peer.Connected) { // 应该断开与客户端的连接. //info.peer.Disconnect(); } } info.state = eLogingState.backToClient; } if (info.state == eLogingState.backToClient) { del.Add(info.account); } } } foreach (string account in del) { ClientLoginInfo delPlayer = null; mLoginPlayerQueue.TryRemove(account, out delPlayer); //delPlayer.peer.Dispose();// todo 连接断开管理 } string offlineaccount = null; if (mofflineQueue.TryDequeue(out offlineaccount)) { eLoginStatus curState = eLoginStatus.offline; string sql = string.Format("UPDATE Account SET LoginStatus = '{0}' WHERE AccountName='{1}';", curState, offlineaccount); EbLog.Error("player offline Login SQL STR :" + sql); MySqlCommand cmd = new MySqlCommand(sql, connection); try { MySqlCommand updateCmd = new MySqlCommand(sql, connection); cmd.ExecuteNonQuery(); } catch (Exception ex) { //mLog.ErrorFormat("accoundName:{0} offline failed ", offlineaccount); EbLog.Error(ex.ToString()); } finally { cmd.Dispose(); cmd = null; } } }
public void PurchaseItemShippingTax(string itemUrl, string itemPrice, string shippingTax, ClientLoginInfo clientLoginInfo, ClientPurchaseInfo clientPurchaseInfo) { PurchaseItemInternal(itemUrl, clientLoginInfo, clientPurchaseInfo); PlaceOrderPage.Instance.Validate().ShippingTaxPrice(shippingTax); }