com.verisign.epp.verificationcode.china

## Class ChinaVerificationCodeTst

- java.lang.Object
- - junit.framework.Assert
  - - junit.framework.TestCase
    - - com.verisign.epp.verificationcode.china.ChinaVerificationCodeTst

- All Implemented Interfaces:
    junit.framework.Test

      public class ChinaVerificationCodeTst
      extends junit.framework.TestCase

  Execute and test different china verification end-to-end flows.
  See Also:
    `NSDomain`, `EPPNameVerification`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ChinaVerificationCodeTst(java.lang.String name)` Allocates an `ChinaVerificationCodeTst` with a logical name.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `main(java.lang.String[] args)` Unit test main, which accepts the following system property options: iterations Number of unit test iterations to run validate Turn XML validation on (`true`) or off ( `false`).
    `java.lang.String` | `makeClientTransId()` Make unique client transaction identifier.
    `java.lang.String` | `makeDomainName(java.lang.String aPrefix, java.lang.String aTld)` This method tries to generate a unique String as Domain Name and Name Server
    `static void` | `printEnd(java.lang.String aTest)` Print the end of a test with the `Thread` name if the current thread is a `TestThread`.
    `static void` | `printStart(java.lang.String aTest)` Print the start of a test with the `Thread` name if the current thread is a `TestThread`.
    `protected void` | `setUp()` JUNIT `setUp` method
    `static junit.framework.Test` | `suite()` JUNIT `suite` static method, which returns the tests associated with `ChinaVerificationCodeTst`.
    `protected void` | `tearDown()` JUNIT `tearDown`, which currently does nothing.
    `void` | `testDelayedDomainVerification()` Execute the China Delayed Domain Verification Flow that includes the following steps: Check availability of domain name in Registry, where the domain must be available Create Real Name Verification Code (RNVC) with VSP using test registrant data.
    `void` | `testDelayedRealNameVerification()` Execute the China Delayed Real-Name Verification Flow that includes the following steps: Check availability of domain name in Registry, where the domain must be available Check availability (not restricted or prohibited) of domain label in VSP, where the domain label must be available Create Domain Name Verification Code (DNVC) with VSP using the domain label Create Domain Name in Registry with DNVC After Real-Name Compliance Grace Period, Poll Request to get the Change Poll Message.
    `void` | `testExpedientRegistration()` Execute the China Expedient Registration Flow that includes the following steps: Check availability of domain name in Registry, where the domain must be available Create Domain Name in Registry with no codes Check availability (not restricted or prohibited) of domain label in VSP, where the domain label must be available Create Domain Name Verification Code (DNVC) with VSP using the domain label Create Real Name Verification Code (RNVC) with VSP using test registrant data.
    `void` | `testNormalRegistrationOperations()` Execute the China Normal Registration Operations Flow that includes the following steps: Check availability of domain name in Registry, where the domain must be available Check availability (not restricted or prohibited) of domain label in VSP, where the domain label must be available Create Domain Name Verification Code (DNVC) with VSP using the domain label Create Domain Name in Registry with DNVC Create Real Name Verification Code (RNVC) with VSP using test registrant data.
    `void` | `testTransferOfCompliantDomain()` Execute the China Transfer of Compliant Domain Flow that includes the following steps: Gaining Registrar Info Domain for Verification Compliance Information, which is compliant.
    `void` | `testTransferOfNonCompliantDomain()` Execute the China Transfer of Non-Compliant Domain Flow that includes the following steps: Gaining Registrar Info Domain for Verification Compliance Information, which is not compliant (pending compliance in test).
    `void` | `testUpfrontVerification()` Execute the China Upfront Verification Flow that includes the following steps: Check availability of domain name in Registry, where the domain must be available Check availability (not restricted or prohibited) of domain label in VSP, where the domain label must be available Create Domain Name Verification Code (DNVC) with VSP using the domain label Create Real Name Verification Code (RNVC) with VSP using test registrant data.

    - ### Methods inherited from class junit.framework.TestCase

      `countTestCases, createResult, getName, run, run, runBare, runTest, setName, toString`

    - ### Methods inherited from class junit.framework.Assert

      `assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### ChinaVerificationCodeTst

          public ChinaVerificationCodeTst(java.lang.String name)

      Allocates an `ChinaVerificationCodeTst` with a logical name. The constructor will initialize the base class `TestCase` with the logical name.
      Parameters:
        `name` - Logical name of the test

  - ### Method Detail

    - #### testNormalRegistrationOperations

          public void testNormalRegistrationOperations()

      Execute the China Normal Registration Operations Flow that includes the following steps:
      1. Check availability of domain name in Registry, where the domain must be available
      2. Check availability (not restricted or prohibited) of domain label in VSP, where the domain label must be available
      3. Create Domain Name Verification Code (DNVC) with VSP using the domain label
      4. Create Domain Name in Registry with DNVC
      5. Create Real Name Verification Code (RNVC) with VSP using test registrant data.
      6. Update Domain Name in Registry with RNVC

    - #### testUpfrontVerification

          public void testUpfrontVerification()

      Execute the China Upfront Verification Flow that includes the following steps:
      1. Check availability of domain name in Registry, where the domain must be available
      2. Check availability (not restricted or prohibited) of domain label in VSP, where the domain label must be available
      3. Create Domain Name Verification Code (DNVC) with VSP using the domain label
      4. Create Real Name Verification Code (RNVC) with VSP using test registrant data.
      5. Create Domain Name in Registry with DNVC and RNVC

    - #### testExpedientRegistration

          public void testExpedientRegistration()

      Execute the China Expedient Registration Flow that includes the following steps:
      1. Check availability of domain name in Registry, where the domain must be available
      2. Create Domain Name in Registry with no codes
      3. Check availability (not restricted or prohibited) of domain label in VSP, where the domain label must be available
      4. Create Domain Name Verification Code (DNVC) with VSP using the domain label
      5. Create Real Name Verification Code (RNVC) with VSP using test registrant data.
      6. Update Domain Name in Registry with DNVC and RNVC

    - #### testDelayedRealNameVerification

          public void testDelayedRealNameVerification()

      Execute the China Delayed Real-Name Verification Flow that includes the following steps:
      1. Check availability of domain name in Registry, where the domain must be available
      2. Check availability (not restricted or prohibited) of domain label in VSP, where the domain label must be available
      3. Create Domain Name Verification Code (DNVC) with VSP using the domain label
      4. Create Domain Name in Registry with DNVC
      5. After Real-Name Compliance Grace Period, Poll Request to get the Change Poll Message.
      6. Create Real Name Verification Code (RNVC) with VSP using test registrant data.
      7. Update Domain Name in Registry with RNVC
      Steps 1-4 are handled in a separate execution of testNormalRegistrationOperations, that will register the domain name with the DNVC. Steps 5 - 7 are executed after the Real-Name Compliance Grace Period (e.g. 5 days) that will process the Change Poll Message, do the Real Name Verification, and pass the Real Name Verification Code (RNVC) in a domain update.

    - #### testDelayedDomainVerification

          public void testDelayedDomainVerification()

      Execute the China Delayed Domain Verification Flow that includes the following steps:
      1. Check availability of domain name in Registry, where the domain must be available
      2. Create Real Name Verification Code (RNVC) with VSP using test registrant data.
      3. Create Domain Name in Registry with RNVC
      4. Check availability (not restricted or prohibited) of domain label in VSP, where the domain label must be available
      5. Create Domain Name Verification Code (DNVC) with VSP using the domain label
      6. Update Domain Name in Registry with DNVC

    - #### testTransferOfCompliantDomain

          public void testTransferOfCompliantDomain()

      Execute the China Transfer of Compliant Domain Flow that includes the following steps:
      1. Gaining Registrar Info Domain for Verification Compliance Information, which is compliant.
      2. Gaining Registrar Transfer Request with no codes.
      3. Losing Registrar Approves Transfer

    - #### testTransferOfNonCompliantDomain

          public void testTransferOfNonCompliantDomain()

      Execute the China Transfer of Non-Compliant Domain Flow that includes the following steps:
      1. Gaining Registrar Info Domain for Verification Compliance Information, which is not compliant (pending compliance in test).
      2. Gaining Registrar Create Real Name Verification Code (RNVC) with VSP using test registrant data.
      3. Gaining Registrar Transfer Request with RNVC.
      4. Losing Registrar Approves Transfer

    - #### setUp

          protected void setUp()

      JUNIT `setUp` method
      Overrides:
        `setUp` in class `junit.framework.TestCase`

    - #### tearDown

          protected void tearDown()

      JUNIT `tearDown`, which currently does nothing.
      Overrides:
        `tearDown` in class `junit.framework.TestCase`

    - #### suite

          public static junit.framework.Test suite()

      JUNIT `suite` static method, which returns the tests associated with `ChinaVerificationCodeTst`.
      Returns:
        Test Suite

    - #### main

          public static void main(java.lang.String[] args)

      Unit test main, which accepts the following system property options:
      - iterations Number of unit test iterations to run
      - validate Turn XML validation on (`true`) or off ( `false`). If validate is not specified, validation will be off.
      Parameters:
        `args` - Program arguments

    - #### printStart

          public static void printStart(java.lang.String aTest)

      Print the start of a test with the `Thread` name if the current thread is a `TestThread`.
      Parameters:
        `aTest` - name for the test

    - #### printEnd

          public static void printEnd(java.lang.String aTest)

      Print the end of a test with the `Thread` name if the current thread is a `TestThread`.
      Parameters:
        `aTest` - name for the test

    - #### makeDomainName

          public java.lang.String makeDomainName(java.lang.String aPrefix,
                                                 java.lang.String aTld)

      This method tries to generate a unique String as Domain Name and Name Server
      Parameters:
        `aPrefix` - Domain name prefix to use
        `aTld` - TLD to use in the domain name
      Returns:
        Unique domain name using `aPrefix` and `aTld`.

    - #### makeClientTransId

          public java.lang.String makeClientTransId()

      Make unique client transaction identifier.
      Returns:
        Unique client transaction identifer