Skip to content

Commit 288be3b

Browse files
author
Daniel Rees
committed
Finished up channel tests
1 parent 79093f3 commit 288be3b

File tree

2 files changed

+53
-56
lines changed

2 files changed

+53
-56
lines changed

src/test/kotlin/org/phoenixframework/ChannelTest.kt

Lines changed: 11 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,23 @@ import com.nhaarman.mockitokotlin2.never
88
import com.nhaarman.mockitokotlin2.spy
99
import com.nhaarman.mockitokotlin2.times
1010
import com.nhaarman.mockitokotlin2.verify
11-
import com.nhaarman.mockitokotlin2.verifyZeroInteractions
1211
import com.nhaarman.mockitokotlin2.whenever
12+
import okhttp3.OkHttpClient
1313
import org.junit.jupiter.api.AfterEach
1414
import org.junit.jupiter.api.BeforeEach
1515
import org.junit.jupiter.api.DisplayName
1616
import org.junit.jupiter.api.Nested
1717
import org.junit.jupiter.api.Test
1818
import org.mockito.Mock
19+
import org.mockito.Mockito.verifyZeroInteractions
1920
import org.mockito.MockitoAnnotations
20-
import org.mockito.stubbing.Answer
2121
import org.phoenixframework.queue.ManualDispatchQueue
2222
import org.phoenixframework.utilities.getBindings
2323

