def test_Processing_Statement6(self): input_code_statement = 'protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException' input_word_tokens = get_list_of_words_from_statement( input_code_statement) actual_output_dict = parse_java_code_line(input_word_tokens) self.assertFalse(actual_output_dict.get('left_side_expression')) self.assertFalse(actual_output_dict.get('right_side_expression')) self.assertEqual(input_code_statement, actual_output_dict.get('statement')) self.assertEqual(line_type_dict.get(2), actual_output_dict.get('statement_type')) self.assertFalse(actual_output_dict.get('java_data_types')) self.assertTrue(actual_output_dict.get('java_return_types')) self.assertEqual(['void'], actual_output_dict.get('java_return_types')) self.assertTrue(actual_output_dict.get('access_modifiers')) self.assertEqual(['protected'], actual_output_dict.get('access_modifiers')) self.assertFalse(actual_output_dict.get('inheritance_type')) self.assertTrue(actual_output_dict.get('exception_type')) self.assertEqual(['throws'], actual_output_dict.get('exception_type')) self.assertTrue(actual_output_dict.get('exceptions_and_inheritances')) self.assertEqual(['ServletException', 'IOException'], actual_output_dict.get('exceptions_and_inheritances')) self.assertFalse(actual_output_dict.get('unknown'))
def test_Processing_Statement5(self): input_code_statement = 'super();' input_word_tokens = get_list_of_words_from_statement( input_code_statement) actual_output_dict = parse_java_code_line(input_word_tokens) self.assertFalse(actual_output_dict.get('left_side_expression')) self.assertFalse(actual_output_dict.get('right_side_expression')) self.assertEqual(input_code_statement, actual_output_dict.get('statement')) self.assertEqual(line_type_dict.get(3), actual_output_dict.get('statement_type')) self.assertFalse(actual_output_dict.get('java_data_types')) self.assertFalse(actual_output_dict.get('java_return_types')) self.assertFalse(actual_output_dict.get('access_modifiers')) self.assertFalse(actual_output_dict.get('inheritance_type')) self.assertFalse(actual_output_dict.get('exceptions_and_inheritances')) self.assertFalse(actual_output_dict.get('unknown'))
def test_Processing_Statement3(self): input_code_statement = 'private static final long serialVersionUID = 1L;' input_word_tokens = get_list_of_words_from_statement( input_code_statement) actual_output_dict = parse_java_code_line(input_word_tokens) self.assertTrue(actual_output_dict.get('left_side_expression')) self.assertEqual('serialVersionUID', actual_output_dict.get('left_side_expression')) self.assertTrue(actual_output_dict.get('right_side_expression')) self.assertEqual('1L;', actual_output_dict.get('right_side_expression')) self.assertEqual(input_code_statement, actual_output_dict.get('statement')) self.assertEqual(line_type_dict.get(1), actual_output_dict.get('statement_type')) self.assertTrue(actual_output_dict.get('java_data_types')) self.assertEqual(['long'], actual_output_dict.get('java_data_types')) self.assertFalse(actual_output_dict.get('java_return_types')) self.assertTrue(actual_output_dict.get('access_modifiers')) self.assertEqual(['private'], actual_output_dict.get('access_modifiers')) self.assertFalse(actual_output_dict.get('inheritance_type')) self.assertFalse(actual_output_dict.get('exceptions_and_inheritances')) self.assertTrue(actual_output_dict.get('unknown')) self.assertEqual(['static', 'final'], actual_output_dict.get('unknown'))
def test_Processing_Statement2(self): input_code_statement = 'public class CustomerFlightDetails extends HttpServlet' input_word_tokens = get_list_of_words_from_statement( input_code_statement) actual_output_dict = parse_java_code_line(input_word_tokens) self.assertFalse(actual_output_dict.get('right_side_expression')) self.assertFalse(actual_output_dict.get('left_side_expression')) self.assertEqual(input_code_statement, actual_output_dict.get('statement')) self.assertEqual(line_type_dict.get(6), actual_output_dict.get('statement_type')) self.assertFalse(actual_output_dict.get('java_data_types')) self.assertFalse(actual_output_dict.get('java_return_types')) self.assertTrue(actual_output_dict.get('access_modifiers')) self.assertEqual(['public'], actual_output_dict.get('access_modifiers')) self.assertTrue(actual_output_dict.get('inheritance_type')) self.assertEqual(['extends'], actual_output_dict.get('inheritance_type')) self.assertTrue(actual_output_dict.get('exceptions_and_inheritances')) self.assertEqual(['HttpServlet'], actual_output_dict.get('exceptions_and_inheritances')) self.assertFalse(actual_output_dict.get('unknown'))
def test_Processing_Statement1(self): input_code_statement = 'String url = "jdbc:mysql://localhost:3306/airline";' input_word_tokens = get_list_of_words_from_statement( input_code_statement) actual_output_dict = parse_java_code_line(input_word_tokens) self.assertEqual('"jdbc:mysql://localhost:3306/airline";', actual_output_dict.get('right_side_expression')) self.assertEqual('url', actual_output_dict.get('left_side_expression')) self.assertEqual(input_code_statement, actual_output_dict.get('statement')) self.assertEqual(line_type_dict.get(1), actual_output_dict.get('statement_type')) self.assertTrue(actual_output_dict.get('java_data_types')) self.assertFalse(actual_output_dict.get('java_return_types')) self.assertFalse(actual_output_dict.get('access_modifiers')) self.assertFalse(actual_output_dict.get('inheritance_type')) self.assertFalse(actual_output_dict.get('exceptions_and_inheritances')) self.assertFalse(actual_output_dict.get('unknown'))
#Make sense of all the code extracted. Loop through each of the lines code_extracted and tokenize them code_dict = {} for key in code_extracted: code_dict[key] = get_list_of_words_from_statement(code_extracted.get(key)) #Step 4 - Order the code lines. Ignore line number from now on code_lines_list = [code_dict.get(key) for key in sorted(code_dict.iterkeys())] #Step 4 - Run the extracted dictionary on the java parser to identify key java elements user_input_feature = training_features_dict.get(user_input_dict.get('feature')) user_provided_line = code_extracted.get(user_input_dict.get("line_number")) user_provided_line_info = {} metadata_info = [] print("******Beginning to parse for information******") for line in code_lines_list: parsed_line_dict = parse_java_code_line(line) if (parsed_line_dict.get('statement') == user_provided_line): user_provided_line_info = parsed_line_dict else: metadata_info.append(parsed_line_dict) print("Trained Feature = {}".format(user_input_feature)) print print("User Provided Line = {}".format(user_provided_line)) print print("Line Info = {}".format(user_provided_line_info)) print print("Metadata Info = {}".format(metadata_info)) print