Cucumber - Gooby Build Process

The following is the cucumber feature for building and verifying the gooby gem.
The build process invokes this shell script

The test is invoked with command: cucumber features/build_gem.feature

The matcher steps are implemented in ruby code.

Feature: Building Gooby
  Gem file 'gooby-2.0.0.gem' is created with shell script 'build_gem.sh'
  using specification file 'gooby.gemspec'
  and we test the build process with command 'cucumber features/build_gem.feature'

Scenario: Execute the build process
  Given file 'build_gem.sh' exists
  And   file 'gooby.gemspec' exists
  And   the gem we are building is named 'gooby-2.0.0.gem'
  And   directory '/temp' exists
  And   file '/temp/gooby-2.0.0.gem' is removed if present 
  And   directory '/temp/gooby-2.0.0' is removed if present 

  Then  we execute the shell script './build_gem.sh'  
  And   file '/temp/gooby-2.0.0.gem' exists
  And   directory '/temp/gooby-2.0.0' exists
  And   these unpacked files exist within directory '/temp/gooby-2.0.0':
  | file                                          | type      |
  | config                                        | directory |
  | features/steps                                | directory |
  | features/support                              | directory |
  | lib                                           | directory |
  | out/images                                    | directory |
  | samples                                       | directory |
  | spec                                          | directory |
  | cucumber.yml                                  | regular   |
  | README                                        | regular   |
  | rakefile.rb                                   | regular   |
  | samples.sh                                    | regular   |
  | setup.rb                                      | regular   |
  | config/ballantyne.yaml                        | regular   |
  | config/big_sur_marathon.yaml                  | regular   |
  | config/crowders_mtn_hike.yaml                 | regular   |
  | config/davidson1.yaml                         | regular   |
  | config/gooby_config.yaml                      | regular   |
  | features/build_gem.feature                    | regular   |
  | features/gooby.feature                        | regular   |
  | features/install.feature                      | regular   |
  | features/steps/gooby_steps.rb                 | regular   |
  | features/support/env.rb                       | regular   |
  | lib/gooby.rb                                  | regular   |
  | lib/gooby_activity.rb                         | regular   |
  | lib/gooby_base_object.rb                      | regular   |
  | lib/gooby_base_sax_parser.rb                  | regular   |
  | lib/gooby_configuration.rb                    | regular   |
  | lib/gooby_counter_hash.rb                     | regular   |
  | lib/gooby_dttm.rb                             | regular   |
  | lib/gooby_environment.rb                      | regular   |
  | lib/gooby_garmin_tcx_parser.rb                | regular   |
  | lib/gooby_google_kml_generator.rb             | regular   |
  | lib/gooby_google_map_generator.rb             | regular   |
  | lib/gooby_gpx_parser.rb                       | regular   |
  | lib/gooby_help_producer.rb                    | regular   |
  | lib/gooby_introspection.rb                    | regular   |
  | lib/gooby_io.rb                               | regular   |
  | lib/gooby_lap.rb                              | regular   |
  | lib/gooby_process.rb                          | regular   |
  | lib/gooby_sax_path_parser.rb                  | regular   |
  | lib/gooby_tcx_extractor.rb                    | regular   |
  | lib/gooby_track_log_parser.rb                 | regular   |
  | lib/gooby_trackpoint.rb                       | regular   |
  | lib/gooby_xml_object.rb                       | regular   |
  | out/images/dd-end.png                         | regular   |
  | out/images/dd-end.png                         | regular   |
  | out/images/marker1.png                        | regular   |
  | out/images/marker26.png                       | regular   |
  | out/images/shadow50.png                       | regular   |
  | samples/2008_04_27_13_49_50_tcx.csv           | regular   |
  | samples/2008_04_27_13_49_50_tcx.xml           | regular   |
  | samples/2009_01_01_14_45_00_tcx.xml           | regular   |
  | samples/ballantyne.csv                        | regular   |
  | samples/ballantyne.gpx                        | regular   |
  | samples/ballantyne.kml                        | regular   |
  | samples/big_sur_marathon.html                 | regular   |
  | samples/big_sur_marathon.kml                  | regular   |
  | samples/build_gem_test_results.txt            | regular   |
  | samples/crowders_mtn_hike.csv                 | regular   |
  | samples/crowders_mtn_hike.html                | regular   |
  | samples/crowders_mtn_hike.log                 | regular   |
  | samples/cucumber_test_results.txt             | regular   |
  | samples/davidson1.csv                         | regular   |
  | samples/davidson1.html                        | regular   |
  | samples/doc.kml                               | regular   |
  | samples/gps_track_log_asheville_mt_pisgah.txt | regular   |
  | samples/gps_track_logs.txt                    | regular   |
  | samples/install_test_results.txt              | regular   |
  | samples/mt_pisgah.txt                         | regular   |
  | samples/rspec_test_results.txt                | regular   | 
      
