summaryrefslogtreecommitdiff
path: root/engines/support/test/unit
diff options
context:
space:
mode:
Diffstat (limited to 'engines/support/test/unit')
-rw-r--r--engines/support/test/unit/account_extension_test.rb12
-rw-r--r--engines/support/test/unit/ticket_comment_test.rb59
-rw-r--r--engines/support/test/unit/ticket_test.rb88
3 files changed, 159 insertions, 0 deletions
diff --git a/engines/support/test/unit/account_extension_test.rb b/engines/support/test/unit/account_extension_test.rb
new file mode 100644
index 0000000..aba162c
--- /dev/null
+++ b/engines/support/test/unit/account_extension_test.rb
@@ -0,0 +1,12 @@
+require 'test_helper'
+
+class AccountExtensionTest < ActiveSupport::TestCase
+
+ test "destroying an account triggers ticket destruction" do
+ t = FactoryGirl.create :ticket_with_creator
+ u = t.created_by_user
+ Account.new(u).destroy
+ assert_equal nil, Ticket.find(t.id)
+ end
+
+end
diff --git a/engines/support/test/unit/ticket_comment_test.rb b/engines/support/test/unit/ticket_comment_test.rb
new file mode 100644
index 0000000..fe8cc95
--- /dev/null
+++ b/engines/support/test/unit/ticket_comment_test.rb
@@ -0,0 +1,59 @@
+require 'test_helper'
+
+class TicketCommentTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+
+=begin
+ setup do
+ @sample_ticket = Ticket.create :title => 'test ticket'
+ @sample_ticket.save
+ end
+=end
+
+ test "create" do
+
+ comment2 = TicketComment.new :body => "help my email is broken!"
+ assert comment2.valid?
+ #assert_not_nil comment2.posted_at #?
+ #assert_nil comment2.posted_by #if not logged in #TODO
+
+ #comment.ticket = testticket #Ticket.find_by_title("testing")
+ #assert_equal testticket.title, comment.ticket.title
+
+ #tc.ticket = Ticket.find_by_title("test title")
+ #tc.ticket.title
+ end
+
+=begin
+ test "create authenticated comment" do
+ User.current = 4
+ comment2 = TicketComment.new :body => "help my email is broken!"
+ comment2.valid? #save # should not save comment
+ assert_not_nil comment2.posted_by
+ end
+=end
+
+ test "add comments" do
+ testticket = Ticket.create :subject => "testing"
+ assert_equal testticket.comments.count, 0
+ comment = TicketComment.new :body => "my email broke"
+ #assert comment.valid? #validating or saving necessary for setting posted_at
+ #assert_not_nil comment.posted_at
+
+ testticket.comments << comment
+ assert_equal testticket.comments.count, 1
+ sleep(1) # so first comment has earlier posted_at time
+ comment2 = TicketComment.new :body => "my email broke"
+ testticket.comments << comment2 #this should validate comment2
+ testticket.valid?
+ assert_equal testticket.comments.count, 2
+ testticket.reload.destroy
+ # where should posted_at be set?
+ #assert_not_nil comment.posted_at
+ #assert_not_nil testticket.comments.last.posted_at
+ #assert testticket.comments.first.posted_at < testticket.comments.last.posted_at
+ end
+
+end
diff --git a/engines/support/test/unit/ticket_test.rb b/engines/support/test/unit/ticket_test.rb
new file mode 100644
index 0000000..f5e6ea7
--- /dev/null
+++ b/engines/support/test/unit/ticket_test.rb
@@ -0,0 +1,88 @@
+require 'test_helper'
+
+class TicketTest < ActiveSupport::TestCase
+
+ test "ticket with default attribs is valid" do
+ t = FactoryGirl.build :ticket
+ assert t.valid?
+ end
+
+ test "ticket without email is valid" do
+ t = FactoryGirl.build :ticket, email: ""
+ assert t.valid?
+ end
+
+ test "ticket validates email format" do
+ t = FactoryGirl.build :ticket, email: "aswerssfd"
+ assert !t.valid?
+ end
+
+ test "ticket open states" do
+ t = FactoryGirl.build :ticket
+ assert t.is_open
+ t.close
+ assert !t.is_open
+ t.reopen
+ assert t.is_open
+ end
+
+ test "creation validated" do
+ @sample = Ticket.new
+ assert !@sample.is_creator_validated?
+ #p current_user
+ @sample.created_by = 22 #current_user
+ assert @sample.is_creator_validated?
+ end
+
+ test "destroy all tickets from a user" do
+ t = FactoryGirl.create :ticket_with_creator
+ u = t.created_by_user
+ Ticket.destroy_all_from(u)
+ assert_equal nil, Ticket.find(t.id)
+ 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 :subject => 'test title'
+ assert_not_nil t1.code
+ assert_nil t1.created_by
+
+ User.current_test = 4
+ t2 = Ticket.create :subject => 'test title'
+ assert_nil t2.code
+ assert_not_nil t2.created_by
+ end
+=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.by_includes_post_by.key('123').each {|t| t.destroy}
+ # TODO: the by_includes_post_by view is only used for tests. Maybe we should get rid of it and change the test to including ordering?
+
+
+ testticket = Ticket.create :subject => "test retrieving commented tickets"
+ comment = TicketComment.new :body => "my email broke", :posted_by => "123"
+ assert_equal 0, testticket.comments.count
+ assert_equal [], Ticket.by_includes_post_by.key('123').all
+
+ testticket.comments << comment
+ testticket.save
+ assert_equal 1, testticket.reload.comments.count
+ assert_equal [testticket], Ticket.by_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.by_includes_post_by.key('123').all
+
+ testticket.destroy
+ assert_equal [], Ticket.by_includes_post_by.key('123').all;
+ end
+
+end