I am running CTK of TMF683 Party Interaction to understand the conformance requirement and acquaintance.
Following are the queries:
Test #2:GET /partyInteraction/
What is the objective of such test to retrieve all Party Interaction without any filter criteria?I believe an element such as Customer Id must be specified to retrieve all Party Interaction for a Customer.
Is there is a possibility to adapt the test case of CTK or it has pass as-is for conformance?
Test #5: GET /partyInteraction/?direction=direction
Test #8: GET /partyInteraction/?reason=reason
Test #11: GET /partyInteraction/?relatedChannel=relatedChannel
Need help to understand these criteria to query resource.
Is this expecting to retrieve all the Party Interaction having element "direction" with value = direction? | retrieve all the Party Interaction having element "reason" with value = reason
and this query is executed on all Party Interaction without any filter criteria such as Customer Id?
Test #13: DELETE /partyInteraction/MR000000U8AV/
My stub returns following response
HTTP/1.1 204 No ContentContent-Type: application/json
However following error is logged
CypressError: Cypress test was stopped while running this command. Because this error occurred during a `before all` hook we are skipping the remaining tests in the current suite: `TMF683 Conformance Profile ...`
Any pointers on what to look for?
Requesting help for resolution of these queries.
Bear in mind that the CTK runs fairly basic functional tests, against possibly empty storage. Real-life constraints such as the ones you describe (e.g. having customer ID as part of the filter) are not considered in CTK design.
Regarding your query #3 - it's not clear to me what you mean by "your stub". Why would you even consider running the CTK against a stub rather than against a real implementation of an API. Having said that, your response looks correct and matches the Swagger file that has 204 as the only successful response for a DELETE. I'll refer this to the relevant TM Forum focal.
Thanks for reply.
Will await response from yourself / Tm Forum Focal contacts.
Sorry I missed your query #2 - I had understood that the meaning of those queries was to find all interactions where (for example) the direction matches the direction in the query string. When the test is actually run, it surely doesn't place the actual literal value "direction" on the query string (I hope).
Regarding #3, each API designer decides which operations are mandatory - presumably they felt that deleting an interaction is relevant. For example when an individual expresses her right to be forgotten as per GDPR. Your implementation can of course decide to make it a logical delete rather than physical removal from persistence, depending on your business requirements.
Regarding #1, as far as I understand, you are indeed expected to support an unrestricted query. Take a look at the design guidelines TMF630 for more information, I believe there is a guideline allowing the implementation to set a maximum number of results to be returned, and of course there is pagination.
Happy New Year !
Thanks for the response; some follow-on comments.
a. Unrestricted Query does not solve any purpose and cannot be supported at least in our environment, unless some default is built just for the purpose for conformance.
b. Yes I see paging parameters offset and limit but unless CTK submits it, which it does not, does not help.
Can we speak to the Focul Point to improve the CTK to accept /specify certain parameters in the request to keep the tests realistic?
Yes; these are actual requests which CTK is submitting.
"direction" is a reserved element with possible values as "inbound" and "outbound", whereas test submits "direction" as value and also expected some rows to be returned. This is a defect in CTK.
similarly relatedChannel is a complex part and query specified relatedChannel = relatedChannel which again appears to be a defect in CTK.
Again will implement DELETE though not required, just for conformance
I wonder how other implementations are passing tests of this CTK as these are too restrictive and un-realistic unless I am missing something.
Is it possible to have a call with yourself / TMForum Focal point to put the point across.
This can be discarded. I see, payload for POST can be specified in CHANGE_ME.json which I was able to update and submit the required request.