scinote-web/test/models/my_module_test.rb
2017-03-30 11:47:57 +02:00

145 lines
3.7 KiB
Ruby

require 'test_helper'
require 'helpers/archivable_model_test_helper'
require 'helpers/searchable_model_test_helper'
class MyModuleTest < ActiveSupport::TestCase
include ArchivableModelTestHelper
include SearchableModelTestHelper
def setup
@my_module = my_modules(:list_of_samples)
end
should validate_length_of(:name)
.is_at_least(Constants::NAME_MIN_LENGTH)
.is_at_most(Constants::NAME_MAX_LENGTH)
test "should validate valid module object" do
assert @my_module.valid?
end
test "should not validate without name" do
@my_module.name = ""
assert_not @my_module.valid?
@my_module.name = nil
assert_not @my_module.valid?
end
test "should not validate with non existing experiment" do
@my_module.experiment_id = 123123
assert_not @my_module.valid?
@my_module.experiment = nil
assert_not @my_module.valid?
end
test "should not validate with non existing module group, when group is set" do
@my_module.my_module_group_id = 23123
assert_not @my_module.valid?
end
test "should default to 0, when x and y not set" do
assert_equal 0, @my_module.x
assert_equal 0, @my_module.y
end
test "should default to 0, when workflow_order not set" do
assert_equal 0, @my_module.workflow_order
end
test "should have archived set" do
assert_archived_present(@my_module)
assert_active_is_inverse_of_archived(@my_module)
end
test "archiving should work" do
user = users(:steve)
archive_and_restore_action_test(@my_module, user)
end
test "where_attributes_like should work" do
attributes_like_test(MyModule, [:name, :description], "sample")
end
test "should get unassigned users" do
unassigned_users = @my_module.unassigned_users
assert_equal 1, unassigned_users.size
@my_module.users << unassigned_users.first
assert @my_module.save
unassigned_users = @my_module.unassigned_users
assert_equal 0, unassigned_users.size
end
test "should get unassigned samples" do
unassigned_samples = @my_module.unassigned_samples
assert_equal 5, unassigned_samples.size
@my_module.samples << unassigned_samples.first
assert @my_module.save
unassigned_samples = @my_module.unassigned_samples
assert_equal 4, unassigned_samples.size
end
test "should get unassigned tags" do
unassigned_tags = @my_module.unassigned_tags
assert_equal 2, unassigned_tags.size
@my_module.tags << unassigned_tags.first
assert @my_module.save
unassigned_tags = @my_module.unassigned_tags
assert_equal 1, unassigned_tags.size
end
test "should get last comments" do
skip
end
test "should get last activities" do
skip
end
test "should get specified number of samples" do
skip
end
test "should get completed steps" do
skip
end
test "should check if project is overdue" do
assert @my_module.is_overdue?
@my_module.due_date = "2025-12-04 12:00:00"
assert_not @my_module.is_overdue?
end
test "should check if overdue in days" do
days_diff = 12
@my_module.due_date = DateTime.now - days_diff
assert_equal days_diff, @my_module.overdue_for_days
end
test "should check if is due date one day prior" do
@my_module.due_date = DateTime.now + 1.hour
assert @my_module.is_one_day_prior?
end
test "should check if due date is due in specified days" do
@my_module.due_date = DateTime.now + 1.hour
assert @my_module.is_due_in?(DateTime.now, 2.hours)
end
test "should get archived results" do
archived_results = @my_module.archived_results
assert_equal 1, archived_results.size
end
test "should get downstream modules" do
skip
end
test "should get samples in JSON format" do
skip
end
test "should deep clone module" do
skip
end
end