Add context for multiple when branches

This commit is contained in:
Dan Kubb 2013-06-22 22:18:10 -07:00
parent 6547412f61
commit 4e641859ee

View file

@ -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