MCPcopy Index your code
hub / github.com/tinode/chat / TestUnregisterSessionSimple

Function TestUnregisterSessionSimple

server/topic_test.go:2145–2209  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2143}
2144
2145func 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 }

Callers

nothing calls this directly

Calls 9

setUpMethod · 0.95
tearDownMethod · 0.95
newSessionMethod · 0.95
finishMethod · 0.95
UserIdMethod · 0.80
unregisterSessionMethod · 0.80
UpdateLastSeenMethod · 0.65
EXPECTMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…