class CheckoutTest(BaseTest):
    def test_checkout_by_bankwire(self):
        # Load Homepage
        self.homepage = HomePage(self.driver)

        # Click Sign In Button
        self.homepage.signin()

        # Load Auth Page
        self.authpage = AuthPage(self.homepage.driver)

        # Sign in with Account
        self.authpage.sign_in_success()

        # Click Website Logo
        self.homepage.logo()

        # Checkout Success
        self.homepage.checkout_success_bankwire()

        # Assertion
        status = self.homepage.get_text(Locators.CHECKOUT_STATUS_BANKWIRE)
        self.assertEqual(TestData.ALERT_CHECKOUT_SUCCESS, status)

    def test_checkout_by_check(self):
        # Load Homepage
        self.homepage = HomePage(self.driver)

        # Click Sign In Button
        self.homepage.signin()

        # Load Auth Page
        self.authpage = AuthPage(self.homepage.driver)

        # Sign in with Account
        self.authpage.sign_in_success()

        # Click Website Logo
        self.homepage.logo()

        # Checkout Success
        self.homepage.checkout_success_check()

        # Assertion
        status = self.homepage.get_text(Locators.CHECKOUT_STATUS_BY_CHECK)
        self.assertEqual(TestData.ALERT_CHECKOUT_SUCCESS, status)
    def test_remove_address(self):
        # Load Homepage
        self.homepage = HomePage(self.driver)

        # Click Sign In Button
        self.homepage.signin()

        # Load Auth Page
        self.authpage = AuthPage(self.homepage.driver)

        # Sign in with Account
        self.authpage.sign_in_success()

        # Load My Account Page
        self.myaccount = MyAccountPage(self.homepage.driver)

        # Execute Remove Address
        self.myaccount.remove_address()
    def test_register_failed(self):

        # Load Homeage
        self.homepage = HomePage(self.driver)

        # Click Sign In Button
        self.homepage.signin()

        # Load Auth Page
        self.authpage = AuthPage(self.homepage.driver)

        # Register Failed
        self.authpage.register_failed()

        time.sleep(3)

        # Assertion
        register_info = self.authpage.get_text(Locators.REG_ALERT_FAILED)
        self.assertEqual(TestData.ALERT_REGISTER_FAILED, register_info)
    def test_register_success(self):

        # Load Homeage
        self.homepage = HomePage(self.driver)

        # Click Sign In Button
        self.homepage.signin()

        # Load Auth Page
        self.authpage = AuthPage(self.homepage.driver)

        # Register Success
        self.authpage.register_success()

        time.sleep(3)

        # Assertion
        register_info = self.authpage.get_text(Locators.REG_ALERT_SUCCESS)
        self.assertEqual(TestData.ALERT_REGISTER_SUCCESS, register_info)
    def test_reorder(self):
        # Load Homepage
        self.homepage = HomePage(self.driver)

        # Click Sign In Button
        self.homepage.signin()

        # Load Auth Page
        self.authpage = AuthPage(self.homepage.driver)

        # Sign in with Account
        self.authpage.sign_in_success()

        # Load MyAccount Page
        self.myaccount = MyAccountPage(self.homepage.driver)

        # Execute Reorder
        self.myaccount.reorder()

        # Assertion
        status = self.homepage.get_text(Locators.CHECKOUT_STATUS_BY_CHECK)
        self.assertEqual(TestData.ALERT_CHECKOUT_SUCCESS, status)
    def test_remove_wishlist(self):
        # Load Homepage
        self.homepage = HomePage(self.driver)

        # Click Sign In Button
        self.homepage.signin()

        # Load Auth Page
        self.authpage = AuthPage(self.homepage.driver)

        # Sign in with Account
        self.authpage.sign_in_success()

        # Click Website Logo
        self.homepage.logo()

        # Load My Account Page
        self.myaccount = MyAccountPage(self.homepage.driver)

        # Execute Remove Wishlist
        self.myaccount.remove_wishlist()

        time.sleep(5)
class RegisterTest(BaseTest):
    def test_register_success(self):

        # Load Homeage
        self.homepage = HomePage(self.driver)

        # Click Sign In Button
        self.homepage.signin()

        # Load Auth Page
        self.authpage = AuthPage(self.homepage.driver)

        # Register Success
        self.authpage.register_success()

        time.sleep(3)

        # Assertion
        register_info = self.authpage.get_text(Locators.REG_ALERT_SUCCESS)
        self.assertEqual(TestData.ALERT_REGISTER_SUCCESS, register_info)

    def test_register_failed(self):

        # Load Homeage
        self.homepage = HomePage(self.driver)

        # Click Sign In Button
        self.homepage.signin()

        # Load Auth Page
        self.authpage = AuthPage(self.homepage.driver)

        # Register Failed
        self.authpage.register_failed()

        time.sleep(3)

        # Assertion
        register_info = self.authpage.get_text(Locators.REG_ALERT_FAILED)
        self.assertEqual(TestData.ALERT_REGISTER_FAILED, register_info)

    def test_already_registered(self):

        # Load Homepage
        self.homepage = HomePage(self.driver)

        # Click Sign In Button
        self.homepage.signin()

        # Load Auth Page
        self.authpage = AuthPage(self.homepage.driver)

        # Already Register
        self.authpage.register_failed_already_registered()

        time.sleep(3)

        # Assertion
        register_info = self.authpage.get_text(
            Locators.REG_ALERT_ALREADY_REGISTERED)
        self.assertEqual(TestData.ALERT_ALREADY_REGISTERED, register_info)
class MyAccountTest(BaseTest):
    def test_reorder(self):
        # Load Homepage
        self.homepage = HomePage(self.driver)

        # Click Sign In Button
        self.homepage.signin()

        # Load Auth Page
        self.authpage = AuthPage(self.homepage.driver)

        # Sign in with Account
        self.authpage.sign_in_success()

        # Load MyAccount Page
        self.myaccount = MyAccountPage(self.homepage.driver)

        # Execute Reorder
        self.myaccount.reorder()

        # Assertion
        status = self.homepage.get_text(Locators.CHECKOUT_STATUS_BY_CHECK)
        self.assertEqual(TestData.ALERT_CHECKOUT_SUCCESS, status)

    def test_add_new_address(self):
        # Load Homepage
        self.homepage = HomePage(self.driver)

        # Click Sign In Button
        self.homepage.signin()

        # Load Auth Page
        self.authpage = AuthPage(self.homepage.driver)

        # Sign in with Account
        self.authpage.sign_in_success()

        # Load My Account Page
        self.myaccount = MyAccountPage(self.homepage.driver)

        # Execute Add New Address
        self.myaccount.add_new_address()

    def test_remove_address(self):
        # Load Homepage
        self.homepage = HomePage(self.driver)

        # Click Sign In Button
        self.homepage.signin()

        # Load Auth Page
        self.authpage = AuthPage(self.homepage.driver)

        # Sign in with Account
        self.authpage.sign_in_success()

        # Load My Account Page
        self.myaccount = MyAccountPage(self.homepage.driver)

        # Execute Remove Address
        self.myaccount.remove_address()

    def test_remove_wishlist(self):
        # Load Homepage
        self.homepage = HomePage(self.driver)

        # Click Sign In Button
        self.homepage.signin()

        # Load Auth Page
        self.authpage = AuthPage(self.homepage.driver)

        # Sign in with Account
        self.authpage.sign_in_success()

        # Click Website Logo
        self.homepage.logo()

        # Load My Account Page
        self.myaccount = MyAccountPage(self.homepage.driver)

        # Execute Remove Wishlist
        self.myaccount.remove_wishlist()

        time.sleep(5)