From 1fa4ffbe654a5925e1570206223b650c497be89e Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Fri, 9 Mar 2012 08:11:54 -0500 Subject: [PATCH] Modifying the mash tournament schema a touch and adding a slew of scaffold-y stuff --- rails/map-mash/README | 243 ------------------ rails/map-mash/README.md | 1 + .../mash_tournaments_controller.rb | 85 ++++++ .../app/helpers/mash_tournaments_helper.rb | 2 + .../views/layouts/mash_tournaments.html.erb | 17 ++ .../app/views/mash_tournaments/edit.html.erb | 12 + .../app/views/mash_tournaments/index.html.erb | 18 ++ .../app/views/mash_tournaments/new.html.erb | 11 + .../app/views/mash_tournaments/show.html.erb | 3 + .../20120309130609_create_mash_tournaments.rb | 5 +- rails/map-mash/db/schema.rb | 4 +- .../mash_tournaments_controller_spec.rb | 131 ++++++++++ .../helpers/mash_tournaments_helper_spec.rb | 11 + .../spec/integration/mash_tournaments_spec.rb | 4 + .../routing/mash_tournaments_routing_spec.rb | 33 +++ .../mash_tournaments/edit.html.erb_spec.rb | 18 ++ .../mash_tournaments/index.html.erb_spec.rb | 16 ++ .../mash_tournaments/new.html.erb_spec.rb | 18 ++ .../mash_tournaments/show.html.erb_spec.rb | 12 + 19 files changed, 399 insertions(+), 245 deletions(-) delete mode 100644 rails/map-mash/README create mode 100644 rails/map-mash/README.md create mode 100644 rails/map-mash/app/controllers/mash_tournaments_controller.rb create mode 100644 rails/map-mash/app/helpers/mash_tournaments_helper.rb create mode 100644 rails/map-mash/app/views/layouts/mash_tournaments.html.erb create mode 100644 rails/map-mash/app/views/mash_tournaments/edit.html.erb create mode 100644 rails/map-mash/app/views/mash_tournaments/index.html.erb create mode 100644 rails/map-mash/app/views/mash_tournaments/new.html.erb create mode 100644 rails/map-mash/app/views/mash_tournaments/show.html.erb create mode 100644 rails/map-mash/spec/controllers/mash_tournaments_controller_spec.rb create mode 100644 rails/map-mash/spec/helpers/mash_tournaments_helper_spec.rb create mode 100644 rails/map-mash/spec/integration/mash_tournaments_spec.rb create mode 100644 rails/map-mash/spec/routing/mash_tournaments_routing_spec.rb create mode 100644 rails/map-mash/spec/views/mash_tournaments/edit.html.erb_spec.rb create mode 100644 rails/map-mash/spec/views/mash_tournaments/index.html.erb_spec.rb create mode 100644 rails/map-mash/spec/views/mash_tournaments/new.html.erb_spec.rb create mode 100644 rails/map-mash/spec/views/mash_tournaments/show.html.erb_spec.rb diff --git a/rails/map-mash/README b/rails/map-mash/README deleted file mode 100644 index 37ec8ea..0000000 --- a/rails/map-mash/README +++ /dev/null @@ -1,243 +0,0 @@ -== Welcome to Rails - -Rails is a web-application framework that includes everything needed to create -database-backed web applications according to the Model-View-Control pattern. - -This pattern splits the view (also called the presentation) into "dumb" templates -that are primarily responsible for inserting pre-built data in between HTML tags. -The model contains the "smart" domain objects (such as Account, Product, Person, -Post) that holds all the business logic and knows how to persist themselves to -a database. The controller handles the incoming requests (such as Save New Account, -Update Product, Show Post) by manipulating the model and directing data to the view. - -In Rails, the model is handled by what's called an object-relational mapping -layer entitled Active Record. This layer allows you to present the data from -database rows as objects and embellish these data objects with business logic -methods. You can read more about Active Record in -link:files/vendor/rails/activerecord/README.html. - -The controller and view are handled by the Action Pack, which handles both -layers by its two parts: Action View and Action Controller. These two layers -are bundled in a single package due to their heavy interdependence. This is -unlike the relationship between the Active Record and Action Pack that is much -more separate. Each of these packages can be used independently outside of -Rails. You can read more about Action Pack in -link:files/vendor/rails/actionpack/README.html. - - -== Getting Started - -1. At the command prompt, start a new Rails application using the rails command - and your application name. Ex: rails myapp -2. Change directory into myapp and start the web server: script/server (run with --help for options) -3. Go to http://localhost:3000/ and get "Welcome aboard: You're riding the Rails!" -4. Follow the guidelines to start developing your application - - -== Web Servers - -By default, Rails will try to use Mongrel if it's are installed when started with script/server, otherwise Rails will use WEBrick, the webserver that ships with Ruby. But you can also use Rails -with a variety of other web servers. - -Mongrel is a Ruby-based webserver with a C component (which requires compilation) that is -suitable for development and deployment of Rails applications. If you have Ruby Gems installed, -getting up and running with mongrel is as easy as: gem install mongrel. -More info at: http://mongrel.rubyforge.org - -Say other Ruby web servers like Thin and Ebb or regular web servers like Apache or LiteSpeed or -Lighttpd or IIS. The Ruby web servers are run through Rack and the latter can either be setup to use -FCGI or proxy to a pack of Mongrels/Thin/Ebb servers. - -== Apache .htaccess example for FCGI/CGI - -# General Apache options -AddHandler fastcgi-script .fcgi -AddHandler cgi-script .cgi -Options +FollowSymLinks +ExecCGI - -# If you don't want Rails to look in certain directories, -# use the following rewrite rules so that Apache won't rewrite certain requests -# -# Example: -# RewriteCond %{REQUEST_URI} ^/notrails.* -# RewriteRule .* - [L] - -# Redirect all requests not available on the filesystem to Rails -# By default the cgi dispatcher is used which is very slow -# -# For better performance replace the dispatcher with the fastcgi one -# -# Example: -# RewriteRule ^(.*)$ dispatch.fcgi [QSA,L] -RewriteEngine On - -# If your Rails application is accessed via an Alias directive, -# then you MUST also set the RewriteBase in this htaccess file. -# -# Example: -# Alias /myrailsapp /path/to/myrailsapp/public -# RewriteBase /myrailsapp - -RewriteRule ^$ index.html [QSA] -RewriteRule ^([^.]+)$ $1.html [QSA] -RewriteCond %{REQUEST_FILENAME} !-f -RewriteRule ^(.*)$ dispatch.cgi [QSA,L] - -# In case Rails experiences terminal errors -# Instead of displaying this message you can supply a file here which will be rendered instead -# -# Example: -# ErrorDocument 500 /500.html - -ErrorDocument 500 "

