class AnalyzedTestClassGenerator

Public Class Methods

new(analyzedClasses, analyzedTestClasses, testCaseDirectory) click to toggle source
# File lib/AnalyzedClassGenerator.rb, line 123
def initialize (analyzedClasses, analyzedTestClasses, testCaseDirectory)
        @analyzedClasses = analyzedClasses
        @analyzedTestClasses = analyzedTestClasses
        @testCaseDirectory = testCaseDirectory
end

Public Instance Methods

analyzedTestClassWithName(name) click to toggle source
# File lib/AnalyzedClassGenerator.rb, line 208
def analyzedTestClassWithName (name)
        for testClass in @analyzedTestClasses
                if testClass.name == name.strip
                        return testClass
                end
        end
        return nil
end
generateAnalyzedTestClasses() click to toggle source
# File lib/AnalyzedClassGenerator.rb, line 129
def generateAnalyzedTestClasses
        testedFunctionsMap = Hash.new
        curlyBraces = 0
        count = 0
        funcCurlyBraces = 0
        funcLines = 0
        name = nil
        testClass = nil
        Dir.glob("#{@testCaseDirectory}/**/*.swift") do |item|
                next if item == '.' or item == '..'
                f = File.open(item, "r")
                f.each_line do |line|
                        tempName = AnalyzedClassGenerator.new.classNameForLine line, name
                        if tempName != nil 
                                name = tempName
                        end

                        if name != nil
                                if line.include? "{"
                                        curlyBraces = curlyBraces + 1
                                end

                                if line.include? "}"
                                        curlyBraces = curlyBraces - 1
                                end

                                if testClass == nil 
                                        testClass = analyzedTestClassWithName name
                                end

                                variable = variableForLine testClass, line
                                if variable
                                        for analyzedClass in @analyzedClasses

                                     if variable.type == analyzedClass.name

                                             for function in analyzedClass.functions

                                                     if line.include? function.name
                                                             # instance function
                                                             analyzedClass.addTestedFunction function
                                                                end

                                             end

                                     end

                             end
                                elsif line.strip.length > 9

                                for analyzedClass in @analyzedClasses

                                    if line.include? analyzedClass.name

                                             for function in analyzedClass.functions
                                                     if line.include? function.name
                                                             # Class function
                                                             analyzedClass.addTestedFunction function
                                                                end
                                             end

                                     end

                                end

                                end

                                if curlyBraces == 0
                                        testClass = nil
                                        name = nil
                                        curlyBraces = 0
                                end
                        end
                end
                f.close
        end
        return testedFunctionsMap
end
variableForLine(testClass, line) click to toggle source
# File lib/AnalyzedClassGenerator.rb, line 217
def variableForLine (testClass, line)
        for variable in testClass.variablesWithType
                if line.include? variable.name
                        return variable
                end
        end
        return nil
end