...and this is the output of the above test:
Feature: Building Gooby
  Gem file 'gooby-2.0.0.gem' is created with shell script 'build_gem.sh'
  using specification file 'gooby.gemspec'
  and we test the build process with command 'cucumber features/build_gem.feature'

  Scenario: Execute the build process                                    # features/build_gem.feature:6
    Given file 'build_gem.sh' exists                                     # features/steps/gooby_steps.rb:187
    And file 'gooby.gemspec' exists                                      # features/steps/gooby_steps.rb:187
    And the gem we are building is named 'gooby-2.0.0.gem'               # features/steps/gooby_steps.rb:209
    And directory '/temp' exists                                         # features/steps/gooby_steps.rb:187
    And file '/temp/gooby-2.0.0.gem' is removed if present               # features/steps/gooby_steps.rb:213
    And directory '/temp/gooby-2.0.0' is removed if present              # features/steps/gooby_steps.rb:213
    Then we execute the shell script './build_gem.sh'                    # features/steps/gooby_steps.rb:226
    And file '/temp/gooby-2.0.0.gem' exists                              # features/steps/gooby_steps.rb:187
    And directory '/temp/gooby-2.0.0' exists                             # features/steps/gooby_steps.rb:187
    And these unpacked files exist within directory '/temp/gooby-2.0.0': # features/steps/gooby_steps.rb:231
      | file                                          | type      |
      | config                                        | directory |
      | features/steps                                | directory |
      | features/support                              | directory |
      | lib                                           | directory |
      | out/images                                    | directory |
      | samples                                       | directory |
      | spec                                          | directory |
      | cucumber.yml                                  | regular   |
      | README                                        | regular   |
      | rakefile.rb                                   | regular   |
      | samples.sh                                    | regular   |
      | setup.rb                                      | regular   |
      | config/ballantyne.yaml                        | regular   |
      | config/big_sur_marathon.yaml                  | regular   |
      | config/crowders_mtn_hike.yaml                 | regular   |
      | config/davidson1.yaml                         | regular   |
      | config/gooby_config.yaml                      | regular   |
      | features/build_gem.feature                    | regular   |
      | features/gooby.feature                        | regular   |
      | features/install.feature                      | regular   |
      | features/steps/gooby_steps.rb                 | regular   |
      | features/support/env.rb                       | regular   |
      | lib/gooby.rb                                  | regular   |
      | lib/gooby_activity.rb                         | regular   |
      | lib/gooby_base_object.rb                      | regular   |
      | lib/gooby_base_sax_parser.rb                  | regular   |
      | lib/gooby_configuration.rb                    | regular   |
      | lib/gooby_counter_hash.rb                     | regular   |
      | lib/gooby_dttm.rb                             | regular   |
      | lib/gooby_environment.rb                      | regular   |
      | lib/gooby_garmin_tcx_parser.rb                | regular   |
      | lib/gooby_google_kml_generator.rb             | regular   |
      | lib/gooby_google_map_generator.rb             | regular   |
      | lib/gooby_gpx_parser.rb                       | regular   |
      | lib/gooby_help_producer.rb                    | regular   |
      | lib/gooby_introspection.rb                    | regular   |
      | lib/gooby_io.rb                               | regular   |
      | lib/gooby_lap.rb                              | regular   |
      | lib/gooby_process.rb                          | regular   |
      | lib/gooby_sax_path_parser.rb                  | regular   |
      | lib/gooby_tcx_extractor.rb                    | regular   |
      | lib/gooby_track_log_parser.rb                 | regular   |
      | lib/gooby_trackpoint.rb                       | regular   |
      | lib/gooby_xml_object.rb                       | regular   |
      | out/images/dd-end.png                         | regular   |
      | out/images/dd-end.png                         | regular   |
      | out/images/marker1.png                        | regular   |
      | out/images/marker26.png                       | regular   |
      | out/images/shadow50.png                       | regular   |
      | samples/2008_04_27_13_49_50_tcx.csv           | regular   |
      | samples/2008_04_27_13_49_50_tcx.xml           | regular   |
      | samples/2009_01_01_14_45_00_tcx.xml           | regular   |
      | samples/ballantyne.csv                        | regular   |
      | samples/ballantyne.gpx                        | regular   |
      | samples/ballantyne.kml                        | regular   |
      | samples/big_sur_marathon.html                 | regular   |
      | samples/big_sur_marathon.kml                  | regular   |
      | samples/build_gem_test_results.txt            | regular   |
      | samples/crowders_mtn_hike.csv                 | regular   |
      | samples/crowders_mtn_hike.html                | regular   |
      | samples/crowders_mtn_hike.log                 | regular   |
      | samples/cucumber_test_results.txt             | regular   |
      | samples/davidson1.csv                         | regular   |
      | samples/davidson1.html                        | regular   |
      | samples/doc.kml                               | regular   |
      | samples/gps_track_log_asheville_mt_pisgah.txt | regular   |
      | samples/gps_track_logs.txt                    | regular   |
      | samples/install_test_results.txt              | regular   |
      | samples/mt_pisgah.txt                         | regular   |
      | samples/rspec_test_results.txt                | regular   |

1 scenario (1 passed)
10 steps (10 passed)