Skip to content

Commit

Permalink
Implement some tests, replace generated ones
Browse files Browse the repository at this point in the history
  • Loading branch information
Sproinks committed Sep 7, 2012
1 parent eded5cf commit 1171540
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 61 deletions.
10 changes: 4 additions & 6 deletions app/controllers/value_sets_controller.rb
@@ -1,5 +1,3 @@
# require 'json' TODO: does rails3 need this anymore?

class ValueSetsController < ApplicationController
respond_to :html, :json, :js
skip_authorization_check
Expand Down Expand Up @@ -36,11 +34,11 @@ def create
# very important to render json here and not text
# even when debugging because ajaxForm plugin will break
json_form = JSON.parse(params[:data].to_json)
vs = ValueSet.new json_form
if vs.save
render :json => { :message => "success", :redirect => value_set_url(vs) }
@value_set = ValueSet.new json_form
if @value_set.save
render :json => { :message => "success", :redirect => value_set_url(@value_set) }
else
render :json => { :message => "failed", :errors => vs.errors }
render :json => { :message => "failed", :errors => @value_set.errors }
end
# redirect_to :action => 'show', :id => vs.id
}
Expand Down
23 changes: 20 additions & 3 deletions test/factories/factory.rb
@@ -1,13 +1,30 @@
require 'factory_girl'

FactoryGirl.define do

# "2.16.840.1.113883.3.464.0002.1138"
sequence :oid do
s = ""
9.times { s << (1..9).to_a.sample(rand(6)+1).join.to_s << "." }
s.chop
end

factory :value_set do |f|
f.category { ValueSet::Categories.sample }
f.oid "2.16.840.1.113883.3.464.0002.1138"
f.code_set "RxNorm"
f.oid { generate :oid }
f.concept "Encounters ALL inpatient and ambulatory"
f.codes { %w(99201 99202 99203 99204 99205) }
f.code_sets { [ FactoryGirl.build(:code_set) ] }
end

factory :code_set do |c|
c.oid { generate :oid }
c.sequence(:key) {|n| "key#{n}" }
c.sequence(:concept) {|n| "concept#{n}" }
c.sequence(:category) {|n| "category#{n}" }
c.sequence(:description) {|n| "description#{n}" }
c.sequence(:organization) {|n| "organization#{n}" }
c.sequence(:version) {|n| "version#{n}" }
c.codes { (100..200).to_a.sample(rand(3)+1) } # codes: [165, 173, 119]
end

factory :measure do |m|
Expand Down
94 changes: 42 additions & 52 deletions test/functional/value_sets_controller_test.rb
Expand Up @@ -3,27 +3,27 @@
class ValueSetsControllerTest < ActionController::TestCase
include Devise::TestHelpers

# setup do
# dump_database
# @vs = FactoryGirl.build(:value_set)
# @user = FactoryGirl.create(:user)
# sign_in @user
# end
#
# test "index" do
# get :index
#
# assert_response :success
# assert_template :index
# refute_nil assigns(:value_sets)
# end
#
# test "new value set" do
# get :new
#
# assert_response :success
# refute_nil assigns(:value_set)
# end
setup do
dump_database
@vs = FactoryGirl.build(:value_set)
@user = FactoryGirl.create(:user)
sign_in @user
end

test "index" do
get :index

assert_response :success
assert_template :index
refute_nil assigns(:value_sets)
end

test "new value set" do
get :new

assert_response :success
refute_nil assigns(:value_set)
end
#
# test "destroy value set" do
# assert @vs.save
Expand All @@ -33,37 +33,27 @@ class ValueSetsControllerTest < ActionController::TestCase
# assert_redirected_to value_sets_path
# end
#
# test "should not create invalid value set" do
# post :create, value_set: {category: "foobar"}
#
# assert_response 406
# assert_template :new
# refute_nil assigns(:value_set)
# refute_nil flash[:error]
# assert !assigns(:value_set).valid?
# end
#
# test "create" do
# post :create, value_set: {category: @vs.category, oid: @vs.oid}
#
# @vs = ValueSet.first
# refute_nil @vs
# assert_response 302
# assert_redirected_to value_set_path(@vs)
# refute_nil assigns(:value_set)
# assert(assigns(:value_set).persisted?)
# end
#
# test "update" do
# assert @vs.save
# @vs2 = FactoryGirl.build(:value_set)
#
# put :update, id: @vs.id, value_set: {category: @vs2.category}
#
# @vs.reload
# assert_equal @vs2.category, @vs.category
# end
#
test "should create a valid value set" do
post :create, format:'json', data: @vs.attributes
assert_response 200

json_response = JSON.parse @response.body
assert json_response["message"] == "success"

assert flash[:error].nil?
assert assigns(:value_set).class == ValueSet
assert assigns(:value_set).valid?
end

test "should update a value set" do
assert @vs.save
@vs2 = FactoryGirl.build(:value_set)

put :update, format:'json', id: @vs._id, category: @vs2.category
@vs.reload
assert_equal @vs2.category, @vs.category
end

# test "show" do
# assert @vs.save
#
Expand Down

0 comments on commit 1171540

Please sign in to comment.