Feature: generated Gemfiel

In order to start a new gem
A user should be able to
generate a Gemfile

Background:
  Given a working directory
  And I have configured git sanely

Scenario: disabled
  Given I do not want bundler
  When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
  Then a file named 'the-perfect-gemGemfile' is not created

Scenario: enabled
  Given I want bundler
  When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
  Then a file named 'the-perfect-gem/Gemfile' is created

Scenario: default
  When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
  Then a file named 'the-perfect-gem/Gemfile' is created
  And 'Gemfile' uses the gemcutter source
  And 'Gemfile' has a development dependency on 'bundler'
  And 'Gemfile' has a development dependency on the current version of jeweler
  And 'Gemfile' has a development dependency on 'simplecov'
  And 'Gemfile' has a development dependency on 'rcov'
  And 'Gemfile' has a development dependency on 'rdoc'
  And 'Gemfile' does not have a development dependency on 'yard'

Scenario: bacon
  When I generate a bacon project named 'the-perfect-gem' that is 'zomg, so good'
  Then 'Gemfile' has a development dependency on 'bacon'

Scenario: minitest
  When I generate a minitest project named 'the-perfect-gem' that is 'zomg, so good'
  Then 'Gemfile' has a development dependency on 'minitest'

Scenario: rspec
  When I generate a rspec project named 'the-perfect-gem' that is 'zomg, so good'

  Then 'Gemfile' has a development dependency on 'rspec'

Scenario: shoulda
  When I generate a shoulda project named 'the-perfect-gem' that is 'zomg, so good'
  Then 'Gemfile' has a development dependency on 'shoulda'

Scenario: micronaut
  When I generate a micronaut project named 'the-perfect-gem' that is 'zomg, so good'
  Then 'Gemfile' has a development dependency on 'micronaut'

Scenario: cucumber
  Given I want cucumber stories
  When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
  Then 'Gemfile' has a development dependency on 'cucumber'

Scenario: reek
  Given I want reek
  When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
  Then 'Gemfile' has a development dependency on 'reek'

Scenario: roodi
  Given I want roodi
  When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
  Then 'Gemfile' has a development dependency on 'roodi'

Scenario: rdoc
  Given I want to use rdoc instead of yard
  When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
  Then 'Gemfile' has a development dependency on 'rdoc'
  And 'Gemfile' does not have a development dependency on 'yard'

Scenario: yard
  Given I want to use yard instead of rdoc
  When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
  Then 'Gemfile' has a development dependency on 'yard'
  Then 'Gemfile' has a development dependency on 'rdoc'

Scenario: shindo
  When I generate a shindo project named 'the-perfect-gem' that is 'zomg, so good'
  Then 'Gemfile' has a development dependency on 'shindo'