spec/signore/signature_spec.rb in signore-0.2.2 vs spec/signore/signature_spec.rb in signore-0.2.3
- old
+ new
@@ -1,95 +1,106 @@
+require 'yaml'
require_relative '../spec_helper'
+require_relative '../../lib/signore/signature'
-module Signore describe Signature do
- describe '.[]' do
- it 'instantiates Signatures via parameters' do
- source = 'A History of Modern Computing'
- text = 'In 1940 he summarized his work in an influential book, ' \
- '‘Punched Card Methods in Scientific Computation’.'
- sig = Signature[author: 'Paul E. Ceruzzi', source: source,
- subject: 'on Wallace Eckert', tags: ['punched cards'],
- text: text]
- sig.author.must_equal 'Paul E. Ceruzzi'
- sig.source.must_equal source
- sig.subject.must_equal 'on Wallace Eckert'
- sig.tags.must_equal ['punched cards']
- sig.text.must_equal text
- end
- end
+module Signore
+ describe Signature do
+ describe '.new' do
+ it 'instantiates Signatures via parameters' do
+ source = 'A History of Modern Computing'
+ text = 'In 1940 he summarized his work in an influential book, ' \
+ '‘Punched Card Methods in Scientific Computation’.'
+ sig = Signature.new(text, author: 'Paul E. Ceruzzi', source: source,
+ subject: 'on Wallace Eckert',
+ tags: ['punched cards'])
+ sig.author.must_equal 'Paul E. Ceruzzi'
+ sig.source.must_equal source
+ sig.subject.must_equal 'on Wallace Eckert'
+ sig.tags.must_equal ['punched cards']
+ sig.text.must_equal text
+ end
- describe '#tagged_with?' do
- it 'says whether a tagged signature is tagged with a given tag' do
- sig = Signature[tags: %w(programming tech)]
- refute sig.tagged_with? 'fnord'
- assert sig.tagged_with? 'programming'
- assert sig.tagged_with? 'tech'
+ it 'nils empty parameters' do
+ new = Signature.new('', author: '', source: '', subject: '', tags: [])
+ new.must_equal Signature.new(nil, author: nil, source: nil,
+ subject: nil, tags: nil)
+ end
end
- it 'says that an untagged signature is not tagged with any tag' do
- refute Signature.new.tagged_with? 'fnord'
- end
- end
+ describe '#tagged_with?' do
+ it 'says whether a tagged signature is tagged with a given tag' do
+ sig = Signature.new('', tags: %w(programming tech))
+ refute sig.tagged_with?('fnord')
+ assert sig.tagged_with?('programming')
+ assert sig.tagged_with?('tech')
+ end
- describe '#to_s' do
- it 'does not show meta if there’s nothing to show' do
- text = '// sometimes I believe compiler ignores all my comments'
- sig = Signature.new text
- sig.to_s.must_equal text
+ it 'says that an untagged signature is not tagged with any tag' do
+ refute Signature.new.tagged_with?('fnord')
+ end
end
- it 'shows author on its own' do
- sig = Signature.new 'stay-at-home executives vs. wallstreet dads', 'kodz'
- sig.to_s.must_equal <<-end.dedent.strip
- stay-at-home executives vs. wallstreet dads
- [kodz]
+ describe '#to_s' do
+ it 'does not show meta if there’s nothing to show' do
+ text = '// sometimes I believe compiler ignores all my comments'
+ sig = Signature.new(text)
+ sig.to_s.must_equal text
end
- end
- it 'shows author and source, comma-separated' do
- text = 'You do have to be mad to work here, but it doesn’t help.'
- sig = Signature.new text, 'Gary Barnes', 'asr'
- sig.to_s.must_equal <<-end.dedent.strip
- You do have to be mad to work here, but it doesn’t help.
- [Gary Barnes, asr]
+ it 'shows author on its own' do
+ sig = Signature.new('stay-at-home executives vs. wallstreet dads',
+ author: 'kodz')
+ sig.to_s.must_equal <<-end.dedent.strip
+ stay-at-home executives vs. wallstreet dads
+ [kodz]
+ end
end
- end
- it 'shows source on its own' do
- text = 'Bruce Schneier knows Alice and Bob’s shared secret.'
- sig = Signature[text: text, source: 'Bruce Schneier Facts']
- sig.to_s.must_equal <<-end.dedent.strip
- Bruce Schneier knows Alice and Bob’s shared secret.
- [Bruce Schneier Facts]
+ it 'shows author and source, comma-separated' do
+ text = 'You do have to be mad to work here, but it doesn’t help.'
+ sig = Signature.new(text, author: 'Gary Barnes', source: 'asr')
+ sig.to_s.must_equal <<-end.dedent.strip
+ You do have to be mad to work here, but it doesn’t help.
+ [Gary Barnes, asr]
+ end
end
- end
- it 'shows author and subject, space separated' do
- text = 'She was good at playing abstract confusion ' \
- 'in the same way a midget is good at being short.'
- sig = Signature[text: text, author: 'Clive James',
- subject: 'on Marilyn Monroe']
- sig.to_s.must_equal <<-end.dedent.strip
- She was good at playing abstract confusion in
- the same way a midget is good at being short.
- [Clive James on Marilyn Monroe]
+ it 'shows source on its own' do
+ text = 'Bruce Schneier knows Alice and Bob’s shared secret.'
+ sig = Signature.new(text, source: 'Bruce Schneier Facts')
+ sig.to_s.must_equal <<-end.dedent.strip
+ Bruce Schneier knows Alice and Bob’s shared secret.
+ [Bruce Schneier Facts]
+ end
end
- end
- it 'shows subject on its own' do
- text = 'Amateur fighter pilot ignores orders, listens ' \
- 'to the voices in his head and slaughters thousands.'
- sig = Signature[text: text, subject: 'Star Wars ending explained']
- sig.to_s.must_equal <<-end.dedent.strip
- Amateur fighter pilot ignores orders, listens to
- the voices in his head and slaughters thousands.
- [Star Wars ending explained]
+ it 'shows author and subject, space separated' do
+ text = 'She was good at playing abstract confusion ' \
+ 'in the same way a midget is good at being short.'
+ sig = Signature.new(text, author: 'Clive James',
+ subject: 'on Marilyn Monroe')
+ sig.to_s.must_equal <<-end.dedent.strip
+ She was good at playing abstract confusion in
+ the same way a midget is good at being short.
+ [Clive James on Marilyn Monroe]
+ end
end
- end
- it 'handles edge cases properly' do
- YAML.load_file('spec/fixtures/wrapper.yml').each do |sig, wrapped|
- sig.to_s.must_equal wrapped
+ it 'shows subject on its own' do
+ text = 'Amateur fighter pilot ignores orders, listens ' \
+ 'to the voices in his head and slaughters thousands.'
+ sig = Signature.new(text, subject: 'Star Wars ending explained')
+ sig.to_s.must_equal <<-end.dedent.strip
+ Amateur fighter pilot ignores orders, listens to
+ the voices in his head and slaughters thousands.
+ [Star Wars ending explained]
+ end
end
+
+ it 'handles edge cases properly' do
+ YAML.load_file('spec/fixtures/wrapper.yml').each do |sig, wrapped|
+ sig.to_s.must_equal wrapped
+ end
+ end
end
end
-end end
+end