From 30808c71b282b6bef211a5f5a5e0d83a54716838 Mon Sep 17 00:00:00 2001 From: Sarah Jamie Lewis Date: Fri, 12 Jan 2018 12:37:45 -0500 Subject: [PATCH] Testing MultiChannel Response Condition in Channel Manage --- connection/channelmanager_test.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/connection/channelmanager_test.go b/connection/channelmanager_test.go index d6dbace..0fb2339 100644 --- a/connection/channelmanager_test.go +++ b/connection/channelmanager_test.go @@ -5,6 +5,34 @@ import ( "testing" ) +type OverrideChatChannel struct { + channels.ChatChannel +} + +// Singleton - for chat channels there can only be one instance per direction +func (cc *OverrideChatChannel) Singleton() bool { + return false +} + + +func TestClientManagerDuplicateMultiple(t *testing.T) { + ccm := NewClientChannelManager() + chatChannel := new(OverrideChatChannel) + _, err := ccm.OpenChannelRequestFromPeer(2, chatChannel) + if err != nil { + t.Errorf("Opening ChatChannel should have succeeded, instead: %v", err) + } + _, err = ccm.OpenChannelRequestFromPeer(4, chatChannel) + if err != nil { + t.Errorf("Opening ChatChannel should have succeeded, instead: %v", err) + } + + channel := ccm.Channel("im.ricochet.chat", channels.Inbound) + if channel != nil { + t.Errorf("Get ChatChannel should have failed because there are 2 of them") + } +} + func TestClientManagerDuplicateChannel(t *testing.T) { ccm := NewClientChannelManager() chatChannel := new(channels.ChatChannel)