@Test
  public void testAppPromotion() {

    APIMLoginPage apimLoginPage = new APIMLoginPage(getNewDriver(Constants.BROWSER));
    apimLoginPage.openURL();
    apimLoginPage.developerLogin();
    MyAppsPage myAppsPage = apimLoginPage.clickMyApps();
    apimLoginPage.validateMyAppsPage();

    // Create a new app
    NewAppPage newApp = myAppsPage.setUpNewApp();
    String appname = newApp.getNewAppName();
    newApp.enterAppName(appname);
    newApp.enterDescription(Constants.APP_DESCRIPTION);
    newApp.selectAPI(Constants.IN_APP_MESSAGING_IMMN);
    newApp.setOAuthUrl(Constants.OAUTH_URL);
    AppPage appPage = newApp.submitAppDetails();
    appPage.validateAppCreation(appname);

    // Promote the created App
    RequestProductionAccessPage requestProductionAccessPage =
        appPage.clickRequestProductionAccess();
    requestProductionAccessPage.clickProductionAccess();

    // Validate app is promoted
    appPage.validateProdAccess();

    // Display Test Result
    apimLoginPage.publishTestResult();
    newApp.publishTestResult();
    appPage.publishTestResult();
  }
  @Test
  public void testAppCreation() {

    APIMLoginPage apimLoginPage = new APIMLoginPage(getNewDriver(Constants.BROWSER));
    apimLoginPage.openURL();
    apimLoginPage.developerLogin();
    MyAppsPage myAppsPage = apimLoginPage.clickMyApps();
    apimLoginPage.validateMyAppsPage();

    // Creating a new app
    NewAppPage newAppPage = myAppsPage.setUpNewApp();
    String appname = newAppPage.getNewAppName();
    newAppPage.enterAppName(appname);
    newAppPage.enterAppName(appname);
    newAppPage.enterDescription(Constants.APP_DESCRIPTION);
    newAppPage.selectAPI(Constants.SPEECH_TO_TEXT);
    AppPage appPage = newAppPage.submitAppDetails();

    // Navigate to edit app page and add DC API
    EditAppPage editAppPage = appPage.clickEditApp();
    editAppPage.selectAPI(Constants.DEVICE_CAPABILITIES);

    // Validate if Developer is able to view OAuth Redirect URL when DC is
    // selected on the Edit App Page
    editAppPage.validateIsOauthDisplayed();
    flag = true;

    // publish result
    apimLoginPage.publishTestResult();
    newAppPage.publishTestResult();
    editAppPage.publishTestResult();
    appPage.publishTestResult();
  }
  @Test
  public void testCancelDeletion() {

    APIMLoginPage apimLoginPage = new APIMLoginPage(getNewDriver(Constants.BROWSER));
    apimLoginPage.openURL();
    apimLoginPage.testLogIn(
        Constants.OPA_USERNAME_CANCELDELELTE, Constants.OPA_PASSWORD__CANCELDELELTE);
    MyAppsPage myAppsPage = apimLoginPage.clickMyApps();
    apimLoginPage.validateMyAppsPage();
    // Method to Click on delete Production button
    myAppsPage.clickDeleteProduction();
    // Method to click OrCancel button
    myAppsPage.clickOrCancelButton();
    // Method to validate OrCancel button
    myAppsPage.validateCancelDeleteApp(Constants.CANCELDELETEAPP);
    // Method to publish test result
    apimLoginPage.publishTestResult();
    myAppsPage.publishTestResult();
  }