def _buildCar(self) -> ClassDefinition: car: ClassDefinition = ClassDefinition(name='Car', position=Position(107, 30), size=Size(width=266, height=100)) initMethodDef: MethodDefinition = self._buildInitMethod() descMethodDef: MethodDefinition = MethodDefinition( name='getDescriptiveName', visibility=DefinitionType.Public) odometerMethodDef: MethodDefinition = MethodDefinition( name='readOdometer', visibility=DefinitionType.Public) updateOdoMethodDef: MethodDefinition = MethodDefinition( name='updateOdometer', visibility=DefinitionType.Public) incrementMethodDef: MethodDefinition = MethodDefinition( name='incrementOdometer', visibility=DefinitionType.Protected) mileageParam: ParameterDefinition = ParameterDefinition( name='mileage', defaultValue='1') updateOdoMethodDef.parameters = [mileageParam] milesParam: ParameterDefinition = ParameterDefinition( name='miles', parameterType='int') incrementMethodDef.parameters = [milesParam] car.methods = [ initMethodDef, descMethodDef, odometerMethodDef, updateOdoMethodDef, incrementMethodDef ] return car
def _buildInitMethod(self) -> MethodDefinition: initMethodDef: MethodDefinition = MethodDefinition( name='__init__', visibility=DefinitionType.Public) initParam: ParameterDefinition = ParameterDefinition( name='make', parameterType='str', defaultValue='') modelParam: ParameterDefinition = ParameterDefinition( name='model', parameterType='str', defaultValue='') yearParam: ParameterDefinition = ParameterDefinition( name='year', parameterType='int', defaultValue='1957') initMethodDef.parameters = [initParam, modelParam, yearParam] return initMethodDef
def testBasicMethod(self): baseName: str = f'{TestConstants.TEST_FILE_NAME}-BasicMethod' fileName: str = f'{baseName}.{ImageFormat.PNG.value}' diagram: ImageDiagram = ImageDiagram(fileName=f'{fileName}') position: Position = Position(107, 30) size: Size = Size(width=266, height=100) car: ClassDefinition = ClassDefinition(name='Car', position=position, size=size) initMethodDef: MethodDefinition = MethodDefinition( name='__init__', visibility=DefinitionType.Public) initParam: ParameterDefinition = ParameterDefinition( name='make', parameterType='str', defaultValue='') initMethodDef.parameters = [initParam] car.methods = [initMethodDef] diagram.drawClass(car) diagram.write() self._assertIdenticalFiles( baseName=baseName, generatedFileName=fileName, failMessage='Basic Method image file should be identical')
def testBasicMethod(self): baseName: str = f'{TestConstants.TEST_FILE_NAME}-BasicMethod' fileName: str = f'{baseName}{TestConstants.TEST_SUFFIX}' diagram: PdfDiagram = PdfDiagram(fileName=f'{fileName}', dpi=TestConstants.TEST_DPI) position: Position = Position(107, 30) size: Size = Size(width=266, height=100) car: ClassDefinition = ClassDefinition(name='Car', position=position, size=size) car.displayMethodParameters = DisplayMethodParameters.DISPLAY initMethodDef: MethodDefinition = MethodDefinition(name='__init__', visibility=DefinitionType.Public) initParam: ParameterDefinition = ParameterDefinition(name='make', parameterType='str', defaultValue='') initMethodDef.parameters = [initParam] car.methods = [initMethodDef] diagram.drawClass(car) diagram.docTimeStamp = self.unitTestTimeStamp diagram.write() self._assertIdenticalFiles(baseName=baseName, generatedFileName=fileName, failMessage='Basic Method should be identical')
def _buildElectricCar(self) -> ClassDefinition: electricCar: ClassDefinition = ClassDefinition(name='ElectricCar', position=Position( 52, 224), size=Size(width=173, height=64)) initMethod: MethodDefinition = MethodDefinition(name='__init__') descMethod: MethodDefinition = MethodDefinition(name='describeBattery') makeParameter: ParameterDefinition = ParameterDefinition(name='make') modelParameter: ParameterDefinition = ParameterDefinition(name='model') yearParameter: ParameterDefinition = ParameterDefinition(name='year') initMethod.parameters = [makeParameter, modelParameter, yearParameter] electricCar.methods = [initMethod, descMethod] return electricCar
def _buildNameTestCase(self) -> ClassDefinition: namesTest: ClassDefinition = ClassDefinition(name='NamesTestCase', position=Position( 409, 362), size=Size(height=65, width=184)) testFirst: MethodDefinition = MethodDefinition(name='testFirstLasName') formattedName: MethodDefinition = MethodDefinition( name='getFormattedName') firstParam: ParameterDefinition = ParameterDefinition(name='first') lastParam: ParameterDefinition = ParameterDefinition(name='last') formattedName.parameters = [firstParam, lastParam] namesTest.methods = [testFirst, formattedName] return namesTest
def _getParam(self, xmlParam: Element) -> ParameterDefinition: paramName: str = xmlParam.getAttribute(ATTR_NAME) paramType: str = xmlParam.getAttribute(ATTR_TYPE) defaultValue: str = xmlParam.getAttribute(ATTR_DEFAULT_VALUE) self.logger.debug(f'{paramName=} {paramType=} {defaultValue=}') parameterDefinition: ParameterDefinition = ParameterDefinition( name=paramName, parameterType=paramType) parameterDefinition.defaultValue = defaultValue return parameterDefinition
def __addParameters(self, methodDefinition: MethodDefinition, pyutMethod: PyutMethod) -> MethodDefinition: parameters: Parameters = [] for parameter in pyutMethod.parameters: paramDef: ParameterDefinition = ParameterDefinition(name=parameter.name) paramDef.parameterType = parameter.type.value paramDef.defaultValue = parameter.defaultValue parameters.append(paramDef) methodDefinition.parameters = parameters self.logger.info(f'{methodDefinition.name=} {parameters=}') return methodDefinition
def _buildOpie(self) -> ClassDefinition: opie: ClassDefinition = ClassDefinition(name='Opie', position=Position(495, 208), size=Size(width=216, height=87)) publicMethod: MethodDefinition = MethodDefinition( name='publicMethod', visibility=DefinitionType.Public, returnType='bool') paramDef: ParameterDefinition = ParameterDefinition( name='param', parameterType='float', defaultValue='23.0') publicMethod.parameters = [paramDef] opie.methods = [publicMethod] return opie