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)
|
Mutant::Random.stub(:hex_string => random_string)
|
||||||
end
|
end
|
||||||
|
|
||||||
let(:source) do
|
context 'with multiple when branches' do
|
||||||
<<-RUBY
|
let(:source) do
|
||||||
case :condition
|
<<-RUBY
|
||||||
when :foo
|
case :condition
|
||||||
:foo
|
when :foo
|
||||||
when :bar, :baz
|
:foo
|
||||||
:barbaz
|
when :bar, :baz
|
||||||
else
|
:barbaz
|
||||||
:else
|
else
|
||||||
end
|
:else
|
||||||
RUBY
|
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
|
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
|
end
|
||||||
|
|
Loading…
Reference in a new issue