# HTTP MOCK SERVER ## Create server jar (in mockserver directory) ``` mvn clean package assembly:single ``` ## Start server on port (default 9999) ``` java -jar mockserver--jar-with-dependencies.jar [PORT] ``` ## Create mock on server via client ``` ControlServerClient controlServerClient = new ControlServerClient('localhost', ) controlServerClient.addMock(new AddMockRequestData( name: '...', path: '...', port: ..., predicate: '''...''', response: '''...''', soap: ..., statusCode: ..., method: ..., responseHeaders: ... )) ``` or via sending POST request to localhost:/serverControl ``` ... ... ... ... ... ... ... ... ,,, ``` * name - name of mock, must be unique * path - path on which mock should be created * port - inteer, port on which mock should be created, cannot be the same as mock server port * predicate - groovy closure as string which must evaluate to true, when request object will be given to satisfy mock, optional, default {_ -> true} * response - groovy closure as string which must evaluate to string which will be response of mock when predicate is satisfied, optional, default { _ -> '' } * soap - true or false, is request and response should be wrapped in soap Envelope and Body elements, default false * statusCode - integer, status code of response when predicate is satisfied, default 200 * method - POST|PUT|DELETE|GET|TRACE|OPTION|HEAD, expected http method of request, default POST * responseHeaders - groovyClosure as string which must evaluate to Map which will be added to response headers, default { _ -> [:] } Response if success: ``` ``` Response with error message if failure: ``` ... ``` ## When mock was used it could be unregistered by name. It returns report of mock invocations. Via client: ``` List mockEvents = controlServerClient.removeMock('...') ``` Via sending POST request to localhost:/serverControl ``` ... ``` Response if success: ``` ... ... ... ... ... ... ... ... ... ... ... ... ``` Responsewith error message if failure: ``` ... ``` ## List of current registered mocks could be retrieved: Via client: ``` List mocks = controlServerClient.listMocks() ``` or via sending GET request to localhost:/serverControl Response: ``` ... ... ... ... ```