37 lines
978 B
Ruby
37 lines
978 B
Ruby
# encoding: utf-8
|
|
|
|
require 'spec_helper'
|
|
|
|
describe Mutant::Expression::Namespace::Recursive do
|
|
|
|
let(:object) { described_class.parse(input) }
|
|
let(:cache) { Mutant::Cache.new }
|
|
let(:input) { '::TestApp::Literal*' }
|
|
|
|
describe '#matcher' do
|
|
subject { object.matcher(cache) }
|
|
it { should eql(Mutant::Matcher::Namespace.new(cache, '::TestApp::Literal')) }
|
|
end
|
|
|
|
describe '#match_length' do
|
|
subject { object.match_length(other) }
|
|
|
|
context 'when other is an equivalent expression' do
|
|
let(:other) { described_class.parse(object.syntax) }
|
|
|
|
it { should be(0) }
|
|
end
|
|
|
|
context 'when other expression describes a shorter prefix' do
|
|
let(:other) { described_class.parse('::TestApp') }
|
|
|
|
it { should be(0) }
|
|
end
|
|
|
|
context 'when other expression describes a longer prefix' do
|
|
let(:other) { described_class.parse('::TestApp::Literal::Deep') }
|
|
|
|
it { should be(input[0..-2].length) }
|
|
end
|
|
end
|
|
end
|