@@ -20,8 +20,10 @@ import io.mockk.mockk
2020import io.mockk.verify
2121import kotlinx.coroutines.runBlocking
2222import org.assertj.core.api.Assertions.assertThat
23+ import org.assertj.core.api.Assertions.assertThatExceptionOfType
2324import org.junit.Test
2425import reactor.core.publisher.Mono
26+ import java.lang.NullPointerException
2527
2628/* *
2729 * Unit tests for [RowsFetchSpec] extensions.
@@ -31,7 +33,7 @@ import reactor.core.publisher.Mono
3133class RowsFetchSpecExtensionsTests {
3234
3335 @Test // gh-63
34- fun awaitOne () {
36+ fun awaitOneWithValue () {
3537
3638 val spec = mockk<RowsFetchSpec <String >>()
3739 every { spec.one() } returns Mono .just(" foo" )
@@ -46,7 +48,52 @@ class RowsFetchSpecExtensionsTests {
4648 }
4749
4850 @Test // gh-63
49- fun awaitFirst () {
51+ fun awaitOneWithNull () {
52+
53+ val spec = mockk<RowsFetchSpec <String >>()
54+ every { spec.one() } returns Mono .empty()
55+
56+ assertThatExceptionOfType(NoSuchElementException ::class .java).isThrownBy {
57+ runBlocking { spec.awaitOne() }
58+ }
59+
60+ verify {
61+ spec.one()
62+ }
63+ }
64+
65+ @Test // gh-63
66+ fun awaitOneOrNullWithValue () {
67+
68+ val spec = mockk<RowsFetchSpec <String >>()
69+ every { spec.one() } returns Mono .just(" foo" )
70+
71+ runBlocking {
72+ assertThat(spec.awaitOneOrNull()).isEqualTo(" foo" )
73+ }
74+
75+ verify {
76+ spec.one()
77+ }
78+ }
79+
80+ @Test // gh-63
81+ fun awaitOneOrNullWithNull () {
82+
83+ val spec = mockk<RowsFetchSpec <String >>()
84+ every { spec.one() } returns Mono .empty()
85+
86+ runBlocking {
87+ assertThat(spec.awaitOneOrNull()).isNull()
88+ }
89+
90+ verify {
91+ spec.one()
92+ }
93+ }
94+
95+ @Test // gh-63
96+ fun awaitFirstWithValue () {
5097
5198 val spec = mockk<RowsFetchSpec <String >>()
5299 every { spec.first() } returns Mono .just(" foo" )
@@ -59,4 +106,49 @@ class RowsFetchSpecExtensionsTests {
59106 spec.first()
60107 }
61108 }
109+
110+ @Test // gh-63
111+ fun awaitFirstWithNull () {
112+
113+ val spec = mockk<RowsFetchSpec <String >>()
114+ every { spec.first() } returns Mono .empty()
115+
116+ assertThatExceptionOfType(NoSuchElementException ::class .java).isThrownBy {
117+ runBlocking { spec.awaitFirst() }
118+ }
119+
120+ verify {
121+ spec.first()
122+ }
123+ }
124+
125+ @Test // gh-63
126+ fun awaitFirstOrNullWithValue () {
127+
128+ val spec = mockk<RowsFetchSpec <String >>()
129+ every { spec.first() } returns Mono .just(" foo" )
130+
131+ runBlocking {
132+ assertThat(spec.awaitFirstOrNull()).isEqualTo(" foo" )
133+ }
134+
135+ verify {
136+ spec.first()
137+ }
138+ }
139+
140+ @Test // gh-63
141+ fun awaitFirstOrNullWithNull () {
142+
143+ val spec = mockk<RowsFetchSpec <String >>()
144+ every { spec.first() } returns Mono .empty()
145+
146+ runBlocking {
147+ assertThat(spec.awaitFirstOrNull()).isNull()
148+ }
149+
150+ verify {
151+ spec.first()
152+ }
153+ }
62154}
0 commit comments