@@ -97,4 +97,62 @@ def test_exception_handling(self, mock_logger, mock_firehose_logger):
9797 self .assertEqual (logged_info ['resource_path' ], '/failed_test' )
9898 self .assertEqual (logged_info ['error' ], str (ValueError ("Test error" )))
9999 self .assertEqual (logged_info ['local_id' ], '12345^http://test' )
100- self .assertEqual (logged_info ['vaccine_type' ], 'FLU' )
100+ self .assertEqual (logged_info ['vaccine_type' ], 'FLU' )
101+
102+ def test_invalid_body (self , mock_logger , mock_firehose_logger ):
103+ # Arrange
104+ wrapped_function = function_info (self .mock_success_function )
105+ event = {
106+ 'headers' : {
107+ 'X-Correlation-ID' : 'test_correlation' ,
108+ 'X-Request-ID' : 'test_request' ,
109+ 'SupplierSystem' : 'test_supplier'
110+ },
111+ 'path' : '/test' ,
112+ 'requestContext' : {'resourcePath' : '/test' },
113+ 'body' : "{\" identifier\" : [{\" system\" : \" http://test\" , \" value\" : \" 12345\" }], \" protocolApplied\" : []}"
114+ }
115+
116+ # Act
117+ result = wrapped_function (event , {})
118+
119+ # Assert
120+ args , kwargs = mock_logger .info .call_args
121+ logged_info = json .loads (args [0 ])
122+
123+ self .assertEqual (logged_info ['X-Correlation-ID' ], 'test_correlation' )
124+ self .assertEqual (logged_info ['X-Request-ID' ], 'test_request' )
125+ self .assertEqual (logged_info ['supplier' ], 'test_supplier' )
126+ self .assertEqual (logged_info ['actual_path' ], '/test' )
127+ self .assertEqual (logged_info ['resource_path' ], '/test' )
128+ self .assertNotIn ('local_id' , logged_info )
129+ self .assertNotIn ('vaccine_type' , logged_info )
130+
131+ def test_nonexistent_body (self , mock_logger , mock_firehose_logger ):
132+ # Arrange
133+ wrapped_function = function_info (self .mock_success_function )
134+ event = {
135+ 'headers' : {
136+ 'X-Correlation-ID' : 'test_correlation' ,
137+ 'X-Request-ID' : 'test_request' ,
138+ 'SupplierSystem' : 'test_supplier'
139+ },
140+ 'path' : '/test' ,
141+ 'requestContext' : {'resourcePath' : '/test' }
142+ }
143+
144+ # Act
145+ result = wrapped_function (event , {})
146+
147+ # Assert
148+ args , kwargs = mock_logger .info .call_args
149+ logged_info = json .loads (args [0 ])
150+
151+ self .assertEqual (logged_info ['X-Correlation-ID' ], 'test_correlation' )
152+ self .assertEqual (logged_info ['X-Request-ID' ], 'test_request' )
153+ self .assertEqual (logged_info ['supplier' ], 'test_supplier' )
154+ self .assertEqual (logged_info ['actual_path' ], '/test' )
155+ self .assertEqual (logged_info ['resource_path' ], '/test' )
156+ self .assertNotIn ('local_id' , logged_info )
157+ self .assertNotIn ('vaccine_type' , logged_info )
158+
0 commit comments