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