@@ -20,8 +20,10 @@ import io.mockk.mockk
20
20
import io.mockk.verify
21
21
import kotlinx.coroutines.runBlocking
22
22
import org.assertj.core.api.Assertions.assertThat
23
+ import org.assertj.core.api.Assertions.assertThatExceptionOfType
23
24
import org.junit.Test
24
25
import reactor.core.publisher.Mono
26
+ import java.lang.NullPointerException
25
27
26
28
/* *
27
29
* Unit tests for [RowsFetchSpec] extensions.
@@ -31,7 +33,7 @@ import reactor.core.publisher.Mono
31
33
class RowsFetchSpecExtensionsTests {
32
34
33
35
@Test // gh-63
34
- fun awaitOne () {
36
+ fun awaitOneWithValue () {
35
37
36
38
val spec = mockk<RowsFetchSpec <String >>()
37
39
every { spec.one() } returns Mono .just(" foo" )
@@ -46,7 +48,52 @@ class RowsFetchSpecExtensionsTests {
46
48
}
47
49
48
50
@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 () {
50
97
51
98
val spec = mockk<RowsFetchSpec <String >>()
52
99
every { spec.first() } returns Mono .just(" foo" )
@@ -59,4 +106,49 @@ class RowsFetchSpecExtensionsTests {
59
106
spec.first()
60
107
}
61
108
}
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
+ }
62
154
}
0 commit comments