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 __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)