#encoding: utf-8 require "spec_helper" describe "template" do before :all do @hostgroup = gen_name "hostgroup" @hostgroupid = zbx.hostgroups.create(:name => @hostgroup) end context "when name not exists" do before do @template = gen_name "template" end describe "create" do it "should return integer id" do templateid = zbx.templates.create( :host => @template, :groups => [:groupid => @hostgroupid] ) templateid.should be_kind_of(Integer) end end describe "get_id" do it "should return nil" do expect(zbx.templates.get_id(:host => @template)).to be_kind_of(NilClass) end end end context "when name exists" do before :all do @template = gen_name "template" @templateid = zbx.templates.create( :host => @template, :groups => [:groupid => @hostgroupid] ) end describe "get_or_create" do it "should return id of template" do expect(zbx.templates.get_or_create( :host => @template, :groups => [:groupid => @hostgroupid] )).to eq @templateid end end describe "get_full_data" do it "should contains created template" do expect(zbx.templates.get_full_data(:host => @template)[0]).to include("host" => @template) end end describe "get_id" do it "should return id of template" do expect(zbx.templates.get_id(:host => @template)).to eq @templateid end end describe "all" do it "should contains template" do zbx.templates.all.should include(@template => @templateid.to_s) end end describe "delete" do it "should return id" do template = gen_name "template" templateid = zbx.templates.create( :host => template, :groups => [:groupid => @hostgroupid] ) zbx.templates.delete(templateid).should eq templateid end end context "host related operations" do before :all do @host = gen_name 'host' @hostid = zbx.hosts.create( :host => @host, :interfaces => [ { :type => 1, :main => 1, :ip => "10.20.48.88", :dns => "", :port => 10050, :useip => 1 } ], :groups => [:groupid => @hostgroupid] ) end context "not linked with host" do describe "mass_update" do it "should return true" do zbx.templates.mass_update( :hosts_id => [@hostid], :templates_id => [@templateid] ).should be_true end end end context "linked with host" do before :all do zbx.templates.mass_update( :hosts_id => [@hostid], :templates_id => [@templateid] ) end describe "get_ids_by_host" do it "should contains id of linked template" do tmpl_array = zbx.templates.get_ids_by_host( :hostids => [@hostid] ) tmpl_array.should be_kind_of(Array) tmpl_array.should include @templateid.to_s end end describe "mass_add" do it "should return true" do zbx.templates.mass_add( :hosts_id => [@hostid], :templates_id => [@templateid] ).should be_kind_of(TrueClass) end end describe "mass_remove" do it "should return true" do zbx.templates.mass_remove( :hosts_id => [@hostid], :templates_id => [@templateid] ).should be_true end end end end end end