local c_drive = require('drive.drive_object')
local c_storage_service = require('storage.service')
local class = require('mc.class')
local lu = require('luaunit')
local client = require('storage.client')
TestDriveGetPosition = class(c_storage_service)
function TestDriveGetPosition:test_get_drive_position()
local drive = {
ObjectIdentifier = {
0,
0,
0,
'01010D',
},
}
local board_objs = {
['HddBackplane_01010D'] = {
['Position'] = 'SEU1',
['SilkText'] = 'front',
},
['M2Transfer_010102'] = {
['Position'] = 'chassis',
['NodeId'] = 'chassisM2TransferCard2',
},
}
client.GetBoardObjects = function() end
local ok, position = pcall(c_drive.get_drive_position, drive)
lu.assertEquals(ok, true)
lu.assertEquals(position, 'N/A')
client.GetBoardObjects = function()
return board_objs
end
ok, position = pcall(c_drive.get_drive_position, drive)
lu.assertEquals(ok, true)
lu.assertEquals(position, 'SEU1front')
drive.ObjectIdentifier[4] = '010102'
ok, position = pcall(c_drive.get_drive_position, drive)
lu.assertEquals(ok, true)
lu.assertEquals(position, 'chassisM2TransferCard2')
end
function TestDriveGetPosition:test_update_drive_position()
local tmp = 'xxx'
local drive = {
new_task = function()
return {
loop = function(self, cb)
cb(self)
return {
set_timeout_ms = function() end,
}
end,
}
end,
stop_task = function() end,
}
c_drive.ContainerPhysicalContext = tmp
c_drive.update_drive_physical_context(drive)
lu.assertEquals(c_drive.ContainerPhysicalContext, tmp)
c_drive.ContainerPhysicalContext = ''
c_drive.update_drive_physical_context(drive)
lu.assertEquals(c_drive.ContainerPhysicalContext, '')
end