From 4e641859ee646915e0e3053008bbe2b083caa1a5 Mon Sep 17 00:00:00 2001 From: Dan Kubb Date: Sat, 22 Jun 2013 22:18:10 -0700 Subject: [PATCH] Add context for multiple when branches --- .../mutant/mutator/node/case/mutation_spec.rb | 420 +++++++++--------- 1 file changed, 211 insertions(+), 209 deletions(-) diff --git a/spec/unit/mutant/mutator/node/case/mutation_spec.rb b/spec/unit/mutant/mutator/node/case/mutation_spec.rb index 4ce895b8..362306ea 100644 --- a/spec/unit/mutant/mutator/node/case/mutation_spec.rb +++ b/spec/unit/mutant/mutator/node/case/mutation_spec.rb @@ -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