1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
require 'test_helper'
class TicketTest < ActiveSupport::TestCase
#test "the truth" do
# assert true
#end
setup do
@sample = Ticket.new
end
test "validity" do
t = Ticket.create :title => 'test title', :email => 'blah@blah.com'
assert t.valid?
assert_equal t.title, 'test title'
assert t.is_open
t.close
assert !t.is_open
t.reopen
assert t.is_open
#user = LeapWebHelp::User.new(User.valid_attributes_hash)
#user = LeapWebUsers::User.create
#t.user = user
#t.email = '' #invalid
#assert !t.valid?
#t.email = 'blah@blah.com, bb@jjj.org'
#assert t.valid?
t.email = 'bdlfjlkasfjklasjf' #invalid
#p t.email_address
#p t.email_address.strip =~ RFC822::EmailAddress
assert !t.valid?
end
test "creation validated" do
assert !@sample.is_creator_validated?
#p current_user
@sample.created_by = 22 #current_user
assert @sample.is_creator_validated?
end
=begin
# TODO: do once have current_user stuff in order
test "code if & only if not creator-validated" do
User.current_test = nil
t1 = Ticket.create :title => 'test title'
assert_not_nil t1.code
assert_nil t1.created_by
User.current_test = 4
t2 = Ticket.create :title => 'test title'
assert_nil t2.code
assert_not_nil t2.created_by
end
=end
test "finds open tickets sorted by created_at" do
tickets = Ticket.by_is_open_and_created_at.
startkey([true, 0]).
endkey([true, Time.now + 10.hours]) # some tickets were created in the future
assert_equal Ticket.by_is_open.key(true).count, tickets.count
end
test "find tickets user commented on" do
# clear old tickets just in case
# this will cause RestClient::ResourceNotFound errors if there are multiple copies of the same ticket returned
Ticket.includes_post_by.key('123').each {|t| t.destroy}
testticket = Ticket.create :title => "test retrieving commented tickets"
comment = TicketComment.new :body => "my email broke", :posted_by => "123"
assert_equal 0, testticket.comments.count
assert_equal [], Ticket.includes_post_by.key('123').all
testticket.comments << comment
testticket.save
assert_equal 1, testticket.reload.comments.count
assert_equal [testticket], Ticket.includes_post_by.key('123').all
comment = TicketComment.new :body => "another comment", :posted_by => "123"
testticket.comments << comment
testticket.save
# this will ensure that the ticket is only included once, even though the user has commented on the ticket twice:
assert_equal [testticket], Ticket.includes_post_by.key('123').all
testticket.destroy
assert_equal [], Ticket.includes_post_by.key('123').all;
end
end
|