1
0
mirror of https://github.com/projekteuler/projekteuler.git synced 2025-12-10 08:46:41 +01:00

Add presence and uniqueness validations for problem

This commit is contained in:
Philipp Fischbeck 2014-12-10 10:44:10 +01:00
parent c50808f68e
commit fbb958cb41
4 changed files with 37 additions and 9 deletions

View File

@ -1,2 +1,4 @@
class Problem < ActiveRecord::Base class Problem < ActiveRecord::Base
validates :title, :content, presence: true
validates :title, uniqueness: true
end end

View File

@ -3,6 +3,10 @@ require 'test_helper'
class ProblemsControllerTest < ActionController::TestCase class ProblemsControllerTest < ActionController::TestCase
setup do setup do
@problem = problems(:one) @problem = problems(:one)
@update = {
title: 'New title',
content: 'This is the new content'
}
end end
test "should get index" do test "should get index" do
@ -18,7 +22,7 @@ class ProblemsControllerTest < ActionController::TestCase
test "should create problem" do test "should create problem" do
assert_difference('Problem.count') do assert_difference('Problem.count') do
post :create, problem: { content: @problem.content, title: @problem.title } post :create, problem: @update
end end
assert_redirected_to problem_path(assigns(:problem)) assert_redirected_to problem_path(assigns(:problem))
@ -35,7 +39,7 @@ class ProblemsControllerTest < ActionController::TestCase
end end
test "should update problem" do test "should update problem" do
patch :update, id: @problem, problem: { content: @problem.content, title: @problem.title } patch :update, id: @problem, problem: @update
assert_redirected_to problem_path(assigns(:problem)) assert_redirected_to problem_path(assigns(:problem))
end end

View File

@ -1,9 +1,9 @@
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
one: one:
title: MyString title: First title
content: MyText content: The content of the problem
two: two:
title: MyString title: Second title
content: MyText content: The content of the second problem

View File

@ -1,7 +1,29 @@
require 'test_helper' require 'test_helper'
class ProblemTest < ActiveSupport::TestCase class ProblemTest < ActiveSupport::TestCase
# test "the truth" do test "should not save problem without title" do
# assert true problem = Problem.new(content: 'This is some content')
# end assert_not problem.save
end
test "should not save problem without content" do
problem = Problem.new(title: 'Problem title')
assert_not problem.save
end
test "should not save problem with duplicate title" do
problem = Problem.new(
title: problems(:one).title,
content: 'This is some content'
)
assert_not problem.save
end
test "should save correct problem" do
problem = Problem.new(
title: 'A unique title',
content: 'Some content'
)
assert problem.save
end
end end