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 CaseDetails DescriptionTest StepsExpected resultResult
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.

  1. Call the GET /ServiceProviderConfig Rest API.
  2. Check the response and status code
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.

  1. Call the GET /ResourceTypes Rest API.
  2.  Check the response and status code
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.

  1. Call the GET /Schemas Rest API.
  2.  Check the response and status code
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.
  1. Call the GET /Schemas/{id} Rest API.
  2.  Check the response and status code
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.

  1. Call the GET /{resourceName}  Rest API.
  2.  Check the response and status code
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. 

  1. Call the GET  /{resourceName}/{id}  Rest API.
  2. Check the response and status code
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.

  1. Call the POST /{resourceName} Rest API.
  2. Send data of the object you want to create in the request body.
  3. Check the response and status code
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.

  1. Call the PUT /{resourceName}/{id} Rest API.
  2. Send data of the object you want to replace in the request body.
  3. Check the response and status code
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.

  1. Call the PATCH /{resourceName}/{id}  Rest API.
  2. Send data of object you want to modify in the request body.
  3. Check the response and status code
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}.

  1. Call the DELETE  /{resourceName}/{id}  Rest API.
  2.  Get the response and status code
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#

Detailed Design: Detailed Design of SCIM Test Suite