Skip to content

Commit

Permalink
added test coverage for Classification.classify
Browse files Browse the repository at this point in the history
  • Loading branch information
yrudman committed May 22, 2020
1 parent 3a56e0e commit 3e8b342
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions spec/models/classification_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,39 @@
FactoryBot.create(:classification_tag, :name => "multi_entry_2", :parent => parent)
end

describe ".classify" do
let(:entry) { "test_entry" }
let(:category) { "test_category" }
before { @vm = FactoryBot.create(:vm) }

it "raise error if tag category not found" do
category = "Hello, World"
expect { Classification.classify(@vm, category, entry) }.to raise_error(
RuntimeError, "Tag category '#{category}' not found in region #{@vm.region_id}"
)
end

it "raise error if tag entry not found" do
entry = "Hello, World"
expect { Classification.classify(@vm, category, entry) }.to raise_error(
RuntimeError, "Tag name '#{entry}' not found in region #{@vm.region_id}"
)
end

it "raise error if object already tagged with tag namespace set to 'none'" do
allow(@vm).to receive(:is_tagged_with?)
allow(@vm).to receive(:is_tagged_with?).with("/managed/test_category/test_entry", :ns => "none").and_return(true)
expect { Classification.classify(@vm, category, entry) }.to raise_error(
RuntimeError, "Object already tagged with ':ns' set to 'none'"
)
end

it "assign tag entry to object if tag category and tag name exist" do
Classification.classify(@vm, category, entry)
expect(@vm.tags.first.name).to eq("/managed/test_category/test_entry")
end
end

context "#destroy" do
it "a category deletes all entries" do
cat = Classification.lookup_by_name("test_category")
Expand Down

0 comments on commit 3e8b342

Please sign in to comment.