require_relative "test_helper.rb"
class PackagerTest < Minitest::Test
def test_packager_package_failed
connection = Minitest::Mock.new
faraday = Minitest::Mock.new
response = Minitest::Mock.new
device_config = {
ip: "111.222.333",
user: "user",
password: "password",
logger: Logger.new("/dev/null")
}
payload = {
mysubmit: "Package",
app_name: "app_name",
passwd: "password",
pkg_time: 0
}
package_config ={
app_name_version: "app_name",
out_file: "out_file",
password: "password"
}
path = "/plugin_package"
faraday.expect(:headers, {})
faraday.expect(:request, nil, [:digest, device_config[:user], device_config[:password]])
faraday.expect(:request, nil, [:multipart])
faraday.expect(:request, nil, [:url_encoded])
faraday.expect(:adapter, nil, [Faraday.default_adapter])
connection.expect(:post, response) do |arg1, arg2|
assert_equal path, arg1
assert_equal payload[:mysubmit], arg2[:mysubmit]
assert_equal payload[:app_name], arg2[:app_name]
assert_equal payload[:passwd], arg2[:passwd]
assert_equal payload[:pkg_time], arg2[:pkg_time]
end
response.expect(:body, "Failed: Error.")
packager = RokuBuilder::Packager.new(**device_config)
result = nil
Faraday.stub(:new, connection, faraday) do
Time.stub(:now, Time.at(0)) do
result = packager.package(**package_config)
end
end
assert_equal "Failed: Error.", result
connection.verify
faraday.verify
response.verify
end
def test_packager_package
connection = Minitest::Mock.new
faraday = Minitest::Mock.new
response = Minitest::Mock.new
io = Minitest::Mock.new
device_config = {
ip: "111.222.333",
user: "user",
password: "password",
logger: Logger.new("/dev/null")
}
payload = {
mysubmit: "Package",
app_name: "app_name",
passwd: "password",
pkg_time: 0
}
package_config ={
app_name_version: "app_name",
out_file: "out_file",
password: "password"
}
path = "/plugin_package"
faraday.expect(:headers, {})
faraday.expect(:request, nil, [:digest, device_config[:user], device_config[:password]])
faraday.expect(:request, nil, [:multipart])
faraday.expect(:request, nil, [:url_encoded])
faraday.expect(:adapter, nil, [Faraday.default_adapter])
faraday.expect(:request, nil, [:digest, device_config[:user], device_config[:password]])
faraday.expect(:adapter, nil, [Faraday.default_adapter])
connection.expect(:post, response) do |arg1, arg2|
assert_equal path, arg1
assert_equal payload[:mysubmit], arg2[:mysubmit]
assert_equal payload[:app_name], arg2[:app_name]
assert_equal payload[:passwd], arg2[:passwd]
assert_equal payload[:pkg_time], arg2[:pkg_time]
end
connection.expect(:get, response, ["/pkgs/pkg_url"])
response.expect(:body, "pkg_url")
response.expect(:body, "pkg_url")
response.expect(:status, 200)
response.expect(:body, "package_body")
io.expect(:write, nil, ["package_body"])
packager = RokuBuilder::Packager.new(**device_config)
result = nil
Faraday.stub(:new, connection, faraday) do
Time.stub(:now, Time.at(0)) do
File.stub(:open, nil, io) do
result = packager.package(**package_config)
end
end
end
assert_equal true, result
connection.verify
faraday.verify
response.verify
io.verify
end
end