€cdocutils.nodes document q)q}q(U nametypesq}q(Xuc39qˆXhistoryqˆXuse case 39 - test node apisqNuUsubstitution_defsq }q Uparse_messagesq ]q Ucurrent_sourceq NU decorationqNUautofootnote_startqKUnameidsq}q(hUuc39qhUhistoryqhUuse-case-39-test-node-apisquUchildrenq]q(cdocutils.nodes target q)q}q(U rawsourceqX .. _UC39:UparentqhUsourceqXj/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/UseCases/39_uc.txtqUtagnameqUtargetqU attributesq }q!(Uidsq"]Ubackrefsq#]Udupnamesq$]Uclassesq%]Unamesq&]Urefidq'huUlineq(KUdocumentq)hh]ubcdocutils.nodes section q*)q+}q,(hUhhhhUexpect_referenced_by_nameq-}q.hhshUsectionq/h }q0(h$]h%]h#]h"]q1(hheh&]q2(hheuh(Kh)hUexpect_referenced_by_idq3}q4hhsh]q5(cdocutils.nodes title q6)q7}q8(hXUse Case 39 - Test Node APIsq9hh+hhhUtitleq:h }q;(h$]h%]h#]h"]h&]uh(Kh)hh]q…q?}q@(hh9hh7ubaubcsphinx.addnodes index qA)qB}qC(hUhh+hhhUindexqDh }qE(h"]h#]h$]h%]h&]UentriesqF]qG((UsingleqHX Use Case 39Uindex-0qIUNtqJ(hHXUC39hIUNtqK(hHXtest member NodeshIUNtqL(hHX evaluationhIUNtqM(hHXmonitorhIUNtqN(hHXhealthhIUNtqOeUinlineqP‰uh(Kh)hh]ubh)qQ}qR(hUhh+hhhhh }qS(h"]h#]h$]h%]h&]h'hIuh(Kh)hh]ubcdocutils.nodes definition_list qT)qU}qV(hUhh+hhh-}hUdefinition_listqWh }qX(h$]h%]h#]h"]qYhIah&]uh(Nh)hh3}qZhIhQsh]q[(cdocutils.nodes definition_list_item q\)q]}q^(hX+Revisions View document revision history_. hhUhhhUdefinition_list_itemq_h }q`(h$]h%]h#]h"]h&]uh(K h]qa(cdocutils.nodes term qb)qc}qd(hX Revisionsqehh]hhhUtermqfh }qg(h$]h%]h#]h"]h&]uh(K h]qhh=X Revisionsqi…qj}qk(hhehhcubaubcdocutils.nodes definition ql)qm}qn(hUh }qo(h$]h%]h#]h"]h&]uhh]h]qpcdocutils.nodes paragraph qq)qr}qs(hX View document revision history_.hhmhhhU paragraphqth }qu(h$]h%]h#]h"]h&]uh(K h]qv(h=XView document revision qw…qx}qy(hXView document revision hhrubcdocutils.nodes reference qz)q{}q|(hXhistory_Uresolvedq}KhhrhU referenceq~h }q(UnameXhistoryq€UrefuriqX”https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/UseCases/39_uc.txtq‚h"]h#]h$]h%]h&]uh]qƒh=Xhistoryq„…q…}q†(hUhh{ubaubh=X.…q‡}qˆ(hX.hhrubeubahU definitionq‰ubeubh\)qŠ}q‹(hX›Goal Execute a series of method calls against all member and coordinating nodes to ensure that the responses are as expected for both success and failure. hhUhhhh_h }qŒ(h$]h%]h#]h"]h&]uh(K h)hh]q(hb)qŽ}q(hXGoalqhhŠhhhhfh }q‘(h$]h%]h#]h"]h&]uh(K h]q’h=XGoalq“…q”}q•(hhhhŽubaubhl)q–}q—(hUh }q˜(h$]h%]h#]h"]h&]uhhŠh]q™hq)qš}q›(hX•Execute a series of method calls against all member and coordinating nodes to ensure that the responses are as expected for both success and failure.qœhh–hhhhth }q(h$]h%]h#]h"]h&]uh(K h]qžh=X•Execute a series of method calls against all member and coordinating nodes to ensure that the responses are as expected for both success and failure.qŸ…q }q¡(hhœhhšubaubahh‰ubeubh\)q¢}q£(hXúSummary Part of the process for testing conformance of API implementation by member and coordinating nodes is to ensure that the responses to individual calls are as expected in the case of both successful requests and those that cause some failure. hhUhhhh_h }q¤(h$]h%]h#]h"]h&]uh(Kh)hh]q¥(hb)q¦}q§(hXSummaryq¨hh¢hhhhfh }q©(h$]h%]h#]h"]h&]uh(Kh]qªh=XSummaryq«…q¬}q­(hh¨hh¦ubaubhl)q®}q¯(hUh }q°(h$]h%]h#]h"]h&]uhh¢h]q±hq)q²}q³(hXñPart of the process for testing conformance of API implementation by member and coordinating nodes is to ensure that the responses to individual calls are as expected in the case of both successful requests and those that cause some failure.q´hh®hhhhth }qµ(h$]h%]h#]h"]h&]uh(Kh]q¶h=XñPart of the process for testing conformance of API implementation by member and coordinating nodes is to ensure that the responses to individual calls are as expected in the case of both successful requests and those that cause some failure.q·…q¸}q¹(hh´hh²ubaubahh‰ubeubh\)qº}q»(hX5Actors - Coordinating Node - Client API - Test suite hhUhhhh_h }q¼(h$]h%]h#]h"]h&]uh(Kh)hh]q½(hb)q¾}q¿(hXActorsqÀhhºhhhhfh }qÁ(h$]h%]h#]h"]h&]uh(Kh]qÂh=XActorsqÃ…qÄ}qÅ(hhÀhh¾ubaubhl)qÆ}qÇ(hUh }qÈ(h$]h%]h#]h"]h&]uhhºh]qÉcdocutils.nodes bullet_list qÊ)qË}qÌ(hUh }qÍ(UbulletqÎX-h"]h#]h$]h%]h&]uhhÆh]qÏ(cdocutils.nodes list_item qÐ)qÑ}qÒ(hXCoordinating NodeqÓh }qÔ(h$]h%]h#]h"]h&]uhhËh]qÕhq)qÖ}q×(hhÓhhÑhhhhth }qØ(h$]h%]h#]h"]h&]uh(Kh]qÙh=XCoordinating NodeqÚ…qÛ}qÜ(hhÓhhÖubaubahU list_itemqÝubhÐ)qÞ}qß(hX Client APIqàh }qá(h$]h%]h#]h"]h&]uhhËh]qâhq)qã}qä(hhàhhÞhhhhth }qå(h$]h%]h#]h"]h&]uh(Kh]qæh=X Client APIqç…qè}qé(hhàhhãubaubahhÝubhÐ)qê}që(hX Test suite h }qì(h$]h%]h#]h"]h&]uhhËh]qíhq)qî}qï(hX Test suiteqðhhêhhhhth }qñ(h$]h%]h#]h"]h&]uh(Kh]qòh=X Test suiteqó…qô}qõ(hhðhhîubaubahhÝubehU bullet_listqöubahh‰ubeubh\)q÷}qø(hX/Preconditions - Coordinating nodes operational hhUhhhh_h }qù(h$]h%]h#]h"]h&]uh(Kh)hh]qú(hb)qû}qü(hX Preconditionsqýhh÷hhhhfh }qþ(h$]h%]h#]h"]h&]uh(Kh]qÿh=X Preconditionsr…r}r(hhýhhûubaubhl)r}r(hUh }r(h$]h%]h#]h"]h&]uhh÷h]rhÊ)r}r(hUh }r (hÎX-h"]h#]h$]h%]h&]uhjh]r hÐ)r }r (hXCoordinating nodes operational h }r (h$]h%]h#]h"]h&]uhjh]rhq)r}r(hXCoordinating nodes operationalrhj hhhhth }r(h$]h%]h#]h"]h&]uh(Kh]rh=XCoordinating nodes operationalr…r}r(hjhjubaubahhÝubahhöubahh‰ubeubh\)r}r(hX1Triggers - Tests against all nodes are initiated hhUhhhh_h }r(h$]h%]h#]h"]h&]uh(Kh)hh]r(hb)r}r(hXTriggersrhjhhhhfh }r(h$]h%]h#]h"]h&]uh(Kh]rh=XTriggersr …r!}r"(hjhjubaubhl)r#}r$(hUh }r%(h$]h%]h#]h"]h&]uhjh]r&hÊ)r'}r((hUh }r)(hÎX-h"]h#]h$]h%]h&]uhj#h]r*hÐ)r+}r,(hX&Tests against all nodes are initiated h }r-(h$]h%]h#]h"]h&]uhj'h]r.hq)r/}r0(hX%Tests against all nodes are initiatedr1hj+hhhhth }r2(h$]h%]h#]h"]h&]uh(Kh]r3h=X%Tests against all nodes are initiatedr4…r5}r6(hj1hj/ubaubahhÝubahhöubahh‰ubeubh\)r7}r8(hXyPost Conditions - All API methods of all member nodes are tested - All API methods of all coordinating nodes are tested hhUhhhh_h }r9(h$]h%]h#]h"]h&]uh(K#h)hh]r:(hb)r;}r<(hXPost Conditionsr=hj7hhhhfh }r>(h$]h%]h#]h"]h&]uh(K#h]r?h=XPost Conditionsr@…rA}rB(hj=hj;ubaubhl)rC}rD(hUh }rE(h$]h%]h#]h"]h&]uhj7h]rFhÊ)rG}rH(hUh }rI(hÎX-h"]h#]h$]h%]h&]uhjCh]rJ(hÐ)rK}rL(hX.All API methods of all member nodes are testedrMh }rN(h$]h%]h#]h"]h&]uhjGh]rOhq)rP}rQ(hjMhjKhhhhth }rR(h$]h%]h#]h"]h&]uh(K!h]rSh=X.All API methods of all member nodes are testedrT…rU}rV(hjMhjPubaubahhÝubhÐ)rW}rX(hX6All API methods of all coordinating nodes are tested h }rY(h$]h%]h#]h"]h&]uhjGh]rZhq)r[}r\(hX4All API methods of all coordinating nodes are testedr]hjWhhhhth }r^(h$]h%]h#]h"]h&]uh(K"h]r_h=X4All API methods of all coordinating nodes are testedr`…ra}rb(hj]hj[ubaubahhÝubehhöubahh‰ubeubeubcdocutils.nodes comment rc)rd}re(hXI@startuml images/29_seq.png participant "Tester" as app_test << Application >> participant "CN" as cn << CN >> participant "API" as node << Node >> app_test -> cn: listNodes() cn --> app_test: nodeList loop for node in nodeList loop for test in tests app_test -> node: test() node --> app_test: result end end @endumlhh+hhhUcommentrfh }rg(U xml:spacerhUpreserverih"]h#]h$]h%]h&]uh(K4h)hh]rjh=XI@startuml images/29_seq.png participant "Tester" as app_test << Application >> participant "CN" as cn << CN >> participant "API" as node << Node >> app_test -> cn: listNodes() cn --> app_test: nodeList loop for node in nodeList loop for test in tests app_test -> node: test() node --> app_test: result end end @endumlrk…rl}rm(hUhjdubaubcdocutils.nodes image rn)ro}rp(hX.. image:: images/29_seq.png hh+hhhUimagerqh }rr(UuriX!design/UseCases/images/29_seq.pngrsh"]h#]h$]h%]U candidatesrt}ruU*jssh&]uh(K6h)hh]ubhq)rv}rw(hX@*Figure 1.* Interaction diagram for use case 39, Test Node APIs.rxhh+hhhhth }ry(h$]h%]h#]h"]h&]uh(K7h)hh]rz(cdocutils.nodes emphasis r{)r|}r}(hX *Figure 1.*h }r~(h$]h%]h#]h"]h&]uhjvh]rh=X Figure 1.r€…r}r‚(hUhj|ubahUemphasisrƒubh=X5 Interaction diagram for use case 39, Test Node APIs.r„…r…}r†(hX5 Interaction diagram for use case 39, Test Node APIs.hjvubeubh)r‡}rˆ(hX¡.. _history: https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/UseCases/39_uc.txtU referencedr‰Khh+hhhhh }rŠ(hh‚h"]r‹hah#]h$]h%]h&]rŒhauh(K9h)hh]ubeubehUU transformerrNU footnote_refsrŽ}rUrefnamesr}r‘h€]r’h{asUsymbol_footnotesr“]r”Uautofootnote_refsr•]r–Usymbol_footnote_refsr—]r˜U citationsr™]ršh)hU current_liner›NUtransform_messagesrœ]r(cdocutils.nodes system_message rž)rŸ}r (hUh }r¡(h$]UlevelKh"]h#]Usourcehh%]h&]UlineKUtypeUINFOr¢uh]r£hq)r¤}r¥(hUh }r¦(h$]h%]h#]h"]h&]uhjŸh]r§h=X*Hyperlink target "uc39" is not referenced.r¨…r©}rª(hUhj¤ubahhtubahUsystem_messager«ubjž)r¬}r­(hUh }r®(h$]UlevelKh"]h#]Usourcehh%]h&]UlineKUtypej¢uh]r¯hq)r°}r±(hUh }r²(h$]h%]h#]h"]h&]uhj¬h]r³h=X-Hyperlink target "index-0" is not referenced.r´…rµ}r¶(hUhj°ubahhtubahj«ubeUreporterr·NUid_startr¸KU autofootnotesr¹]rºU citation_refsr»}r¼Uindirect_targetsr½]r¾Usettingsr¿(cdocutils.frontend Values rÀorÁ}rÂ(Ufootnote_backlinksrÃKUrecord_dependenciesrÄNU rfc_base_urlrÅUhttps://tools.ietf.org/html/rÆU tracebackrLjUpep_referencesrÈNUstrip_commentsrÉNU toc_backlinksrÊUentryrËU language_coderÌUenrÍU datestamprÎNU report_levelrÏKU _destinationrÐNU halt_levelrÑKU strip_classesrÒNh:NUerror_encoding_error_handlerrÓUbackslashreplacerÔUdebugrÕNUembed_stylesheetrÖ‰Uoutput_encoding_error_handlerr×UstrictrØU sectnum_xformrÙKUdump_transformsrÚNU docinfo_xformrÛKUwarning_streamrÜNUpep_file_url_templaterÝUpep-%04drÞUexit_status_levelrßKUconfigràNUstrict_visitorráNUcloak_email_addressesrâˆUtrim_footnote_reference_spacerã‰UenvräNUdump_pseudo_xmlråNUexpose_internalsræNUsectsubtitle_xformrç‰U source_linkrèNUrfc_referencesréNUoutput_encodingrêUutf-8rëU source_urlrìNUinput_encodingríU utf-8-sigrîU_disable_configrïNU id_prefixrðUU tab_widthrñKUerror_encodingròUUTF-8róU_sourcerôhUgettext_compactrõˆU generatorröNUdump_internalsr÷NU smart_quotesrø‰U pep_base_urlrùU https://www.python.org/dev/peps/rúUsyntax_highlightrûUlongrüUinput_encoding_error_handlerrýjØUauto_id_prefixrþUidrÿUdoctitle_xformr‰Ustrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrˆU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hh+hj‡hIhUhh+uUsubstitution_namesr }r hh)h }r (h$]h"]h#]Usourcehh%]h&]uU footnotesr ]r Urefidsr}r(h]rhahI]rhQauub.