1
0
mirror of https://github.com/projekteuler/projekteuler.git synced 2025-12-10 00:36:42 +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
validates :title, :content, presence: true
validates :title, uniqueness: true
end

View File

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

View File

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

View File

@ -1,7 +1,29 @@
require 'test_helper'
class ProblemTest < ActiveSupport::TestCase
# test "the truth" do
# assert true
# end
test "should not save problem without title" do
problem = Problem.new(content: 'This is some content')
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