2424
class ChannelTest {
2525

26-
companion object {
27-
const val DEFAULT_REF = "1"
28-
const val DEFAULT_TIMEOUT = 10_000L
29-
}
26+
27+
@Mock lateinit var okHttpClient: OkHttpClient
3028

3129
@Mock lateinit var socket: Socket
3230
@Mock lateinit var mockCallback: ((Message) -> Unit)
@@ -39,17 +37,10 @@ class ChannelTest {
3937
lateinit var fakeClock: ManualDispatchQueue
4038
lateinit var channel: Channel
4139

42-
var mutableRef = 0
43-
var mutableRefAnswer: Answer<String> = Answer {
44-
mutableRef += 1
45-
mutableRef.toString()
46-
}
47-
4840
@BeforeEach
4941
internal fun setUp() {
5042
MockitoAnnotations.initMocks(this)
5143

52-
mutableRef = 0
5344
fakeClock = ManualDispatchQueue()
5445

5546
whenever(socket.dispatchQueue).thenReturn(fakeClock)
@@ -164,7 +155,7 @@ class ChannelTest {
164155

165156
@BeforeEach
166157
internal fun setUp() {
167-
socket = spy(Socket("https://localhost:4000/socket"))
158+
socket = spy(Socket(url ="https://localhost:4000/socket", client = okHttpClient))
168159
socket.dispatchQueue = fakeClock
169160
channel = Channel("topic", kDefaultPayload, socket)
170161
}
@@ -260,56 +251,22 @@ class ChannelTest {
260251

261252
channel.join().receive("timeout", mockCallback)
262253

263-
verify(socket, times(1)).push(any(), any(), any(), any(), any())
254+
verify(socket, times(1)).push(any(), eq("phx_join"), any(), any(), any())
264255
verify(mockCallback, never()).invoke(any())
265256

266257
fakeClock.tick(timeout) // leave pushed to server
267-
verify(socket, times(2)).push(any(), any(), any(), any(), any())
258+
verify(socket, times(1)).push(any(), eq("phx_leave"), any(), any(), any())
268259
verify(mockCallback, times(1)).invoke(any())
269260

270-
fakeClock.tick(timeout + 1000) // leave + rejoin
271-
verify(socket, times(4)).push(any(), any(), any(), any(), any())
261+
fakeClock.tick(timeout + 1000) // rejoin
262+
verify(socket, times(2)).push(any(), eq("phx_join"), any(), any(), any())
263+
verify(socket, times(2)).push(any(), eq("phx_leave"), any(), any(), any())
272264
verify(mockCallback, times(2)).invoke(any())
273265

274266
fakeClock.tick(10_000)
275267
joinPush.trigger("ok", kEmptyPayload)
276-
verify(socket, times(6)).push(any(), any(), any(), any(), any())
268+
verify(socket, times(3)).push(any(), eq("phx_join"), any(), any(), any())
277269
assertThat(channel.state).isEqualTo(Channel.State.JOINED)
278-
279-
// var ref = 0
280-
// whenever(socket.isConnected).thenReturn(true)
281-
// whenever(socket.makeRef()).thenAnswer {
282-
// ref += 1
283-
// ref.toString()
284-
// }
285-
//
286-
// val joinPush = channel.joinPush
287-
// val timeout = channel.timeout
288-
//
289-
// channel.join()
290-
// verify(socket, times(1)).push(any(), any(), any(), any(), any())
291-
//
292-
// fakeClock.tick(timeout) // leave push sent to the server
293-
// verify(socket, times(2)).push(any(), any(), any(), any(), any())
294-
//
295-
// fakeClock.tick(1_000) // begin stepped backoff
296-
// verify(socket, times(3)).push(any(), any(), any(), any(), any())
297-
//
298-
// fakeClock.tick(2_000)
299-
// verify(socket, times(4)).push(any(), any(), any(), any(), any())
300-
//
301-
// fakeClock.tick(5_000)
302-
// verify(socket, times(5)).push(any(), any(), any(), any(), any())
303-
//
304-
// fakeClock.tick(10_000)
305-
// verify(socket, times(6)).push(any(), any(), any(), any(), any())
306-
//
307-
// joinPush.trigger("ok", kEmptyPayload)
308-
// assertThat(channel.state).isEqualTo(Channel.State.JOINED)
309-
//
310-
// fakeClock.tick(10_000)
311-
// verify(socket, times(6)).push(any(), any(), any(), any(), any())
312-
// assertThat(channel.state).isEqualTo(Channel.State.JOINED)
313270
}
314271

315272
@Test
Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,45 @@
11
package org.phoenixframework
22

3-
import org.junit.jupiter.api.Assertions.*
3+
import com.google.common.truth.Truth.assertThat
4+
import org.junit.jupiter.api.Test
45

5-
internal class DefaultsTest
6+
internal class DefaultsTest {
7+
8+
@Test
9+
internal fun `default timeout is 10_000`() {
10+
assertThat(Defaults.TIMEOUT).isEqualTo(10_000)
11+
}
12+
13+
@Test
14+
internal fun `default heartbeat is 30_000`() {
15+
assertThat(Defaults.HEARTBEAT).isEqualTo(30_000)
16+
}
17+
18+
@Test
19+
internal fun `default reconnectAfterMs returns all values`() {
20+
val reconnect = Defaults.reconnectSteppedBackOff
21+
22+
assertThat(reconnect(1)).isEqualTo(10)
23+
assertThat(reconnect(2)).isEqualTo(50)
24+
assertThat(reconnect(3)).isEqualTo(100)
25+
assertThat(reconnect(4)).isEqualTo(150)
26+
assertThat(reconnect(5)).isEqualTo(200)
27+
assertThat(reconnect(6)).isEqualTo(250)
28+
assertThat(reconnect(7)).isEqualTo(500)
29+
assertThat(reconnect(8)).isEqualTo(1_000)
30+
assertThat(reconnect(9)).isEqualTo(2_000)
31+
assertThat(reconnect(10)).isEqualTo(5_000)
32+
assertThat(reconnect(11)).isEqualTo(5_000)
33+
}
34+
35+
@Test
36+
internal fun `default rejoinAfterMs returns all values`() {
37+
val reconnect = Defaults.rejoinSteppedBackOff
38+
39+
assertThat(reconnect(1)).isEqualTo(1_000)
40+
assertThat(reconnect(2)).isEqualTo(2_000)
41+
assertThat(reconnect(3)).isEqualTo(5_000)
42+
assertThat(reconnect(4)).isEqualTo(10_000)
43+
assertThat(reconnect(5)).isEqualTo(10_000)
44+
}
45+
}

0 commit comments

Comments
 (0)