org.apache.hc.core5.testing.framework

## Class TestingFramework

- java.lang.Object
- - org.apache.hc.core5.testing.framework.TestingFramework

-     public class TestingFramework
      extends Object

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static List<String>` | `ALL_METHODS` Use the ALL_METHODS list to conveniently cycle through all HTTP methods.
    `static Object` | `ALREADY_CHECKED` If an `ClassicTestClientTestingAdapter` is unable to return a response in the format this testing framework is needing, then it will need to check the item in the response (such as body, status, headers, or contentType) itself and set the returned value of the item as ALREADY_CHECKED.
    `static String` | `DEFAULT_REQUEST_BODY` If a test does not specify a body, this one is used.
    `static String` | `DEFAULT_REQUEST_CONTENT_TYPE` If a test does not specify a request contentType, this one is used.
    `static Map<String,String>` | `DEFAULT_REQUEST_HEADERS` If a test does not specify a request headers, these are used.
    `static String` | `DEFAULT_REQUEST_PATH` If a test does not specify a path, this one is used.
    `static ProtocolVersion` | `DEFAULT_REQUEST_PROTOCOL_VERSION` If a test does not specify a protocol version, this one is used.
    `static Map<String,String>` | `DEFAULT_REQUEST_QUERY` If a test does not specify query parameters, these are used.
    `static String` | `DEFAULT_RESPONSE_BODY` If a test does not specify an expected response body, this one is used.
    `static String` | `DEFAULT_RESPONSE_CONTENT_TYPE` If a test does not specify an expected response contentType, this one is used.
    `static Map<String,String>` | `DEFAULT_RESPONSE_HEADERS` If a test does not specify expected response headers, these are used.
    `static int` | `DEFAULT_RESPONSE_STATUS` If a test does not specify an expected response status, this one is used.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TestingFramework()`
    `TestingFramework(ClientTestingAdapter adapter)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addTest()` Call to add a test with defaults.
    `void` | `addTest(Map<String,Object> test)` Call to add a test.
    `static Object` | `deepcopy(Object orig)` Used to make a "deep" copy of an object.
    `void` | `deleteTests()` Deletes all tests.
    `void` | `runTests()` Run the tests that have been previously added.
    `void` | `setAdapter(ClientTestingAdapter adapter)` Sets the `ClientTestingAdapter`.
    `void` | `setRequestHandler(TestingFrameworkRequestHandler requestHandler)` This is not likely to be used except during the testing of this class.

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

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

- - ### Field Detail

    - #### ALL_METHODS

          public static final List<String> ALL_METHODS

      Use the ALL_METHODS list to conveniently cycle through all HTTP methods.

    - #### ALREADY_CHECKED

          public static final Object ALREADY_CHECKED

      If an `ClassicTestClientTestingAdapter` is unable to return a response in the format this testing framework is needing, then it will need to check the item in the response (such as body, status, headers, or contentType) itself and set the returned value of the item as ALREADY_CHECKED.

    - #### DEFAULT_REQUEST_PATH

          public static final String DEFAULT_REQUEST_PATH

      If a test does not specify a path, this one is used.
      See Also:
        Constant Field Values

    - #### DEFAULT_REQUEST_BODY

          public static final String DEFAULT_REQUEST_BODY

      If a test does not specify a body, this one is used.
      See Also:
        Constant Field Values

    - #### DEFAULT_REQUEST_CONTENT_TYPE

          public static final String DEFAULT_REQUEST_CONTENT_TYPE

      If a test does not specify a request contentType, this one is used.
      See Also:
        Constant Field Values

    - #### DEFAULT_REQUEST_QUERY

          public static final Map<String,String> DEFAULT_REQUEST_QUERY

      If a test does not specify query parameters, these are used.

    - #### DEFAULT_REQUEST_HEADERS

          public static final Map<String,String> DEFAULT_REQUEST_HEADERS

      If a test does not specify a request headers, these are used.

    - #### DEFAULT_REQUEST_PROTOCOL_VERSION

          public static final ProtocolVersion DEFAULT_REQUEST_PROTOCOL_VERSION

      If a test does not specify a protocol version, this one is used.

    - #### DEFAULT_RESPONSE_STATUS

          public static final int DEFAULT_RESPONSE_STATUS

      If a test does not specify an expected response status, this one is used.
      See Also:
        Constant Field Values

    - #### DEFAULT_RESPONSE_BODY

          public static final String DEFAULT_RESPONSE_BODY

      If a test does not specify an expected response body, this one is used.
      See Also:
        Constant Field Values

    - #### DEFAULT_RESPONSE_CONTENT_TYPE

          public static final String DEFAULT_RESPONSE_CONTENT_TYPE

      If a test does not specify an expected response contentType, this one is used.
      See Also:
        Constant Field Values

    - #### DEFAULT_RESPONSE_HEADERS

          public static final Map<String,String> DEFAULT_RESPONSE_HEADERS

      If a test does not specify expected response headers, these are used.

  - ### Constructor Detail

    - #### TestingFramework

          public TestingFramework()
                           throws TestingFrameworkException

      Throws:
        `TestingFrameworkException`

    - #### TestingFramework

          public TestingFramework(ClientTestingAdapter adapter)
                           throws TestingFrameworkException

      Throws:
        `TestingFrameworkException`

  - ### Method Detail

    - #### setRequestHandler

          public void setRequestHandler(TestingFrameworkRequestHandler requestHandler)

      This is not likely to be used except during the testing of this class. It is used to inject a mocked request handler.
      Parameters:
        `requestHandler` -

    - #### runTests

          public void runTests()
                        throws TestingFrameworkException

      Run the tests that have been previously added. First, an in-process `HttpServer` is started. Then, all the tests are completed by passing each test to the adapter which will make the HTTP request.
      Throws:
        `TestingFrameworkException` - if there is a test failure or unexpected problem.

    - #### setAdapter

          public void setAdapter(ClientTestingAdapter adapter)

      Sets the `ClientTestingAdapter`.
      Parameters:
        `adapter` -

    - #### deleteTests

          public void deleteTests()

      Deletes all tests.

    - #### addTest

          public void addTest()
                       throws TestingFrameworkException

      Call to add a test with defaults.
      Throws:
        `TestingFrameworkException`

    - #### addTest

          public void addTest(Map<String,Object> test)
                       throws TestingFrameworkException

      Call to add a test. The test is a map with a REQUEST and a RESPONSE key. See `ClientPOJOAdapter` for details on the format of the request and response.
      Parameters:
        `test` - Map with a REQUEST and a RESPONSE key.
      Throws:
        `TestingFrameworkException`

    - #### deepcopy

          public static Object deepcopy(Object orig)
                                 throws TestingFrameworkException

      Used to make a "deep" copy of an object. This testing framework makes deep copies of tests that are added as well as requestExpectations Maps and response Maps.
      Parameters:
        `orig` - a serializable object.
      Returns:
        a deep copy of the orig object.
      Throws:
        `TestingFrameworkException`

Copyright © 2005–2022 The Apache Software Foundation. All rights reserved.