91 lines
1.9 KiB
Lua
91 lines
1.9 KiB
Lua
--[[
|
|
Mock network implementation that returns values in the expected
|
|
formats, or returns promise rejections if specified
|
|
]]
|
|
local Promise = require(script.Parent.Parent.Promise)
|
|
|
|
local function getProductInfo(id, infoType)
|
|
return Promise.resolve({
|
|
AssetId = 1,
|
|
AssetTypeId = 2,
|
|
ContentRatingTypeId = 0,
|
|
Creator = {
|
|
CreatorType = "Group",
|
|
CreatorTargetId = 1,
|
|
Name = "ROBLOX",
|
|
Id = 1,
|
|
},
|
|
Description = "This item isn't real!",
|
|
IconImageAssetId = 1,
|
|
IsForSale = true,
|
|
IsLimited = false,
|
|
IsLimitedUnique = false,
|
|
IsNew = false,
|
|
IsPublicDomain = false,
|
|
MinimumMembershipLevel = 0,
|
|
Name = "Test Item",
|
|
PriceInRobux = 100,
|
|
ProductId = 1,
|
|
})
|
|
end
|
|
|
|
local function getPlayerOwns(player, id, infoType)
|
|
return Promise.resolve(false)
|
|
end
|
|
|
|
local function performPurchase(infoType, productId, expectedPrice, requestId)
|
|
return Promise.resolve({
|
|
success = true,
|
|
receipt = "fake-receipt-hash",
|
|
})
|
|
end
|
|
|
|
local function loadAssetForEquip(assetId)
|
|
return Promise.resolve(Instance.new("Tool"))
|
|
end
|
|
|
|
local function getAccountInfo()
|
|
return Promise.resolve({
|
|
RobuxBalance = 2147483647,
|
|
MembershipType = 0,
|
|
})
|
|
end
|
|
|
|
local function networkFailure(id, infoType)
|
|
return Promise.reject("Failed to access network service")
|
|
end
|
|
|
|
local MockNetwork = {}
|
|
MockNetwork.__index = MockNetwork
|
|
|
|
function MockNetwork.new(shouldFail)
|
|
local mockNetworkService
|
|
|
|
if shouldFail then
|
|
mockNetworkService = {
|
|
getProductInfo = networkFailure,
|
|
getPlayerOwns = networkFailure,
|
|
performPurchase = networkFailure,
|
|
loadAssetForEquip = networkFailure,
|
|
getAccountInfo = networkFailure,
|
|
}
|
|
else
|
|
mockNetworkService = {
|
|
getProductInfo = getProductInfo,
|
|
getPlayerOwns = getPlayerOwns,
|
|
performPurchase = performPurchase,
|
|
loadAssetForEquip = loadAssetForEquip,
|
|
getAccountInfo = getAccountInfo,
|
|
}
|
|
end
|
|
|
|
setmetatable(mockNetworkService, {
|
|
__tostring = function()
|
|
return "MockService(Network)"
|
|
end
|
|
})
|
|
|
|
return mockNetworkService
|
|
end
|
|
|
|
return MockNetwork |