@@ -5,7 +5,7 @@ import kotlinx.coroutines.flow.MutableSharedFlow
5
5
import kotlinx.coroutines.flow.first
6
6
import kotlinx.coroutines.flow.flowOf
7
7
import kotlinx.coroutines.runBlocking
8
- import org.junit.Assert
8
+ import org.junit.Assert.assertEquals
9
9
import org.xmtp.android.library.codecs.Fetcher
10
10
import org.xmtp.android.library.messages.ContactBundle
11
11
import org.xmtp.android.library.messages.Envelope
@@ -44,11 +44,13 @@ class FakeWallet : SigningKey {
44
44
}
45
45
46
46
override suspend fun sign (data : ByteArray ): Signature {
47
- return privateKeyBuilder.sign(data)
47
+ val signature = privateKeyBuilder.sign(data)
48
+ return signature
48
49
}
49
50
50
51
override suspend fun sign (message : String ): Signature {
51
- return privateKeyBuilder.sign(message)
52
+ val signature = privateKeyBuilder.sign(message)
53
+ return signature
52
54
}
53
55
54
56
override val address: String
@@ -66,13 +68,13 @@ class FakeApiClient : ApiClient {
66
68
private var authToken: String? = null
67
69
private val responses: MutableMap <String , List <Envelope >> = mutableMapOf ()
68
70
val published: MutableList <Envelope > = mutableListOf ()
69
- private var forbiddingQueries = false
71
+ var forbiddingQueries = false
70
72
private var stream = FakeStreamHolder ()
71
73
72
74
fun assertNoPublish (callback : () -> Unit ) {
73
75
val oldCount = published.size
74
76
callback()
75
- Assert . assertEquals(oldCount, published.size)
77
+ assertEquals(oldCount, published.size)
76
78
}
77
79
78
80
fun assertNoQuery (callback : () -> Unit ) {
@@ -104,14 +106,6 @@ class FakeApiClient : ApiClient {
104
106
return query(topic = topic.description, pagination)
105
107
}
106
108
107
- override suspend fun batchQuery (requests : List <MessageApiOuterClass .QueryRequest >): MessageApiOuterClass .BatchQueryResponse {
108
- val response = query(requests.first().getContentTopics(0 ))
109
-
110
- return MessageApiOuterClass .BatchQueryResponse .newBuilder().also {
111
- it.addResponses(response)
112
- }.build()
113
- }
114
-
115
109
suspend fun send (envelope : Envelope ) {
116
110
stream.emit(envelope)
117
111
}
@@ -123,6 +117,16 @@ class FakeApiClient : ApiClient {
123
117
return query(topic = topic, pagination = pagination).envelopesList
124
118
}
125
119
120
+ override suspend fun batchQuery (requests : List <MessageApiOuterClass .QueryRequest >): MessageApiOuterClass .BatchQueryResponse {
121
+ val responses = requests.map {
122
+ query(it.getContentTopics(0 ), Pagination (after = Date (it.startTimeNs)))
123
+ }
124
+
125
+ return MessageApiOuterClass .BatchQueryResponse .newBuilder().also {
126
+ it.addAllResponses(responses)
127
+ }.build()
128
+ }
129
+
126
130
override suspend fun query (
127
131
topic : String ,
128
132
pagination : Pagination ? ,
@@ -141,12 +145,14 @@ class FakeApiClient : ApiClient {
141
145
142
146
val startAt = pagination?.before
143
147
if (startAt != null ) {
144
- result = result.filter { it.timestampNs < startAt.time * 1_000_000 }
148
+ result = result.filter { it.timestampNs < startAt.time }
145
149
.sortedBy { it.timestampNs }.toMutableList()
146
150
}
147
151
val endAt = pagination?.after
148
152
if (endAt != null ) {
149
- result = result.filter { it.timestampNs > endAt.time * 1_000_000 }
153
+ result = result.filter {
154
+ it.timestampNs > endAt.time
155
+ }
150
156
.sortedBy { it.timestampNs }.toMutableList()
151
157
}
152
158
val limit = pagination?.limit
@@ -169,7 +175,6 @@ class FakeApiClient : ApiClient {
169
175
MessageApiOuterClass .SortDirection .SORT_DIRECTION_ASCENDING -> {
170
176
result = result.reversed().toMutableList()
171
177
}
172
-
173
178
else -> Unit
174
179
}
175
180
}
@@ -186,7 +191,6 @@ class FakeApiClient : ApiClient {
186
191
published.addAll(envelopes)
187
192
return PublishResponse .newBuilder().build()
188
193
}
189
-
190
194
override suspend fun subscribe2 (request : Flow <MessageApiOuterClass .SubscribeRequest >): Flow <MessageApiOuterClass .Envelope > {
191
195
val env = stream.counts().first()
192
196
0 commit comments