| 138 | } |
| 139 | |
| 140 | func TestEventsMultipleKeys(t *testing.T) { |
| 141 | b := New() |
| 142 | defer b.Close() |
| 143 | |
| 144 | sub := b.Subscribe(nil, ari.Events.All) |
| 145 | defer sub.Cancel() |
| 146 | |
| 147 | multiKeyEvent := ari.BridgeCreated{ |
| 148 | Bridge: ari.BridgeData{ |
| 149 | ID: "A", |
| 150 | ChannelIDs: []string{"x", "y"}, |
| 151 | }, |
| 152 | } |
| 153 | |
| 154 | keys := multiKeyEvent.Keys() |
| 155 | if len(keys) != 5 { |
| 156 | t.Errorf("Expected BridgeCreated.Keys() to be 2, got '%v'", len(keys)) |
| 157 | } |
| 158 | |
| 159 | b.Send(&multiKeyEvent) |
| 160 | |
| 161 | eventCount := 0 |
| 162 | |
| 163 | L: |
| 164 | for { |
| 165 | select { |
| 166 | case <-time.After(time.Millisecond): |
| 167 | break L |
| 168 | case <-sub.Events(): |
| 169 | eventCount++ |
| 170 | } |
| 171 | } |
| 172 | |
| 173 | if eventCount != 1 { |
| 174 | t.Errorf("Expected 1 event to be sent, got %v", eventCount) |
| 175 | } |
| 176 | } |