diff options
author | Heiko Bernloehr <Heiko.Bernloehr@FreeIT.de> | 2012-08-02 23:51:19 +0200 |
---|---|---|
committer | Heiko Bernloehr <Heiko.Bernloehr@FreeIT.de> | 2012-08-03 00:32:15 +0200 |
commit | cadf9b04e8bc1417e4dde1771bc6d2b01af82d1e (patch) | |
tree | 98651e137ffb422c583811f5221da130fc4a6f00 /test | |
parent | 55d853ecb1dec1d9703e908da7198894f04f40c4 (diff) | |
download | ecs2-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.rb | 44 |
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 + + |