machine_tag_tag_spec.rb 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. require 'spec_helper'
  2. describe MachineTag::Tag do
  3. it 'should create plain tags' do
  4. tag = MachineTag::Tag.new('a')
  5. tag.should eq 'a'
  6. tag.namespace.should be_nil
  7. tag.predicate.should be_nil
  8. tag.namespace_and_predicate.should be_nil
  9. tag.value.should be_nil
  10. tag.machine_tag?.should be_false
  11. end
  12. it 'should create machine tags' do
  13. tag = MachineTag::Tag.new('a:b=c')
  14. tag.should eq 'a:b=c'
  15. tag.namespace.should eq 'a'
  16. tag.predicate.should eq 'b'
  17. tag.namespace_and_predicate.should eq 'a:b'
  18. tag.value.should eq 'c'
  19. tag.machine_tag?.should be_true
  20. end
  21. it 'should handle a machine tag with a quoted value' do
  22. tag = MachineTag::Tag.new('a:b="c d"')
  23. tag.should eq 'a:b="c d"'
  24. tag.namespace.should eq 'a'
  25. tag.predicate.should eq 'b'
  26. tag.namespace_and_predicate.should eq 'a:b'
  27. tag.value.should eq 'c d'
  28. tag.machine_tag?.should be_true
  29. end
  30. describe '::machine_tag' do
  31. it 'should create machine tags' do
  32. tag = MachineTag::Tag.machine_tag('a', 'b', 'c')
  33. tag.should eq 'a:b=c'
  34. tag.namespace.should eq 'a'
  35. tag.predicate.should eq 'b'
  36. tag.namespace_and_predicate.should eq 'a:b'
  37. tag.value.should eq 'c'
  38. tag.machine_tag?.should be_true
  39. end
  40. it 'should not create machine tags with invalid namespaces' do
  41. expect do
  42. MachineTag::Tag.machine_tag('!', 'b', 'c')
  43. end.to raise_error(ArgumentError, 'Invalid machine tag namespace: "!"')
  44. end
  45. it 'should not create machine tags with invalid predicates' do
  46. expect do
  47. MachineTag::Tag.machine_tag('a', '!', 'c')
  48. end.to raise_error(ArgumentError, 'Invalid machine tag predicate: "!"')
  49. end
  50. end
  51. end