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:
parent
c50808f68e
commit
fbb958cb41
@ -1,2 +1,4 @@
|
|||||||
class Problem < ActiveRecord::Base
|
class Problem < ActiveRecord::Base
|
||||||
|
validates :title, :content, presence: true
|
||||||
|
validates :title, uniqueness: true
|
||||||
end
|
end
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
8
test/fixtures/problems.yml
vendored
8
test/fixtures/problems.yml
vendored
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user