You can use the client to run a test harness
C:\temp\asac>java -jar authzStandardApiClient.jar --operation=testSuite --verbose=higher Success: suite: defaultResource - tests: 2, successes: 2, failures: 0, warnings: 0 - Success: test: defaultResource.testDefaultResource - json: httpStatusCode equals: 200 - json: Content type header should contain 'json': text/x-json;charset=UTF-8... success - json: httpMethod equals: GET - json: serviceMeta is not null - json: serviceMeta.serverVersion is not null - json: serviceMeta.serverVersion should be 1.x: 1.0... success - json: serviceMeta.serviceRootUri is not blank - json: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - json: responseMeta is not null - json: responseMeta.httpStatusCode equals: 200 - json: responseMeta.mills is not null - json: meta is not null - json: meta.lastModified is a valid date: 2013-01-16T18:41:25.137Z - json: meta.selfUri equals: http://localhost:8090/grouperWs/authzStandardApi - json: meta.statusCode equals: SUCCESS - json: meta.structureName equals: defaultResourceContainer - json: meta.success... success - asasDefaultResource is not null - asasDefaultResource.jsonDefaultUri equals: http://localhost:8090/grouperWs/authzStandardApi.json - asasDefaultResource.xmlDefaultUri equals: http://localhost:8090/grouperWs/authzStandardApi.xml - Success: test: defaultResource.testDefaultContentTypedResource - json: httpStatusCode equals: 200 - json: Content type header should contain 'json': text/x-json;charset=UTF-8... success - json: httpMethod equals: GET - json: serviceMeta is not null - json: serviceMeta.serverVersion is not null - json: serviceMeta.serverVersion should be 1.x: 1.0... success - json: serviceMeta.serviceRootUri is not blank - json: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - json: responseMeta is not null - json: responseMeta.httpStatusCode equals: 200 - json: responseMeta.mills is not null - json: meta is not null - json: meta.lastModified is a valid date: 2013-01-16T18:41:25.137Z - json: meta.selfUri equals: http://localhost:8090/grouperWs/authzStandardApi - json: meta.statusCode equals: SUCCESS - json: meta.structureName equals: defaultResourceContainer - json: meta.success... success - asasDefaultResource is not null - asasDefaultResource.jsonDefaultUri equals: http://localhost:8090/grouperWs/authzStandardApi.json - asasDefaultResource.xmlDefaultUri equals: http://localhost:8090/grouperWs/authzStandardApi.xml Success: suite: defaultVersionResource - tests: 1, successes: 1, failures: 0, warnings: 0 - Success: test: defaultVersionResource.testDefaultVersionResource - xml: httpStatusCode equals: 200 - xml: Content type header should contain 'xml': text/xml;charset=UTF-8... success - xml: httpMethod equals: GET - xml: serviceMeta is not null - xml: serviceMeta.serverVersion is not null - xml: serviceMeta.serverVersion should be 1.x: 1.0... success - xml: serviceMeta.serviceRootUri is not blank - xml: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - xml: responseMeta is not null - xml: responseMeta.httpStatusCode equals: 200 - xml: responseMeta.mills is not null - xml: meta is not null - xml: meta.lastModified is a valid date: 2013-01-16T18:41:25.137Z - xml: meta.selfUri equals: http://localhost:8090/grouperWs/authzStandardApi.xml - xml: meta.statusCode equals: SUCCESS - xml: meta.structureName equals: defaultVersionResourceContainer - xml: meta.success... success - asasDefaultVersionResource is not null - asasDefaultVersionResource.v1Uri equals: /v1.xml - asasDefaultVersionResource.serverType is not blank - json: httpStatusCode equals: 200 - json: Content type header should contain 'json': text/x-json;charset=UTF-8... success - json: httpMethod equals: GET - json: serviceMeta is not null - json: serviceMeta.serverVersion is not null - json: serviceMeta.serverVersion should be 1.x: 1.0... success - json: serviceMeta.serviceRootUri is not blank - json: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - json: responseMeta is not null - json: responseMeta.httpStatusCode equals: 200 - json: responseMeta.mills is not null - json: meta is not null - json: meta.lastModified is a valid date: 2013-01-16T18:41:25.137Z - json: meta.selfUri equals: http://localhost:8090/grouperWs/authzStandardApi.json - json: meta.statusCode equals: SUCCESS - json: meta.structureName equals: defaultVersionResourceContainer - json: meta.success... success - asasDefaultVersionResource is not null - asasDefaultVersionResource.v1Uri equals: /v1.json - asasDefaultVersionResource.serverType is not blank Success: suite: versionResource - tests: 1, successes: 1, failures: 0, warnings: 0 - Success: test: versionResource.testVersionResource - xml: httpStatusCode equals: 200 - xml: Content type header should contain 'xml': text/xml;charset=UTF-8... success - xml: httpMethod equals: GET - xml: serviceMeta is not null - xml: serviceMeta.serverVersion is not null - xml: serviceMeta.serverVersion should be 1.x: 1.0... success - xml: serviceMeta.serviceRootUri is not blank - xml: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - xml: responseMeta is not null - xml: responseMeta.httpStatusCode equals: 200 - xml: responseMeta.mills is not null - xml: meta is not null - xml: meta.lastModified is a valid date: 2013-01-16T18:41:25.137Z - xml: meta.selfUri equals: /v1.xml - xml: meta.statusCode equals: SUCCESS - xml: meta.structureName equals: versionResourceContainer - xml: meta.success... success - xml: asasVersionResource is not null - xml: asasVersionResource.entitiesUri equals: /v1/entities.xml - xml: asasVersionResource.foldersUri equals: /v1/folders.xml - xml: asasVersionResource.groupsUri equals: /v1/groups.xml - xml: asasVersionResource.permissionsUri equals: /v1/permissions.xml - json: httpStatusCode equals: 200 - json: Content type header should contain 'json': text/x-json;charset=UTF-8... success - json: httpMethod equals: GET - json: serviceMeta is not null - json: serviceMeta.serverVersion is not null - json: serviceMeta.serverVersion should be 1.x: 1.0... success - json: serviceMeta.serviceRootUri is not blank - json: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - json: responseMeta is not null - json: responseMeta.httpStatusCode equals: 200 - json: responseMeta.mills is not null - json: meta is not null - json: meta.lastModified is a valid date: 2013-01-16T18:41:25.137Z - json: meta.selfUri equals: /v1.json - json: meta.statusCode equals: SUCCESS - json: meta.structureName equals: versionResourceContainer - json: meta.success... success - json: asasVersionResource is not null - json: asasVersionResource.entitiesUri equals: /v1/entities.json - json: asasVersionResource.foldersUri equals: /v1/folders.json - json: asasVersionResource.groupsUri equals: /v1/groups.json - json: asasVersionResource.permissionsUri equals: /v1/permissions.json Success: suite: folderSave - tests: 5, successes: 5, failures: 0, warnings: 0 - Success: test: folderSave.testPutFolder - xml: httpStatusCode equals: 201 - xml: Content type header should contain 'xml': text/xml;charset=UTF-8... success - xml: httpMethod equals: PUT - xml: serviceMeta is not null - xml: serviceMeta.serverVersion is not null - xml: serviceMeta.serverVersion should be 1.x: 1.0... success - xml: serviceMeta.serviceRootUri is not blank - xml: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - xml: responseMeta is not null - xml: responseMeta.httpStatusCode equals: 201 - xml: responseMeta.mills is not null - xml: meta is not null - xml: meta.lastModified is a valid date: 2013-01-16T18:41:25.137Z - xml: meta.selfUri equals: /v1/folders/name:unitTesting:testxml.xml - xml: meta.statusCode equals: FOLDER_CREATED - xml: meta.structureName equals: folderSaveResponse - xml: meta.success... success - xml: folderSaveResponse is not null - json: httpStatusCode equals: 201 - json: Content type header should contain 'json': text/x-json;charset=UTF-8... success - json: httpMethod equals: PUT - json: serviceMeta is not null - json: serviceMeta.serverVersion is not null - json: serviceMeta.serverVersion should be 1.x: 1.0... success - json: serviceMeta.serviceRootUri is not blank - json: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - json: responseMeta is not null - json: responseMeta.httpStatusCode equals: 201 - json: responseMeta.mills is not null - json: meta is not null - json: meta.lastModified is a valid date: 2013-01-16T18:41:25.137Z - json: meta.selfUri equals: /v1/folders/name:unitTesting:testjson.json - json: meta.statusCode equals: FOLDER_CREATED - json: meta.structureName equals: folderSaveResponse - json: meta.success... success - json: folderSaveResponse is not null - Success: test: folderSave.testPutFolderCreateParents - xml: httpStatusCode equals: 409 - xml: Content type header should contain 'xml': text/xml;charset=UTF-8... success - xml: httpMethod equals: PUT - xml: serviceMeta is not null - xml: serviceMeta.serverVersion is not null - xml: serviceMeta.serverVersion should be 1.x: 1.0... success - xml: serviceMeta.serviceRootUri is not blank - xml: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - xml: responseMeta is not null - xml: responseMeta.httpStatusCode equals: 409 - xml: responseMeta.mills is not null - xml: meta is not null - xml: meta.lastModified is a valid date: 2013-01-16T18:41:25.137Z - xml: meta.selfUri equals: /v1/folders/name:unitTesting:test:a:b:cxml.xml - xml: meta.statusCode equals: FOLDER_NOT_EXIST - xml: meta.structureName equals: folderSaveResponse - xml: meta.success... success - xml: folderSaveResponse is null - xml: httpStatusCode equals: 201 - xml: Content type header should contain 'xml': text/xml;charset=UTF-8... success - xml: httpMethod equals: PUT - xml: serviceMeta is not null - xml: serviceMeta.serverVersion is not null - xml: serviceMeta.serverVersion should be 1.x: 1.0... success - xml: serviceMeta.serviceRootUri is not blank - xml: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - xml: responseMeta is not null - xml: responseMeta.httpStatusCode equals: 201 - xml: responseMeta.mills is not null - xml: meta is not null - xml: meta.lastModified is a valid date: 2013-01-16T18:41:25.137Z - xml: meta.selfUri equals: /v1/folders/name:unitTesting:test:a:b:cxml.xml?createPare... - xml: meta.statusCode equals: FOLDER_CREATED - xml: meta.structureName equals: folderSaveResponse - xml: meta.success... success - xml: folderSaveResponse is not null - json: httpStatusCode equals: 409 - json: Content type header should contain 'json': text/x-json;charset=UTF-8... success - json: httpMethod equals: PUT - json: serviceMeta is not null - json: serviceMeta.serverVersion is not null - json: serviceMeta.serverVersion should be 1.x: 1.0... success - json: serviceMeta.serviceRootUri is not blank - json: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - json: responseMeta is not null - json: responseMeta.httpStatusCode equals: 409 - json: responseMeta.mills is not null - json: meta is not null - json: meta.lastModified is a valid date: 2013-01-16T18:41:25.137Z - json: meta.selfUri equals: /v1/folders/name:unitTesting:test:a:b:cjson.json - json: meta.statusCode equals: FOLDER_NOT_EXIST - json: meta.structureName equals: folderSaveResponse - json: meta.success... success - json: folderSaveResponse is null - json: httpStatusCode equals: 201 - json: Content type header should contain 'json': text/x-json;charset=UTF-8... success - json: httpMethod equals: PUT - json: serviceMeta is not null - json: serviceMeta.serverVersion is not null - json: serviceMeta.serverVersion should be 1.x: 1.0... success - json: serviceMeta.serviceRootUri is not blank - json: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - json: responseMeta is not null - json: responseMeta.httpStatusCode equals: 201 - json: responseMeta.mills is not null - json: meta is not null - json: meta.lastModified is a valid date: 2013-01-16T18:41:25.137Z - json: meta.selfUri equals: /v1/folders/name:unitTesting:test:a:b:cjson.json?createPa... - json: meta.statusCode equals: FOLDER_CREATED - json: meta.structureName equals: folderSaveResponse - json: meta.success... success - json: folderSaveResponse is not null - Success: test: folderSave.testPostFolder - xml: httpStatusCode equals: 201 - xml: Content type header should contain 'xml': text/xml;charset=UTF-8... success - xml: httpMethod equals: POST - xml: serviceMeta is not null - xml: serviceMeta.serverVersion is not null - xml: serviceMeta.serverVersion should be 1.x: 1.0... success - xml: serviceMeta.serviceRootUri is not blank - xml: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - xml: responseMeta is not null - xml: responseMeta.httpStatusCode equals: 201 - xml: responseMeta.mills is not null - xml: meta is not null - xml: meta.lastModified is a valid date: 2013-01-16T18:41:25.137Z - xml: meta.selfUri equals: /v1/folders/name:unitTesting:axml.xml - xml: meta.statusCode equals: FOLDER_CREATED - xml: meta.structureName equals: folderSaveResponse - xml: meta.success... success - xml: folderSaveResponse is not null - xml: httpStatusCode equals: 409 - xml: Content type header should contain 'xml': text/xml;charset=UTF-8... success - xml: httpMethod equals: POST - xml: serviceMeta is not null - xml: serviceMeta.serverVersion is not null - xml: serviceMeta.serverVersion should be 1.x: 1.0... success - xml: serviceMeta.serviceRootUri is not blank - xml: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - xml: responseMeta is not null - xml: responseMeta.httpStatusCode equals: 409 - xml: responseMeta.mills is not null - xml: meta is not null - xml: meta.lastModified is a valid date: 2013-01-16T18:41:25.137Z - xml: meta.selfUri equals: /v1/folders/name:unitTesting:axml.xml - xml: meta.statusCode equals: FOLDER_EXISTS - xml: meta.structureName equals: folderSaveResponse - xml: meta.success... success - xml: folderSaveResponse is null - json: httpStatusCode equals: 201 - json: Content type header should contain 'json': text/x-json;charset=UTF-8... success - json: httpMethod equals: POST - json: serviceMeta is not null - json: serviceMeta.serverVersion is not null - json: serviceMeta.serverVersion should be 1.x: 1.0... success - json: serviceMeta.serviceRootUri is not blank - json: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - json: responseMeta is not null - json: responseMeta.httpStatusCode equals: 201 - json: responseMeta.mills is not null - json: meta is not null - json: meta.lastModified is a valid date: 2013-01-16T18:41:25.137Z - json: meta.selfUri equals: /v1/folders/name:unitTesting:ajson.json - json: meta.statusCode equals: FOLDER_CREATED - json: meta.structureName equals: folderSaveResponse - json: meta.success... success - json: folderSaveResponse is not null - json: httpStatusCode equals: 409 - json: Content type header should contain 'json': text/x-json;charset=UTF-8... success - json: httpMethod equals: POST - json: serviceMeta is not null - json: serviceMeta.serverVersion is not null - json: serviceMeta.serverVersion should be 1.x: 1.0... success - json: serviceMeta.serviceRootUri is not blank - json: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - json: responseMeta is not null - json: responseMeta.httpStatusCode equals: 409 - json: responseMeta.mills is not null - json: meta is not null - json: meta.lastModified is a valid date: 2013-01-16T18:41:25.137Z - json: meta.selfUri equals: /v1/folders/name:unitTesting:ajson.json - json: meta.statusCode equals: FOLDER_EXISTS - json: meta.structureName equals: folderSaveResponse - json: meta.success... success - json: folderSaveResponse is null - Success: test: folderSave.testPutFolderUpdate - xml: httpStatusCode equals: 409 - xml: Content type header should contain 'xml': text/xml;charset=UTF-8... success - xml: httpMethod equals: PUT - xml: serviceMeta is not null - xml: serviceMeta.serverVersion is not null - xml: serviceMeta.serverVersion should be 1.x: 1.0... success - xml: serviceMeta.serviceRootUri is not blank - xml: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - xml: responseMeta is not null - xml: responseMeta.httpStatusCode equals: 409 - xml: responseMeta.mills is not null - xml: meta is not null - xml: meta.lastModified is a valid date: 2013-01-16T18:41:25.137Z - xml: meta.selfUri equals: /v1/folders/name:unitTesting:axml.xml?saveMode=update - xml: meta.statusCode equals: FOLDER_NOT_EXIST - xml: meta.structureName equals: folderSaveResponse - xml: meta.success... success - xml: folderSaveResponse is null - xml: httpStatusCode equals: 201 - xml: Content type header should contain 'xml': text/xml;charset=UTF-8... success - xml: httpMethod equals: POST - xml: serviceMeta is not null - xml: serviceMeta.serverVersion is not null - xml: serviceMeta.serverVersion should be 1.x: 1.0... success - xml: serviceMeta.serviceRootUri is not blank - xml: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - xml: responseMeta is not null - xml: responseMeta.httpStatusCode equals: 201 - xml: responseMeta.mills is not null - xml: httpStatusCode equals: 200 - xml: Content type header should contain 'xml': text/xml;charset=UTF-8... success - xml: httpMethod equals: PUT - xml: serviceMeta is not null - xml: serviceMeta.serverVersion is not null - xml: serviceMeta.serverVersion should be 1.x: 1.0... success - xml: serviceMeta.serviceRootUri is not blank - xml: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - xml: responseMeta is not null - xml: responseMeta.httpStatusCode equals: 200 - xml: responseMeta.mills is not null - xml: meta is not null - xml: meta.lastModified is a valid date: 2013-01-16T18:41:25.137Z - xml: meta.selfUri equals: /v1/folders/name:unitTesting:axml.xml?saveMode=update - xml: meta.statusCode equals: FOLDER_UPDATED - xml: meta.structureName equals: folderSaveResponse - xml: meta.success... success - xml: folderSaveResponse is not null - xml: folder description set correctly equals: description - json: httpStatusCode equals: 409 - json: Content type header should contain 'json': text/x-json;charset=UTF-8... success - json: httpMethod equals: PUT - json: serviceMeta is not null - json: serviceMeta.serverVersion is not null - json: serviceMeta.serverVersion should be 1.x: 1.0... success - json: serviceMeta.serviceRootUri is not blank - json: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - json: responseMeta is not null - json: responseMeta.httpStatusCode equals: 409 - json: responseMeta.mills is not null - json: meta is not null - json: meta.lastModified is a valid date: 2013-01-16T18:41:25.137Z - json: meta.selfUri equals: /v1/folders/name:unitTesting:ajson.json?saveMode=update - json: meta.statusCode equals: FOLDER_NOT_EXIST - json: meta.structureName equals: folderSaveResponse - json: meta.success... success - json: folderSaveResponse is null - json: httpStatusCode equals: 201 - json: Content type header should contain 'json': text/x-json;charset=UTF-8... success - json: httpMethod equals: POST - json: serviceMeta is not null - json: serviceMeta.serverVersion is not null - json: serviceMeta.serverVersion should be 1.x: 1.0... success - json: serviceMeta.serviceRootUri is not blank - json: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - json: responseMeta is not null - json: responseMeta.httpStatusCode equals: 201 - json: responseMeta.mills is not null - json: httpStatusCode equals: 200 - json: Content type header should contain 'json': text/x-json;charset=UTF-8... success - json: httpMethod equals: PUT - json: serviceMeta is not null - json: serviceMeta.serverVersion is not null - json: serviceMeta.serverVersion should be 1.x: 1.0... success - json: serviceMeta.serviceRootUri is not blank - json: serviceMeta.serviceRootUri starts with http: http://localhost:8090/grouperWs/authzStandardApi... success - json: responseMeta is not null - json: responseMeta.httpStatusCode equals: 200 - json: responseMeta.mills is not null - json: meta is not null - json: meta.lastModified is a valid date: 2013-01-16T18:41:25.137Z - json: meta.selfUri equals: /v1/folders/name:unitTesting:ajson.json?saveMode=update - json: meta.statusCode equals: FOLDER_UPDATED - json: meta.structureName equals: folderSaveResponse - json: meta.success... success - json: folderSaveResponse is not null - json: folder description set correctly equals: description - Success: test: folderSave.testCommandLineClient - xml: Success: status: FOLDER_CREATED: unitTesting:axml... success - xml: status equals: FOLDER_CREATED - xml: folder name equals: unitTesting:axml - xml: httpStatusCode equals: 201 - xml: method equals: PUT - xml: uri: ... success - xml: request contains name: ... success - xml: request contains name value: ... success - json: Success: status: FOLDER_CREATED: unitTesting:ajson... success - json: status equals: FOLDER_CREATED - json: folder name equals: unitTesting:ajson - json: httpStatusCode equals: 201 - json: method equals: PUT - json: uri: ... success - json: request contains name: ... success - json: request contains name value: ... success SUCCESS overall, tests: 9, successes: 9, failures: 0, warnings: 0