From c89610d1aad8500b4f7058c970bb07a60a55a5ce Mon Sep 17 00:00:00 2001 From: jessib Date: Wed, 3 Oct 2012 16:53:00 -0700 Subject: Some model/unit test tweaks --- help/app/models/ticket.rb | 10 ++++++++++ help/app/models/ticket_comment.rb | 8 ++++---- help/test/unit/ticket_comment_test.rb | 14 +++++++++----- help/test/unit/ticket_test.rb | 5 +++++ 4 files changed, 28 insertions(+), 9 deletions(-) diff --git a/help/app/models/ticket.rb b/help/app/models/ticket.rb index 0f38bf4..784d7ef 100644 --- a/help/app/models/ticket.rb +++ b/help/app/models/ticket.rb @@ -24,6 +24,7 @@ class Ticket < CouchRest::Model::Base #property :user_verified, TrueClass, :default => false #will be true exactly when user is set #admins property :code, String, :protected => true # only should be set if created_by is nil + property :is_open, TrueClass, :default => true property :comments, [TicketComment] timestamps! @@ -50,6 +51,15 @@ class Ticket < CouchRest::Model::Base self.code = SecureRandom.hex(8) if !is_creator_validated? end + def close + self.is_open = false + save + end + + def reopen + self.is_open = true + save + end =begin def validate diff --git a/help/app/models/ticket_comment.rb b/help/app/models/ticket_comment.rb index 6c2a792..652133a 100644 --- a/help/app/models/ticket_comment.rb +++ b/help/app/models/ticket_comment.rb @@ -1,8 +1,6 @@ -class TicketComment < CouchRest::Model::Base #?? do we want this to be a base model? +class TicketComment include CouchRest::Model::Embeddable - #use_database "ticket_comments" - #belongs_to :ticket #is this best way to do it? will want to access all of a tickets comments, so maybe this isn't the way? property :posted_by, Integer, :protected => true# maybe this should be current_user if that is set, meaning the user is logged in #String # user?? # if the current user is not set, then we could just say the comment comes from an 'unauthenticated user', which would be somebody with the secret URL @@ -10,7 +8,7 @@ class TicketComment < CouchRest::Model::Base #?? do we want this to be a base mo #property :posted_verified, TrueClass, :protected => true #should be true if current_user is set when the comment is created property :body, String - before_validation :set_time, :set_posted_by, :on => :create # hmm, this requires object to be validated for these methods to be called, but if this is only embeddedable (which might be best), then not clear how to do this without manually validating. + before_validation :set_time#, :set_posted_by #design do # view :by_posted_at @@ -25,8 +23,10 @@ class TicketComment < CouchRest::Model::Base #?? do we want this to be a base mo self.posted_at = Time.now end +=begin def set_posted_by self.posted_by = User.current if User.current end +=end end diff --git a/help/test/unit/ticket_comment_test.rb b/help/test/unit/ticket_comment_test.rb index ba6120b..883720f 100644 --- a/help/test/unit/ticket_comment_test.rb +++ b/help/test/unit/ticket_comment_test.rb @@ -26,27 +26,31 @@ class TicketCommentTest < ActiveSupport::TestCase #tc.ticket.title end +=begin test "create authenticated comment" do User.current = 4 comment2 = TicketComment.new :body => "help my email is broken!" - comment2.save + comment2.valid? #save # should not save comment assert_not_nil comment2.posted_by end +=end test "add comments" do testticket = Ticket.create :title => "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 + #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" - comment2.save #possible to save only if ticketcomment is a model now - testticket.comments << comment2 + testticket.comments << comment2 #this should validate comment2 + testticket.valid? assert_equal testticket.comments.count, 2 + 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 diff --git a/help/test/unit/ticket_test.rb b/help/test/unit/ticket_test.rb index 2dbd63c..c3a4759 100644 --- a/help/test/unit/ticket_test.rb +++ b/help/test/unit/ticket_test.rb @@ -14,6 +14,11 @@ class TicketTest < ActiveSupport::TestCase 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 -- cgit v1.2.3