3 def test_001_given_diameter_hex_representation_i_want_to_send_message_to_diameter_entity_and_check_it_fails_for_auto_node(resources, admlc):
5 responseBodyRef = { "success":"true", "response":"Working node has been set to automatic" }
8 response = admlc.post("/node-auto")
11 admlc.assert_response__status_body_headers(response, 200, responseBodyRef)
13 diameterHex = resources("aar.hex")
14 #requestBody = resources("aaa-diameterHex.json.in", diameterHex=diameterHex.rstrip())
15 requestBodyDict = { "diameterHex":"{}".format(diameterHex.rstrip()) }
17 responseBodyRef = { "success":"false", "response":"Internal error (check ADML traces): invalid operated host" }
20 response = admlc.postDict("/sendhex2e", requestBodyDict)
23 admlc.assert_response__status_body_headers(response, 200, responseBodyRef)
25 # IT FAILS BECAUSE MESSAGE SENT HAS OCS3 AS ORIGIN HOST, AND THIS IS NOT REGISTERED, SO node-auto COULD NOT DEDUCE THE CORRECT RESOURCE
27 #@pytest.mark.xfail(reason="Server must receive client connection to be available. Component test is very fast and this could fail the first time. Wait and test again. TODO: wait for available status after 'services' loading.")
28 def test_002_given_diameter_hex_representation_i_want_to_send_message_to_diameter_entity_and_check_it_succeed_for_correct_node(resources, admlc):
30 requestBody = { "name":"afHost.afRealm.com" }
31 responseBodyRef = { "success":"true", "response":"Forced node is now 'afHost.afRealm.com'" }
34 response = admlc.postDict("/node", requestBody)
37 admlc.assert_response__status_body_headers(response, 200, responseBodyRef)
39 diameterHex = resources("aar.hex")
40 #requestBody = resources("aaa-diameterHex.json.in", diameterHex=diameterHex.rstrip())
41 requestBodyDict = { "diameterHex":"{}".format(diameterHex.rstrip()) }
43 responseBodyRef = { "success":"true", "response":"Operation processed" }
46 response = admlc.postDict("/sendhex2e", requestBodyDict)
49 admlc.assert_response__status_body_headers(response, 200, responseBodyRef)
51 #@pytest.mark.xfail(reason="Server must receive client connection to be available. Component test is very fast and this could fail the first time. Wait and test again. TODO: wait for available status after 'services' loading.")
52 def test_003_given_diameter_hex_representation_i_want_to_send_message_to_diameter_client_and_check_it_succeed_for_correct_node(resources, admlc):
54 # # WE HAVE TO CONFIGURE THE CLIENT AS OPERATED HOST, BECAUSE HEX SENDING PROCEDURE IS NOT GOING TO UPDATE OPERATED HOST WITH CODEC:
55 # requestBody = { "name":"afHost.afRealm.com" }
56 # responseBodyRef = { "success":"true", "response":"Forced node is now 'afHost.afRealm.com'" }
57 requestBody = { "name":"ownHostId.operatorRealm.com" }
58 responseBodyRef = { "success":"true", "response":"Forced node is now 'ownHostId.operatorRealm.com'" }
61 response = admlc.postDict("/node", requestBody)
64 admlc.assert_response__status_body_headers(response, 200, responseBodyRef)
66 # NORMALLY, AAR IS NOT THE KIND OF MESSAGE TO SEND AS DIAMETER SERVER BUT RAR, etc, BUT THIS IS VALID FOR OUR TESTING
68 # We will use a message which origin-host and destination-host fits the real configured ones in services, and also is ready
69 # to be sent from local diameter server to the client:
70 diameterHex = resources("aarFromOwnToAF.hex")
71 #requestBody = resources("aaa-diameterHex.json.in", diameterHex=diameterHex.rstrip())
72 requestBodyDict = { "diameterHex":"{}".format(diameterHex.rstrip()) }
74 responseBodyRef = { "success":"true", "response":"Operation processed" }
77 response = admlc.postDict("/sendhex2c", requestBodyDict)
80 admlc.assert_response__status_body_headers(response, 200, responseBodyRef)