Application error

Rails application failed to start properly" - - -== Debugging Rails - -Sometimes your application goes wrong. Fortunately there are a lot of tools that -will help you debug it and get it back on the rails. - -First area to check is the application log files. Have "tail -f" commands running -on the server.log and development.log. Rails will automatically display debugging -and runtime information to these files. Debugging info will also be shown in the -browser on requests from 127.0.0.1. - -You can also log your own messages directly into the log file from your code using -the Ruby logger class from inside your controllers. Example: - - class WeblogController < ActionController::Base - def destroy - @weblog = Weblog.find(params[:id]) - @weblog.destroy - logger.info("#{Time.now} Destroyed Weblog ID ##{@weblog.id}!") - end - end - -The result will be a message in your log file along the lines of: - - Mon Oct 08 14:22:29 +1000 2007 Destroyed Weblog ID #1 - -More information on how to use the logger is at http://www.ruby-doc.org/core/ - -Also, Ruby documentation can be found at http://www.ruby-lang.org/ including: - -* The Learning Ruby (Pickaxe) Book: http://www.ruby-doc.org/docs/ProgrammingRuby/ -* Learn to Program: http://pine.fm/LearnToProgram/ (a beginners guide) - -These two online (and free) books will bring you up to speed on the Ruby language -and also on programming in general. - - -== Debugger - -Debugger support is available through the debugger command when you start your Mongrel or -Webrick server with --debugger. This means that you can break out of execution at any point -in the code, investigate and change the model, AND then resume execution! -You need to install ruby-debug to run the server in debugging mode. With gems, use 'gem install ruby-debug' -Example: - - class WeblogController < ActionController::Base - def index - @posts = Post.find(:all) - debugger - end - end - -So the controller will accept the action, run the first line, then present you -with a IRB prompt in the server window. Here you can do things like: - - >> @posts.inspect - => "[#nil, \"body\"=>nil, \"id\"=>\"1\"}>, - #\"Rails you know!\", \"body\"=>\"Only ten..\", \"id\"=>\"2\"}>]" - >> @posts.first.title = "hello from a debugger" - => "hello from a debugger" - -...and even better is that you can examine how your runtime objects actually work: - - >> f = @posts.first - => #nil, "body"=>nil, "id"=>"1"}> - >> f. - Display all 152 possibilities? (y or n) - -Finally, when you're ready to resume execution, you enter "cont" - - -== Console - -You can interact with the domain model by starting the console through script/console. -Here you'll have all parts of the application configured, just like it is when the -application is running. You can inspect domain models, change values, and save to the -database. Starting the script without arguments will launch it in the development environment. -Passing an argument will specify a different environment, like script/console production. - -To reload your controllers and models after launching the console run reload! - -== dbconsole - -You can go to the command line of your database directly through script/dbconsole. -You would be connected to the database with the credentials defined in database.yml. -Starting the script without arguments will connect you to the development database. Passing an -argument will connect you to a different database, like script/dbconsole production. -Currently works for mysql, postgresql and sqlite. - -== Description of Contents - -app - Holds all the code that's specific to this particular application. - -app/controllers - Holds controllers that should be named like weblogs_controller.rb for - automated URL mapping. All controllers should descend from ApplicationController - which itself descends from ActionController::Base. - -app/models - Holds models that should be named like post.rb. - Most models will descend from ActiveRecord::Base. - -app/views - Holds the template files for the view that should be named like - weblogs/index.html.erb for the WeblogsController#index action. All views use eRuby - syntax. - -app/views/layouts - Holds the template files for layouts to be used with views. This models the common - header/footer method of wrapping views. In your views, define a layout using the - layout :default and create a file named default.html.erb. Inside default.html.erb, - call <% yield %> to render the view using this layout. - -app/helpers - Holds view helpers that should be named like weblogs_helper.rb. These are generated - for you automatically when using script/generate for controllers. Helpers can be used to - wrap functionality for your views into methods. - -config - Configuration files for the Rails environment, the routing map, the database, and other dependencies. - -db - Contains the database schema in schema.rb. db/migrate contains all - the sequence of Migrations for your schema. - -doc - This directory is where your application documentation will be stored when generated - using rake doc:app - -lib - Application specific libraries. Basically, any kind of custom code that doesn't - belong under controllers, models, or helpers. This directory is in the load path. - -public - The directory available for the web server. Contains subdirectories for images, stylesheets, - and javascripts. Also contains the dispatchers and the default HTML files. This should be - set as the DOCUMENT_ROOT of your web server. - -script - Helper scripts for automation and generation. - -test - Unit and functional tests along with fixtures. When using the script/generate scripts, template - test files will be generated for you and placed in this directory. - -vendor - External libraries that the application depends on. Also includes the plugins subdirectory. - If the app has frozen rails, those gems also go here, under vendor/rails/. - This directory is in the load path. diff --git a/rails/map-mash/README.md b/rails/map-mash/README.md new file mode 100644 index 0000000..a529335 --- /dev/null +++ b/rails/map-mash/README.md @@ -0,0 +1 @@ +# Mashing of Maps! diff --git a/rails/map-mash/app/controllers/mash_tournaments_controller.rb b/rails/map-mash/app/controllers/mash_tournaments_controller.rb new file mode 100644 index 0000000..dd9417b --- /dev/null +++ b/rails/map-mash/app/controllers/mash_tournaments_controller.rb @@ -0,0 +1,85 @@ +class MashTournamentsController < ApplicationController + # GET /mash_tournaments + # GET /mash_tournaments.xml + def index + @mash_tournaments = MashTournament.all + + respond_to do |format| + format.html # index.html.erb + format.xml { render :xml => @mash_tournaments } + end + end + + # GET /mash_tournaments/1 + # GET /mash_tournaments/1.xml + def show + @mash_tournament = MashTournament.find(params[:id]) + + respond_to do |format| + format.html # show.html.erb + format.xml { render :xml => @mash_tournament } + end + end + + # GET /mash_tournaments/new + # GET /mash_tournaments/new.xml + def new + @mash_tournament = MashTournament.new + + respond_to do |format| + format.html # new.html.erb + format.xml { render :xml => @mash_tournament } + end + end + + # GET /mash_tournaments/1/edit + def edit + @mash_tournament = MashTournament.find(params[:id]) + end + + # POST /mash_tournaments + # POST /mash_tournaments.xml + def create + @mash_tournament = MashTournament.new(params[:mash_tournament]) + + respond_to do |format| + if @mash_tournament.save + flash[:notice] = 'MashTournament was successfully created.' + format.html { redirect_to(@mash_tournament) } + format.xml { render :xml => @mash_tournament, :status => :created, :location => @mash_tournament } + else + format.html { render :action => "new" } + format.xml { render :xml => @mash_tournament.errors, :status => :unprocessable_entity } + end + end + end + + # PUT /mash_tournaments/1 + # PUT /mash_tournaments/1.xml + def update + @mash_tournament = MashTournament.find(params[:id]) + + respond_to do |format| + if @mash_tournament.update_attributes(params[:mash_tournament]) + flash[:notice] = 'MashTournament was successfully updated.' + format.html { redirect_to(@mash_tournament) } + format.xml { head :ok } + else + format.html { render :action => "edit" } + format.xml { render :xml => @mash_tournament.errors, :status => :unprocessable_entity } + end + end + end + + # DELETE /mash_tournaments/1 + # DELETE /mash_tournaments/1.xml + def destroy + @mash_tournament = MashTournament.find(params[:id]) + @mash_tournament.destroy + + respond_to do |format| + format.html { redirect_to(mash_tournaments_url) } + format.xml { head :ok } + end + end +end diff --git a/rails/map-mash/app/helpers/mash_tournaments_helper.rb b/rails/map-mash/app/helpers/mash_tournaments_helper.rb new file mode 100644 index 0000000..caf8d9d --- /dev/null +++ b/rails/map-mash/app/helpers/mash_tournaments_helper.rb @@ -0,0 +1,2 @@ +module MashTournamentsHelper +end diff --git a/rails/map-mash/app/views/layouts/mash_tournaments.html.erb b/rails/map-mash/app/views/layouts/mash_tournaments.html.erb new file mode 100644 index 0000000..a801780 --- /dev/null +++ b/rails/map-mash/app/views/layouts/mash_tournaments.html.erb @@ -0,0 +1,17 @@ + + + + + + MashTournaments: <%= controller.action_name %> + <%= stylesheet_link_tag 'scaffold' %> + + + +

