ESOUI SVN TaosGroupTools

[/] [trunk/] [TaosGroupTools/] [util/] [ZOSMockingHelper.lua] - Rev 80

Compare with Previous | Blame | View Log

--[[
        Addon: util
        Author: TProg Taonnor
        Created by @Taonnor
]]--

-- Version Control
local VERSION = 2

--[[
        Class definition (Static class)
]]--
-- A table in hole lua workspace must be unique
-- The ui helper is global util table, used in several of my addons
-- The table is created as "static" class without constructor and static helper methods
if (TaosZOSMockingHelper == nil or TaosZOSMockingHelper.Version == nil or TaosZOSMockingHelper.Version < VERSION) then
        TaosZOSMockingHelper = {}
        TaosZOSMockingHelper.__index = TaosZOSMockingHelper
    TaosZOSMockingHelper.Version = VERSION

        local _oldGetGroupUnitTagByIndex = nil
    local _oldGetUnitName = nil
    local _oldIsUnitDead = nil
    local _oldIsUnitGrouped = nil
    local _oldGetGroupSize = nil
    local _oldIsUnitInCombat = nil
    local _oldGetUnitPower = nil
    
    --[[
            ===============
        PRIVATE METHODS
        ===============
    ]]--

    --[[
            Mocks GetGroupUnitTagByIndex, returns always "player"
    ]]--
    local function GetGroupUnitTagByIndexMock(i)
        return "waypoint" .. i
    end

    --[[
            Mocks GetUnitName, returns always playerTag if not "player"
    ]]--
    local function GetUnitNameMock(playerTag)
        if (playerTag == "player") then
            return "waypoint1"
        elseif (playerTag == "") then
            return _oldGetUnitName("player")
        else 
            return playerTag
        end
    end

    --[[
            Mocks IsUnitDead, returns randomly unit death
    ]]--
    local function IsUnitDeadMock(playerTag)
        return _oldIsUnitDead("player")
    end

    --[[
            Mocks IsUnitGrouped, returns always player in group
    ]]--
    local function IsUnitGroupedMock(playerTag)
        return true
    end

    --[[
            Mocks GetGroupSize, returns always player in group with 6 players
    ]]--
    local function GetGroupSizeMock()
        return 24
    end
    
    --[[
            Mocks IsUnitInCombatMock, returns always player status
    ]]--
    local function IsUnitInCombatMock(playerTag)
        return _oldIsUnitInCombat("player")
    end
    
    --[[
            Mocks GetUnitPowerMock, returns always player status
    ]]--
    local function GetUnitPowerMock(playerTag, powerType)
        return _oldGetUnitPower("player", powerType)
    end

    --[[
            ==============
        PUBLIC METHODS
        ==============
    ]]--

    --[[
            Mocks needed ZOS methods with mock methods
    ]]--
    function MockZOSMethods()
                -- Mock GetGroupUnitTagByIndex
                _oldGetGroupUnitTagByIndex = GetGroupUnitTagByIndex
                GetGroupUnitTagByIndex = GetGroupUnitTagByIndexMock
                
        -- Mock GetUnitName
        _oldGetUnitName = GetUnitName
        GetUnitName = GetUnitNameMock

        -- Mock IsUnitDead
        _oldIsUnitDead = IsUnitDead
        IsUnitDead = IsUnitDeadMock

        -- Mock IsUnitGrouped
        _oldIsUnitGrouped = IsUnitGrouped
        IsUnitGrouped = IsUnitGroupedMock

        -- Mock GetGroupSize
        _oldGetGroupSize = GetGroupSize
        GetGroupSize = GetGroupSizeMock

        -- Mock IsUnitInCombat
        _oldIsUnitInCombat = IsUnitInCombat
        IsUnitInCombat = IsUnitInCombatMock

        -- Mock GetUnitPower
        _oldGetUnitPower = GetUnitPower
        GetUnitPower = GetUnitPowerMock
    end
end

Compare with Previous | Blame