require 'test_helper' require 'solusvm/cli' class TestResellerCLI < Test::Unit::TestCase def setup # Prevents mocha from stubbing non existent methods so that we now if the CLI is failing because # something was moved around. Mocha::Configuration.prevent(:stubbing_non_existent_method) end def test_should_delegate_reseller_create_to_reseller SolusVM::Reseller.expects(:new).with(solusvm_params).returns(mock do expects(:successful?).returns(true) expects(:create).with() do |options| expected = { username: "theusername", password: "thepassword", email: "theemail", firstname: "thefirstname", lastname: "thelastname", company: "thecompany", usernameprefix: "theusernameprefix", maxvps: "themaxvps", maxusers: "themaxusers", maxmem: "themaxmem", maxburst: "themaxburst", maxdisk: "themaxdisk", maxbw: "themaxbw", maxipv4: "themaxipv4", maxipv6: "themaxipv6", nodegroups: "thenodegroups", mediagroups: "themediagroups", openvz: "theopenvz", xenpv: "thexenpv", xenhvm: "thexenhvm", kvm: "thekvm" } expected.all? { |k,v| options[k] == v } end.returns("theresult") end) $stdout.expects(:puts).with("theresult") SolusVM::CLI.start(cli_expand_base_arguments([ "reseller", "create", "--username", "theusername", "--password", "thepassword", "--email", "theemail", "--firstname", "thefirstname", "--lastname", "thelastname", "--company", "thecompany", "--usernameprefix", "theusernameprefix", "--maxvps", "themaxvps", "--maxusers", "themaxusers", "--maxmem", "themaxmem", "--maxburst", "themaxburst", "--maxdisk", "themaxdisk", "--maxbw", "themaxbw", "--maxipv4", "themaxipv4", "--maxipv6", "themaxipv6", "--nodegroups", "thenodegroups", "--mediagroups", "themediagroups", "--openvz", "theopenvz", "--xenpv", "thexenpv", "--xenhvm", "thexenhvm", "--kvm", "thekvm" ])) end def test_should_delegate_reseller_change_resources_to_reseller SolusVM::Reseller.expects(:new).with(solusvm_params).returns(mock do expects(:successful?).returns(true) expects(:change_resources).with() do |options| expected = { maxvps: "themaxvps", maxusers: "themaxusers", maxmem: "themaxmem", maxburst: "themaxburst", maxdisk: "themaxdisk", maxbw: "themaxbw", maxipv4: "themaxipv4", maxipv6: "themaxipv6", nodegroups: "thenodegroups", mediagroups: "themediagroups", openvz: "theopenvz", xenpv: "thexenpv", xenhvm: "thexenhvm", kvm: "thekvm" } expected.all? { |k,v| options[k] == v } end.returns("theresult") end) $stdout.expects(:puts).with("theresult") SolusVM::CLI.start(cli_expand_base_arguments([ "reseller", "change-resources", "--maxvps", "themaxvps", "--maxusers", "themaxusers", "--maxmem", "themaxmem", "--maxburst", "themaxburst", "--maxdisk", "themaxdisk", "--maxbw", "themaxbw", "--maxipv4", "themaxipv4", "--maxipv6", "themaxipv6", "--nodegroups", "thenodegroups", "--mediagroups", "themediagroups", "--openvz", "theopenvz", "--xenpv", "thexenpv", "--xenhvm", "thexenhvm", "--kvm", "thekvm" ])) end def test_should_delegate_reseller_info_to_reseller SolusVM::Reseller.expects(:new).with(solusvm_params).returns(mock do expects(:successful?).returns(true) expects(:info).with("theusername").returns("theresult") end) $stdout.expects(:puts).with("theresult") SolusVM::CLI.start(cli_expand_base_arguments(["reseller", "info", "theusername"])) end def test_should_delegate_reseller_delete_to_reseller SolusVM::Reseller.expects(:new).with(solusvm_params).returns(mock do expects(:successful?).returns(true) expects(:delete).with("theusername").returns("theresult") end) $stdout.expects(:puts).with("theresult") SolusVM::CLI.start(cli_expand_base_arguments(["reseller", "delete", "theusername"])) end def test_should_delegate_reseller_list_to_reseller SolusVM::Reseller.expects(:new).with(solusvm_params).returns(mock do expects(:successful?).returns(true) expects(:list).returns("theresult") end) $stdout.expects(:puts).with("theresult") SolusVM::CLI.start(cli_expand_base_arguments(["reseller", "list"])) end end