(t *testing.T)
| 2143 | } |
| 2144 | |
| 2145 | func TestUnregisterSessionSimple(t *testing.T) { |
| 2146 | topicName := "usrMe" |
| 2147 | numUsers := 1 |
| 2148 | helper := TopicTestHelper{} |
| 2149 | helper.setUp(t, numUsers, types.TopicCatMe, topicName /*attach=*/, true) |
| 2150 | defer helper.tearDown() |
| 2151 | |
| 2152 | uid := helper.uids[0] |
| 2153 | helper.uu.EXPECT().UpdateLastSeen(uid, gomock.Any(), gomock.Any()).Return(nil) |
| 2154 | |
| 2155 | // Add a couple more sessions. |
| 2156 | for i := 1; i < 3; i++ { |
| 2157 | s, r := helper.newSession(fmt.Sprintf("sid%d", i), uid) |
| 2158 | helper.sessions = append(helper.sessions, s) |
| 2159 | helper.results = append(helper.results, r) |
| 2160 | helper.topic.sessions[s] = perSessionData{uid: uid} |
| 2161 | pu := helper.topic.perUser[uid] |
| 2162 | pu.online++ |
| 2163 | helper.topic.perUser[uid] = pu |
| 2164 | } |
| 2165 | |
| 2166 | // Initial online and attach session counts. |
| 2167 | if len(helper.topic.sessions) != 3 { |
| 2168 | helper.finish() |
| 2169 | t.Fatalf("Initially attached sessions: expected 3 vs found %d", len(helper.topic.sessions)) |
| 2170 | } |
| 2171 | if online := helper.topic.perUser[uid].online; online != 3 { |
| 2172 | t.Errorf("Number of online sessions: expected 3 vs found %d", online) |
| 2173 | } |
| 2174 | |
| 2175 | s := helper.sessions[0] |
| 2176 | r := helper.results[0] |
| 2177 | leave := &ClientComMessage{ |
| 2178 | Leave: &MsgClientLeave{ |
| 2179 | Id: "id456", |
| 2180 | Topic: topicName, |
| 2181 | }, |
| 2182 | AsUser: uid.UserId(), |
| 2183 | sess: s, |
| 2184 | init: true, |
| 2185 | } |
| 2186 | helper.topic.unregisterSession(leave) |
| 2187 | |
| 2188 | helper.finish() |
| 2189 | // Check for errors from testHubLoop |
| 2190 | if errorMsgs, hasError := helper.hubMessages["__ERROR__"]; hasError { |
| 2191 | t.Fatal(errorMsgs[0].Ctrl.Text) |
| 2192 | } |
| 2193 | |
| 2194 | if len(helper.topic.sessions) != 2 { |
| 2195 | t.Errorf("Attached sessions: expected 2, found %d", len(helper.topic.sessions)) |
| 2196 | } |
| 2197 | if len(s.subs) != 0 { |
| 2198 | t.Errorf("Session subscriptions: expected 0, found %d", len(helper.sessions[0].subs)) |
| 2199 | } |
| 2200 | if online := helper.topic.perUser[uid].online; online != 2 { |
| 2201 | t.Errorf("Number of online sessions after unregistering: expected 2, found %d", online) |
| 2202 | } |
nothing calls this directly
no test coverage detected
searching dependent graphs…