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')
Exemple #4
0
    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
Exemple #7
0
    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