<%= flash[:notice] %>

+ +<%= yield %> + + + diff --git a/rails/map-mash/app/views/mash_tournaments/edit.html.erb b/rails/map-mash/app/views/mash_tournaments/edit.html.erb new file mode 100644 index 0000000..3dda81d --- /dev/null +++ b/rails/map-mash/app/views/mash_tournaments/edit.html.erb @@ -0,0 +1,12 @@ +

Editing mash_tournament

+ +<% form_for(@mash_tournament) do |f| %> + <%= f.error_messages %> + +

+ <%= f.submit 'Update' %> +

+<% end %> + +<%= link_to 'Show', @mash_tournament %> | +<%= link_to 'Back', mash_tournaments_path %> \ No newline at end of file diff --git a/rails/map-mash/app/views/mash_tournaments/index.html.erb b/rails/map-mash/app/views/mash_tournaments/index.html.erb new file mode 100644 index 0000000..ee7e8d8 --- /dev/null +++ b/rails/map-mash/app/views/mash_tournaments/index.html.erb @@ -0,0 +1,18 @@ +

Listing mash_tournaments

+ + + + + +<% @mash_tournaments.each do |mash_tournament| %> + + + + + +<% end %> +
<%= link_to 'Show', mash_tournament %><%= link_to 'Edit', edit_mash_tournament_path(mash_tournament) %><%= link_to 'Destroy', mash_tournament, :confirm => 'Are you sure?', :method => :delete %>
+ +
+ +<%= link_to 'New mash_tournament', new_mash_tournament_path %> \ No newline at end of file diff --git a/rails/map-mash/app/views/mash_tournaments/new.html.erb b/rails/map-mash/app/views/mash_tournaments/new.html.erb new file mode 100644 index 0000000..4d01f1c --- /dev/null +++ b/rails/map-mash/app/views/mash_tournaments/new.html.erb @@ -0,0 +1,11 @@ +

