Test Suite for IDHub Connectors
NEEDS UPDATE
Overview:
This test Suite is responsible for the execution of all types of SCIM and evaluates the working of any SCIM. This test suite contains a data file that will contain the information about SCIM endpoints and data to perform an operation on SCIM and validate SCIM endpoints.
SCIM endpoints are responsible for below-mentioned operations:
- Create a resource in target systems.
- Modify a resource in target systems.
- Remove a resource from target systems.
- Search All resources from target systems.
- Search resource from target systems.
We have several SCIM rest endpoints for each SCIM connector so we need to test each and every endpoint before deploying the SCIM connector to the server. That's why we need a test suite for the SCIM connector to test all the rest endpoints.
SCIM rest endpoints:
GET Endpoints
These operations are used to retrieve information from the SCIM endpoint.
--/ServiceProviderConfig
This endpoint returns the Service Provider Configuration.
--/ResourceTypes
This endpoint returns the Resource Types supported by this service provider.
--/Schemas
This endpoint returns the Schemas supported by this service provider.
--/{resourceName}
This endpoint returns all the objects of resource having name resourceName.
--/{resourceName}/{id}
This endpoint returns an individual object of resource with name resourceName and identifies by id mentioned in URL.
--/Schemas/{id}
This endpoint returns the Schema identified by {id}.
POST Endpoints
Post operations are used to create new objects for a resource.
A new User or Group should be created depending on which endpoint was used /Users or /Groups respectively.
--/{resourceName}
This post-operation should create a new object from the SCIM data received as the request Body for this resource.
PUT Endpoints
PUT operations are used to replace entire entries. A put requires that every attribute provided is replaced with the data provided.
--/{resourceName}/{id}
This PUT operation should modify an existing object, identified by {id}, using the SCIM data received as request Body for this resource having name resourceName.
PATCH Endpoints
PATCH operations are used to modify multiple attributes of an object.
--/{resourceName}/{id}
This PATCH operation should modify an existing object of resource, identified by {id}, using the SCIM data received as the request Body for this resource.
DELETE Endpoints
This operation is used to delete objects. DELETE operations are used to remove an entire object of a resource.
--/{resource}/{id}
This DELETE operation should delete an existing object, identified by {id}, using the SCIM data received as the request Body for this resource.
Test Cases:
Test Case | Details Description | Test Steps | Expected result | Result |
---|---|---|---|---|
GET /ServiceProviderConfig | This test case will perform GET /ServiceProviderConfig Rest call which is responsible for returning the Service Provider Configuration. Configurations are Specification compliance, authentication schemes, data models. This test case returns the configuration in JSON form. |
| This test case will return Service Provider Configuration as JSON. | If the API return expected result with 200 status code the test case is passed else failed. |
GET /ResourceTypes | This test case will perform GET /ResourceTypes Rest call which returns the Resource Types supported by this service provider. This API used to discover the types of resources available. |
| This test case will return information of resource types supported by this service provider as JSON. | If the API return expected result with 200 status code the test case is passed else failed. |
GET /Schemas | This test case will perform GET /Schemas Rest call which returns the Schemas supported by this service provider. The API is used to Introspect resources and attribute extensions. |
| This test case will return resources and attribute extensions as JSON. | If the API return expected result with 200 status code the test case is passed else failed. |
GET /Schemas/{id} | This test case will perform GET /Schemas/{id} Rest call which returns the Schema identified by {id}. This API is used to discover Individual schemas details. |
| This test case will return individual schemas details as JSON | If the API return expected result with 200 status code the test case is passed else failed. |
GET /{resourceName} | This test case will perform GET /{resourceName} Rest call which returns all the objects of resource having name resourceName for any SCIM connector. |
| This test case will return all the objects of a resource as JSON. | If the API return expected result with 200 status code the test case is passed else failed. |
GET /{resourceName}/{id} | This test case will perform GET /{resourceName}/{id} Rest call which returns an individual object of resource with name resourceName and identifies by id mentioned in URL. |
| This test case will return an individual object of a resource as JSON | If the API return expected result with 200 status code the test case is passed else failed. |
POST /{resourceName} | This operation will perform POST /{resourceName} Rest call which is responsible to create a new object from the data sent as the request Body for this API. After this operation, this API returns the newly created object as JSON. |
| This test case will return the newly created object as JSON | If the API return expected result with 200 status code the test case is passed else failed. |
PUT /{resourceName}/{id} | This operation will perform PUT /{resourceName}/{id} Rest call which should replace an existing object, identified by {id}, with the data received as request Body for this API having name resourceName. After this operation, this API returns the relaced object as JSON. |
| This test case will return the relaced object as JSON. | If the API return expected result with 200 status code the test case is passed else failed. |
PATCH /{resourceName}/{id} | This Operation will perform PATCH /{resourceName}/{id} Rest call which should modify the attributes of an existing object of resource, identified by {id}, using the data received as the request Body for this API. After this operation, this API returns the modified object as JSON. |
| This test case will return the modified object as JSON. | If the API return expected result with 200 status code the test case is passed else failed. |
DELETE /{resource}/{id} | This operation will perform DELETE /{resourceName}/{id} Rest call which should delete an existing object, identified by {id}. |
| This test case will return status true if the object is deleted. | If the API return expected result with 200 status code the test case is passed else failed. |
Report Format:
Going to use extent report API to represent the test reports API
Extent Framework 4 - Community Edition
https://github.com/extent-framework/extentreports-java
Sample test report
http://extentreports.com/samples/spark/index.html#