aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorHeiko Bernloehr <Heiko.Bernloehr@FreeIT.de>2012-08-02 23:51:19 +0200
committerHeiko Bernloehr <Heiko.Bernloehr@FreeIT.de>2012-08-03 00:32:15 +0200
commitcadf9b04e8bc1417e4dde1771bc6d2b01af82d1e (patch)
tree98651e137ffb422c583811f5221da130fc4a6f00 /test
parent55d853ecb1dec1d9703e908da7198894f04f40c4 (diff)
downloadecs2-cadf9b04e8bc1417e4dde1771bc6d2b01af82d1e.tar.gz
ecs2-cadf9b04e8bc1417e4dde1771bc6d2b01af82d1e.zip
Update operation now generates several events.
If X-EcsReceiverMemberships or X-EcsReceiverCommunities were changed following events will be generated: * New receivers get "created" event. * Removed receivers get "destroyed" event. * Old receivers get "updated" events.
Diffstat (limited to 'test')
-rw-r--r--test/unit/message_test.rb44
1 files changed, 41 insertions, 3 deletions
diff --git a/test/unit/message_test.rb b/test/unit/message_test.rb
index 0bb7688..f1ca8d2 100644
--- a/test/unit/message_test.rb
+++ b/test/unit/message_test.rb
@@ -18,9 +18,47 @@
require 'test_helper'
+# request stub
+class TestRequest
+ attr_accessor :headers, :raw_post
+ def initialize(h,rp); @headers, @raw_post = h, rp; end
+end
+
class MessageTest < ActiveSupport::TestCase
- # Replace this with your real tests.
- test "the truth" do
- assert true
+ test "named_scope__for_participant_receiver" do
+ m= Message.for_participant_receiver participants(:ilias_stgt)
+ assert_equal 2,m.length
+ assert m.include?(messages(:numlab_ex1))
+ assert m.include?(messages(:numlab_ulm_ex1))
end
+
+ # Change receivers community SUV (:ilias_stgt, :ilias_ulm) to :numlab_teacher
+ # and :ilias_ulm
+ # Note: In the fixtures :ilias_stgt is configured as a receiver because it is
+ # in the SUV community. This is not correct because :ilias_stgt doesn't set
+ # community_selfrouting, but it's history.
+ test "update_receivers" do
+ headers={
+ "X-EcsReceiverMemberships" => "7,2",
+ "CONTENT_TYPE" => "text/plain"
+ }
+ raw_post= "hallo ich war da"
+ request= TestRequest.new(headers, raw_post)
+ assert_nothing_raised do
+ messages(:numlab_ex1).update__(request, "numlab", "exercises", participants(:ilias_stgt))
+ end
+ # :numlab_teacher is a new receiver and gets an created event
+ assert Participant.for_message(messages(:numlab_ex1)).uniq.include?(participants(:numlab_teacher))
+ assert Event.find_by_participant_id_and_ev_type_id(participants(:numlab_teacher).id,EvType.find_by_name("created"))
+ # :ilias_stgt isn't a receiver anymore and gets an destroyed event (:ilias_stgt was a receiver through fixture)
+ assert !Participant.for_message(messages(:numlab_ex1)).uniq.include?(participants(:ilias_stgt))
+ assert Event.find_by_participant_id_and_ev_type_id(participants(:ilias_stgt).id,EvType.find_by_name("destroyed"))
+ # :ilias_ulm is still a receiver and gets an updated event
+ assert Participant.for_message(messages(:numlab_ex1)).uniq.include?(participants(:ilias_ulm))
+ assert Event.find_by_participant_id_and_ev_type_id(participants(:ilias_ulm).id,EvType.find_by_name("updated"))
+ # number of receivers have to be two
+ assert_equal 2, Participant.for_message(messages(:numlab_ex1)).uniq.length
+ end
end
+
+