Пример #1
0
    def __createSampleProgramExecution__(self):
        myProgramExecution = ProgramExecution("Python")
        
        mod = LanguageObject(1, LanguageType.MODULE, LanguageObject.DECLARATION_TYPES.FIXED_VALUE, asJsonString('mod1.mod2.mod3'))
        myProgramExecution.addLanguageObject(mod)
        
        cls =  LanguageObject(2, LanguageType.CLASS, LanguageObject.DECLARATION_TYPES.CONSTRUCTOR, asJsonString('Class1'), mod)
        myProgramExecution.addLanguageObject(cls)

        obj =  LanguageObject(3, LanguageType.INSTANCE, LanguageObject.DECLARATION_TYPES.FIXED_VALUE, asJsonString(5), cls)
        myProgramExecution.addLanguageObject(obj)
        obj2 =  LanguageObject(4, LanguageType.INSTANCE, LanguageObject.DECLARATION_TYPES.FIXED_VALUE, asJsonString(25), cls)
        myProgramExecution.addLanguageObject(obj2)
        obj3 =  LanguageObject(5, LanguageType.INSTANCE, LanguageObject.DECLARATION_TYPES.CONSTRUCTOR, asJsonString('Gerva'), cls)
        myProgramExecution.addLanguageObject(obj3)
        
        argsList = []
        argsList.append(Argument(obj))
        argsList.append(Argument(obj2, "paramName"))
        
        MT = FunctionCall.MethodType
        aCall3 = FunctionCall(3, obj3, "__init__", MT.CONSTRUCTOR, argsList, 2, obj2)
        aCall4 = FunctionCall(4, obj3, "obj_fun", MT.METHOD, argsList, 1, obj3, True)
        
        myProgramExecution.addFunctionCall(aCall3)
        myProgramExecution.addFunctionCall(aCall4)
        
        return myProgramExecution
 def testProgramExecution(self):
     
     myProgramExecution = ProgramExecution("Python")
             
     theLanguageTypes = myProgramExecution.getLanguageTypes()
     self.assertEqual(LanguageType.NONE, theLanguageTypes[LanguageType.NONE])
     self.assertEqual(LanguageType.MODULE, theLanguageTypes[LanguageType.MODULE])
     self.assertEqual(LanguageType.CLASS, theLanguageTypes[LanguageType.CLASS])
     self.assertEqual(LanguageType.INSTANCE, theLanguageTypes[LanguageType.INSTANCE])
     
     mod = LanguageObject(1, LanguageType.MODULE, LanguageObject.DECLARATION_TYPES.FIXED_VALUE, "mod1.mod2.mod3" )
     myProgramExecution.addLanguageObject(mod)
     
     cls =  LanguageObject(2, LanguageType.CLASS, LanguageObject.DECLARATION_TYPES.FIXED_VALUE, "Class1", mod)
     myProgramExecution.addLanguageObject(cls)
     
     #test duplicated id
     def languageObjectWithDuplicatedId(aProgramExecution, cls):
         obj =  LanguageObject(2, LanguageType.INSTANCE, LanguageObject.DECLARATION_TYPES.FIXED_VALUE, "5", cls)
         aProgramExecution.addLanguageObject(obj)
                 
     self.assertRaises(DuplicatedLanguageObjectIdException, languageObjectWithDuplicatedId, myProgramExecution, cls)
     
     obj =  LanguageObject(3, LanguageType.INSTANCE, LanguageObject.DECLARATION_TYPES.FIXED_VALUE, "5", cls)
     myProgramExecution.addLanguageObject(obj)
     obj2 =  LanguageObject(4, LanguageType.INSTANCE, LanguageObject.DECLARATION_TYPES.FIXED_VALUE, "25", cls)
     myProgramExecution.addLanguageObject(obj2)
     obj3 =  LanguageObject(5, LanguageType.INSTANCE, LanguageObject.DECLARATION_TYPES.CONSTRUCTOR, "", cls)
     myProgramExecution.addLanguageObject(obj3)
     
     argsList = []
     argsList.append(Argument(obj))
     argsList.append(Argument(obj2, "paramName"))
     
     MT = FunctionCall.MethodType
     aCall = FunctionCall(1, mod, "fun", MT.METHOD, argsList, 0)
     aCall2 = FunctionCall(2, cls, "cls_fun", MT.CLASS_METHOD, argsList, 1)
     aCall3 = FunctionCall(3, obj3, "__init__", MT.CONSTRUCTOR, argsList, 0)
     aCall4 = FunctionCall(4, obj3, "obj_fun", MT.METHOD, argsList, 0)
     
     myProgramExecution.addFunctionCall(aCall)
     myProgramExecution.addFunctionCall(aCall2)
     myProgramExecution.addFunctionCall(aCall3)
     
     self.assertEquals( myProgramExecution.getLanguage(), "Python")
     theLanguageObejcts = myProgramExecution.getLanguageObjects()
     
     self.assertEquals( theLanguageObejcts[1], mod)
     self.assertEquals( theLanguageObejcts[2], cls)
     self.assertEquals( theLanguageObejcts[3], obj)
     self.assertEquals( theLanguageObejcts[4], obj2)
     self.assertEquals( theLanguageObejcts[5], obj3)
     
     theCalls = myProgramExecution.getFunctionCalls()
     self.assertEquals(theCalls[0], aCall)
     self.assertEquals(theCalls[1], aCall2)
     self.assertEquals(theCalls[2], aCall3)
    def testProgramExecution(self):

        myProgramExecution = ProgramExecution("Python")

        theLanguageTypes = myProgramExecution.getLanguageTypes()
        self.assertEqual(LanguageType.NONE,
                         theLanguageTypes[LanguageType.NONE])
        self.assertEqual(LanguageType.MODULE,
                         theLanguageTypes[LanguageType.MODULE])
        self.assertEqual(LanguageType.CLASS,
                         theLanguageTypes[LanguageType.CLASS])
        self.assertEqual(LanguageType.INSTANCE,
                         theLanguageTypes[LanguageType.INSTANCE])

        mod = LanguageObject(1, LanguageType.MODULE,
                             LanguageObject.DECLARATION_TYPES.FIXED_VALUE,
                             "mod1.mod2.mod3")
        myProgramExecution.addLanguageObject(mod)

        cls = LanguageObject(2, LanguageType.CLASS,
                             LanguageObject.DECLARATION_TYPES.FIXED_VALUE,
                             "Class1", mod)
        myProgramExecution.addLanguageObject(cls)

        #test duplicated id
        def languageObjectWithDuplicatedId(aProgramExecution, cls):
            obj = LanguageObject(2, LanguageType.INSTANCE,
                                 LanguageObject.DECLARATION_TYPES.FIXED_VALUE,
                                 "5", cls)
            aProgramExecution.addLanguageObject(obj)

        self.assertRaises(DuplicatedLanguageObjectIdException,
                          languageObjectWithDuplicatedId, myProgramExecution,
                          cls)

        obj = LanguageObject(3, LanguageType.INSTANCE,
                             LanguageObject.DECLARATION_TYPES.FIXED_VALUE, "5",
                             cls)
        myProgramExecution.addLanguageObject(obj)
        obj2 = LanguageObject(4, LanguageType.INSTANCE,
                              LanguageObject.DECLARATION_TYPES.FIXED_VALUE,
                              "25", cls)
        myProgramExecution.addLanguageObject(obj2)
        obj3 = LanguageObject(5, LanguageType.INSTANCE,
                              LanguageObject.DECLARATION_TYPES.CONSTRUCTOR, "",
                              cls)
        myProgramExecution.addLanguageObject(obj3)

        argsList = []
        argsList.append(Argument(obj))
        argsList.append(Argument(obj2, "paramName"))

        MT = FunctionCall.MethodType
        aCall = FunctionCall(1, mod, "fun", MT.METHOD, argsList, 0)
        aCall2 = FunctionCall(2, cls, "cls_fun", MT.CLASS_METHOD, argsList, 1)
        aCall3 = FunctionCall(3, obj3, "__init__", MT.CONSTRUCTOR, argsList, 0)
        aCall4 = FunctionCall(4, obj3, "obj_fun", MT.METHOD, argsList, 0)

        myProgramExecution.addFunctionCall(aCall)
        myProgramExecution.addFunctionCall(aCall2)
        myProgramExecution.addFunctionCall(aCall3)

        self.assertEquals(myProgramExecution.getLanguage(), "Python")
        theLanguageObejcts = myProgramExecution.getLanguageObjects()

        self.assertEquals(theLanguageObejcts[1], mod)
        self.assertEquals(theLanguageObejcts[2], cls)
        self.assertEquals(theLanguageObejcts[3], obj)
        self.assertEquals(theLanguageObejcts[4], obj2)
        self.assertEquals(theLanguageObejcts[5], obj3)

        theCalls = myProgramExecution.getFunctionCalls()
        self.assertEquals(theCalls[0], aCall)
        self.assertEquals(theCalls[1], aCall2)
        self.assertEquals(theCalls[2], aCall3)
    def __createSampleProgramExecution__(self):
        myProgramExecution = ProgramExecution("Python")

        mod = LanguageObject(
            1, LanguageType.MODULE, LanguageObject.DECLARATION_TYPES.FIXED_VALUE, asJsonString("mod1.mod2.mod3")
        )
        myProgramExecution.addLanguageObject(mod)

        cls = LanguageObject(
            2, LanguageType.CLASS, LanguageObject.DECLARATION_TYPES.CONSTRUCTOR, asJsonString("Class1"), mod
        )
        myProgramExecution.addLanguageObject(cls)

        obj = LanguageObject(
            3, LanguageType.INSTANCE, LanguageObject.DECLARATION_TYPES.FIXED_VALUE, asJsonString(5), cls
        )
        myProgramExecution.addLanguageObject(obj)
        obj2 = LanguageObject(
            4, LanguageType.INSTANCE, LanguageObject.DECLARATION_TYPES.FIXED_VALUE, asJsonString(25), cls
        )
        myProgramExecution.addLanguageObject(obj2)
        obj3 = LanguageObject(
            5, LanguageType.INSTANCE, LanguageObject.DECLARATION_TYPES.CONSTRUCTOR, asJsonString("Gerva"), cls
        )
        myProgramExecution.addLanguageObject(obj3)

        argsList = []
        argsList.append(Argument(obj))
        argsList.append(Argument(obj2, "paramName"))

        MT = FunctionCall.MethodType
        aCall3 = FunctionCall(3, obj3, "__init__", MT.CONSTRUCTOR, argsList, 2, obj2)
        aCall4 = FunctionCall(4, obj3, "obj_fun", MT.METHOD, argsList, 1, obj3, True)

        myProgramExecution.addFunctionCall(aCall3)
        myProgramExecution.addFunctionCall(aCall4)

        return myProgramExecution