Add context for multiple when branches
This commit is contained in:
parent
6547412f61
commit
4e641859ee
1 changed files with 211 additions and 209 deletions
|
@ -7,214 +7,216 @@ describe Mutant::Mutator::Node::Case do
|
|||
Mutant::Random.stub(:hex_string => random_string)
|
||||
end
|
||||
|
||||
let(:source) do
|
||||
<<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
context 'with multiple when branches' do
|
||||
let(:source) do
|
||||
<<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
|
||||
let(:mutations) do
|
||||
mutations = []
|
||||
|
||||
# Presence of branches
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
end
|
||||
RUBY
|
||||
|
||||
# Mutations of condition
|
||||
mutations << <<-RUBY
|
||||
case nil
|
||||
when :foo
|
||||
:foo
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :srandom
|
||||
when :foo
|
||||
:foo
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
|
||||
# Mutations of branch bodies
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
nil
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:srandom
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :bar, :baz
|
||||
:srandom
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :bar, :baz
|
||||
nil
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
else
|
||||
:srandom
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
else
|
||||
nil
|
||||
end
|
||||
RUBY
|
||||
|
||||
# Mutations of when conditions
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :srandom
|
||||
:foo
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when nil
|
||||
:foo
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :srandom, :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when nil, :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :bar, nil
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :bar, :srandom
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :bar
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
|
||||
it_should_behave_like 'a mutator'
|
||||
end
|
||||
|
||||
let(:mutations) do
|
||||
mutations = []
|
||||
|
||||
# Presence of branches
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
end
|
||||
RUBY
|
||||
|
||||
# Mutations of condition
|
||||
mutations << <<-RUBY
|
||||
case nil
|
||||
when :foo
|
||||
:foo
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :srandom
|
||||
when :foo
|
||||
:foo
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
|
||||
# Mutations of branch bodies
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
nil
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:srandom
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :bar, :baz
|
||||
:srandom
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :bar, :baz
|
||||
nil
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
else
|
||||
:srandom
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
else
|
||||
nil
|
||||
end
|
||||
RUBY
|
||||
|
||||
# Mutations of when conditions
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :srandom
|
||||
:foo
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when nil
|
||||
:foo
|
||||
when :bar, :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :srandom, :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when nil, :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :bar, nil
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :bar, :srandom
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :baz
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
mutations << <<-RUBY
|
||||
case :condition
|
||||
when :foo
|
||||
:foo
|
||||
when :bar
|
||||
:barbaz
|
||||
else
|
||||
:else
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
|
||||
it_should_behave_like 'a mutator'
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue