Example #1
0
 def test_entire_class(self):
     """Tests to see whether it returns an empty list when the provided
     file is not compatible."""
     expected_classes = []
     file_dir = str.format("{}/testing_files/test_file_bad.js",
                           self.current_dir).replace("\\", "/")
     js_file = self.file_reader.get_file_contents(file_dir)
     parser_director = ParserDirector(JSParserBuilder())
     self.parser = parser_director.make_parser(js_file)
     actual_classes = self.parser.get_classes()
     self.assertEqual(expected_classes, actual_classes)
Example #2
0
 def test_class_no_methods(self):
     """Tests to see whether it can correctly read a js file with an empty
     constructor."""
     expected_class = {'name': 'TestClass', 'attributes': [], 'methods': []}
     file_dir = str.format("{}/testing_files/test_file_6.js",
                           self.current_dir).replace("\\", "/")
     js_file = self.file_reader.get_file_contents(file_dir)
     parser_director = ParserDirector(JSParserBuilder())
     self.parser = parser_director.make_parser(js_file)
     actual_class = self.parser.get_classes()[0]
     self.assertEqual(expected_class, actual_class)
Example #3
0
 def test_entire_dir(self):
     """Tests to see whether it can read an entire directory and extract
     all the classes."""
     expected_class_count = 4
     dir = str.format("{}/testing_files/test_four_classes",
                      self.current_dir).replace("\\", "/")
     self.dir_reader.set_directory(dir)
     for aDir in self.dir_reader.get_file_dirs():
         js_file = self.file_reader.get_file_contents(aDir)
         parser_director = ParserDirector(JSParserBuilder())
         self.parser = parser_director.make_parser(js_file)
     actual_class_count = len(self.parser.get_classes())
     self.assertEqual(expected_class_count, actual_class_count)
Example #4
0
 def test_multiple_classes(self):
     """Tests to see whether it can correctly read a js file with multiple
     classes."""
     expected_classes = [{
         'name': 'TestClass1',
         'attributes': ['attribute1', 'attribute2'],
         'methods': ['constructor']
     }, {
         'name': 'TestClass2',
         'attributes': ['attribute1', 'attribute2'],
         'methods': ['constructor']
     }, {
         'name': 'TestClass3',
         'attributes': ['attribute1', 'attribute2'],
         'methods': ['constructor']
     }]
     file_dir = str.format("{}/testing_files/test_file_2.js",
                           self.current_dir).replace("\\", "/")
     js_file = self.file_reader.get_file_contents(file_dir)
     parser_director = ParserDirector(JSParserBuilder())
     self.parser = parser_director.make_parser(js_file)
     actual_classes = self.parser.get_classes()
     self.assertEqual(expected_classes, actual_classes)
Example #5
0
 def do_create_uml(self, arg):
     """This command uses all the information provided so far and will
     produce a diagram based on input. """
     directory = arg.replace("\\", "/")
     if self.dir_reader.is_valid_dir(directory) \
             or self.dir_reader.is_valid_file(directory) \
             and self.selected_file_type \
             and self.selected_output_dir is True:
         for file in listdir(directory):
             file_dir = "{}/{}".format(directory, file)
             if file_dir.endswith(".js"):
                 self.file_reader = JSFileReader()
                 a_file = self.file_reader.get_file_contents(file_dir)
                 parser_director = ParserDirector(JSParserBuilder())
                 self.parser = parser_director.make_parser(a_file)
             else:
                 self.file_reader = PYFileReader()
                 parser_director = ParserDirector(PYParserBuilder())
                 a_file = self.file_reader.get_file_contents(file_dir)
                 self.parser = parser_director.make_parser(a_file)
             for aClass in self.parser.get_classes():
                 print(aClass)
     else:
         print("Set output dir, file type, or provide valid input dir.")