New mash_tournament

+ +<% form_for(@mash_tournament) do |f| %> + <%= f.error_messages %> + +

+ <%= f.submit 'Create' %> +

+<% end %> + +<%= link_to 'Back', mash_tournaments_path %> \ No newline at end of file diff --git a/rails/map-mash/app/views/mash_tournaments/show.html.erb b/rails/map-mash/app/views/mash_tournaments/show.html.erb new file mode 100644 index 0000000..17bc405 --- /dev/null +++ b/rails/map-mash/app/views/mash_tournaments/show.html.erb @@ -0,0 +1,3 @@ + +<%= link_to 'Edit', edit_mash_tournament_path(@mash_tournament) %> | +<%= link_to 'Back', mash_tournaments_path %> \ No newline at end of file diff --git a/rails/map-mash/db/migrate/20120309130609_create_mash_tournaments.rb b/rails/map-mash/db/migrate/20120309130609_create_mash_tournaments.rb index dcadc75..af09942 100644 --- a/rails/map-mash/db/migrate/20120309130609_create_mash_tournaments.rb +++ b/rails/map-mash/db/migrate/20120309130609_create_mash_tournaments.rb @@ -1,13 +1,16 @@ class CreateMashTournaments < ActiveRecord::Migration def self.up create_table :mash_tournaments do |t| - t.integer :requester_id + t.references :requester, :null => false t.timestamps end + + add_index :mash_tournaments, [:requester_id] end def self.down drop_table :mash_tournaments + remove_index :mash_tournaments, [:requester_id] end end diff --git a/rails/map-mash/db/schema.rb b/rails/map-mash/db/schema.rb index dec9469..052004c 100644 --- a/rails/map-mash/db/schema.rb +++ b/rails/map-mash/db/schema.rb @@ -22,11 +22,13 @@ ActiveRecord::Schema.define(:version => 20120309130609) do add_index "maps", ["points"], :name => "index_maps_on_points" create_table "mash_tournaments", :force => true do |t| - t.integer "requester_id" + t.integer "requester_id", :null => false t.datetime "created_at" t.datetime "updated_at" end + add_index "mash_tournaments", ["requester_id"], :name => "index_mash_tournaments_on_requester_id" + create_table "mashes", :force => true do |t| t.integer "requester_id", :null => false t.integer "map_a_id", :null => false diff --git a/rails/map-mash/spec/controllers/mash_tournaments_controller_spec.rb b/rails/map-mash/spec/controllers/mash_tournaments_controller_spec.rb new file mode 100644 index 0000000..184b5f5 --- /dev/null +++ b/rails/map-mash/spec/controllers/mash_tournaments_controller_spec.rb @@ -0,0 +1,131 @@ +require 'spec_helper' + +describe MashTournamentsController do + + def mock_mash_tournament(stubs={}) + @mock_mash_tournament ||= mock_model(MashTournament, stubs) + end + + describe "GET index" do + it "assigns all mash_tournaments as @mash_tournaments" do + MashTournament.stub(:find).with(:all).and_return([mock_mash_tournament]) + get :index + assigns[:mash_tournaments].should == [mock_mash_tournament] + end + end + + describe "GET show" do + it "assigns the requested mash_tournament as @mash_tournament" do + MashTournament.stub(:find).with("37").and_return(mock_mash_tournament) + get :show, :id => "37" + assigns[:mash_tournament].should equal(mock_mash_tournament) + end + end + + describe "GET new" do + it "assigns a new mash_tournament as @mash_tournament" do + MashTournament.stub(:new).and_return(mock_mash_tournament) + get :new + assigns[:mash_tournament].should equal(mock_mash_tournament) + end + end + + describe "GET edit" do + it "assigns the requested mash_tournament as @mash_tournament" do + MashTournament.stub(:find).with("37").and_return(mock_mash_tournament) + get :edit, :id => "37" + assigns[:mash_tournament].should equal(mock_mash_tournament) + end + end + + describe "POST create" do + + describe "with valid params" do + it "assigns a newly created mash_tournament as @mash_tournament" do + MashTournament.stub(:new).with({'these' => 'params'}).and_return(mock_mash_tournament(:save => true)) + post :create, :mash_tournament => {:these => 'params'} + assigns[:mash_tournament].should equal(mock_mash_tournament) + end + + it "redirects to the created mash_tournament" do + MashTournament.stub(:new).and_return(mock_mash_tournament(:save => true)) + post :create, :mash_tournament => {} + response.should redirect_to(mash_tournament_url(mock_mash_tournament)) + end + end + + describe "with invalid params" do + it "assigns a newly created but unsaved mash_tournament as @mash_tournament" do + MashTournament.stub(:new).with({'these' => 'params'}).and_return(mock_mash_tournament(:save => false)) + post :create, :mash_tournament => {:these => 'params'} + assigns[:mash_tournament].should equal(mock_mash_tournament) + end + + it "re-renders the 'new' template" do + MashTournament.stub(:new).and_return(mock_mash_tournament(:save => false)) + post :create, :mash_tournament => {} + response.should render_template('new') + end + end + + end + + describe "PUT update" do + + describe "with valid params" do + it "updates the requested mash_tournament" do + MashTournament.should_receive(:find).with("37").and_return(mock_mash_tournament) + mock_mash_tournament.should_receive(:update_attributes).with({'these' => 'params'}) + put :update, :id => "37", :mash_tournament => {:these => 'params'} + end + + it "assigns the requested mash_tournament as @mash_tournament" do + MashTournament.stub(:find).and_return(mock_mash_tournament(:update_attributes => true)) + put :update, :id => "1" + assigns[:mash_tournament].should equal(mock_mash_tournament) + end + + it "redirects to the mash_tournament" do + MashTournament.stub(:find).and_return(mock_mash_tournament(:update_attributes => true)) + put :update, :id => "1" + response.should redirect_to(mash_tournament_url(mock_mash_tournament)) + end + end + + describe "with invalid params" do + it "updates the requested mash_tournament" do + MashTournament.should_receive(:find).with("37").and_return(mock_mash_tournament) + mock_mash_tournament.should_receive(:update_attributes).with({'these' => 'params'}) + put :update, :id => "37", :mash_tournament => {:these => 'params'} + end + + it "assigns the mash_tournament as @mash_tournament" do + MashTournament.stub(:find).and_return(mock_mash_tournament(:update_attributes => false)) + put :update, :id => "1" + assigns[:mash_tournament].should equal(mock_mash_tournament) + end + + it "re-renders the 'edit' template" do + MashTournament.stub(:find).and_return(mock_mash_tournament(:update_attributes => false)) + put :update, :id => "1" + response.should render_template('edit') + end + end + + end + + describe "DELETE destroy" do + it "destroys the requested mash_tournament" do + MashTournament.should_receive(:find).with("37").and_return(mock_mash_tournament) + mock_mash_tournament.should_receive(:destroy) + delete :destroy, :id => "37" + end + + it "redirects to the mash_tournaments list" do + MashTournament.stub(:find).and_return(mock_mash_tournament(:destroy => true)) + delete :destroy, :id => "1" + response.should redirect_to(mash_tournaments_url) + end + end + +end diff --git a/rails/map-mash/spec/helpers/mash_tournaments_helper_spec.rb b/rails/map-mash/spec/helpers/mash_tournaments_helper_spec.rb new file mode 100644 index 0000000..d666249 --- /dev/null +++ b/rails/map-mash/spec/helpers/mash_tournaments_helper_spec.rb @@ -0,0 +1,11 @@ +require 'spec_helper' + +describe MashTournamentsHelper do + + #Delete this example and add some real ones or delete this file + it "is included in the helper object" do + included_modules = (class << helper; self; end).send :included_modules + included_modules.should include(MashTournamentsHelper) + end + +end diff --git a/rails/map-mash/spec/integration/mash_tournaments_spec.rb b/rails/map-mash/spec/integration/mash_tournaments_spec.rb new file mode 100644 index 0000000..94a383a --- /dev/null +++ b/rails/map-mash/spec/integration/mash_tournaments_spec.rb @@ -0,0 +1,4 @@ +require 'spec_helper' + +describe "MashTournaments" do +end diff --git a/rails/map-mash/spec/routing/mash_tournaments_routing_spec.rb b/rails/map-mash/spec/routing/mash_tournaments_routing_spec.rb new file mode 100644 index 0000000..91c241f --- /dev/null +++ b/rails/map-mash/spec/routing/mash_tournaments_routing_spec.rb @@ -0,0 +1,33 @@ +require 'spec_helper' + +describe MashTournamentsController do + describe "routing" do + it "recognizes and generates #index" do + { :get => "/mash_tournaments" }.should route_to(:controller => "mash_tournaments", :action => "index") + end + + it "recognizes and generates #new" do + { :get => "/mash_tournaments/new" }.should route_to(:controller => "mash_tournaments", :action => "new") + end + + it "recognizes and generates #show" do + { :get => "/mash_tournaments/1" }.should route_to(:controller => "mash_tournaments", :action => "show", :id => "1") + end + + it "recognizes and generates #edit" do + { :get => "/mash_tournaments/1/edit" }.should route_to(:controller => "mash_tournaments", :action => "edit", :id => "1") + end + + it "recognizes and generates #create" do + { :post => "/mash_tournaments" }.should route_to(:controller => "mash_tournaments", :action => "create") + end + + it "recognizes and generates #update" do + { :put => "/mash_tournaments/1" }.should route_to(:controller => "mash_tournaments", :action => "update", :id => "1") + end + + it "recognizes and generates #destroy" do + { :delete => "/mash_tournaments/1" }.should route_to(:controller => "mash_tournaments", :action => "destroy", :id => "1") + end + end +end diff --git a/rails/map-mash/spec/views/mash_tournaments/edit.html.erb_spec.rb b/rails/map-mash/spec/views/mash_tournaments/edit.html.erb_spec.rb new file mode 100644 index 0000000..8af75cc --- /dev/null +++ b/rails/map-mash/spec/views/mash_tournaments/edit.html.erb_spec.rb @@ -0,0 +1,18 @@ +require 'spec_helper' + +describe "/mash_tournaments/edit.html.erb" do + include MashTournamentsHelper + + before(:each) do + assigns[:mash_tournament] = @mash_tournament = stub_model(MashTournament, + :new_record? => false + ) + end + + it "renders the edit mash_tournament form" do + render + + response.should have_tag("form[action=#{mash_tournament_path(@mash_tournament)}][method=post]") do + end + end +end diff --git a/rails/map-mash/spec/views/mash_tournaments/index.html.erb_spec.rb b/rails/map-mash/spec/views/mash_tournaments/index.html.erb_spec.rb new file mode 100644 index 0000000..074b1bd --- /dev/null +++ b/rails/map-mash/spec/views/mash_tournaments/index.html.erb_spec.rb @@ -0,0 +1,16 @@ +require 'spec_helper' + +describe "/mash_tournaments/index.html.erb" do + include MashTournamentsHelper + + before(:each) do + assigns[:mash_tournaments] = [ + stub_model(MashTournament), + stub_model(MashTournament) + ] + end + + it "renders a list of mash_tournaments" do + render + end +end diff --git a/rails/map-mash/spec/views/mash_tournaments/new.html.erb_spec.rb b/rails/map-mash/spec/views/mash_tournaments/new.html.erb_spec.rb new file mode 100644 index 0000000..3bf3cae --- /dev/null +++ b/rails/map-mash/spec/views/mash_tournaments/new.html.erb_spec.rb @@ -0,0 +1,18 @@ +require 'spec_helper' + +describe "/mash_tournaments/new.html.erb" do + include MashTournamentsHelper + + before(:each) do + assigns[:mash_tournament] = stub_model(MashTournament, + :new_record? => true + ) + end + + it "renders new mash_tournament form" do + render + + response.should have_tag("form[action=?][method=post]", mash_tournaments_path) do + end + end +end diff --git a/rails/map-mash/spec/views/mash_tournaments/show.html.erb_spec.rb b/rails/map-mash/spec/views/mash_tournaments/show.html.erb_spec.rb new file mode 100644 index 0000000..055a930 --- /dev/null +++ b/rails/map-mash/spec/views/mash_tournaments/show.html.erb_spec.rb @@ -0,0 +1,12 @@ +require 'spec_helper' + +describe "/mash_tournaments/show.html.erb" do + include MashTournamentsHelper + before(:each) do + assigns[:mash_tournament] = @mash_tournament = stub_model(MashTournament) + end + + it "renders attributes in

" do + render + end +end