|
38 | 38 | import org.springframework.integration.redis.rules.RedisAvailable; |
39 | 39 | import org.springframework.integration.redis.rules.RedisAvailableRule; |
40 | 40 | import org.springframework.integration.redis.rules.RedisAvailableTests; |
| 41 | +import org.springframework.integration.redis.support.RedisHeaders; |
41 | 42 | import org.springframework.integration.redis.util.Address; |
42 | 43 | import org.springframework.integration.redis.util.Person; |
43 | 44 | import org.springframework.messaging.support.GenericMessage; |
@@ -118,15 +119,39 @@ public void testReadingMessageAsStandaloneClient() { |
118 | 119 |
|
119 | 120 | Flux.from(this.fluxMessageChannel) |
120 | 121 | .as(StepVerifier::create) |
121 | | - .assertNext(message -> assertThat(message.getPayload()).isEqualTo(person)) |
| 122 | + .assertNext(message -> { |
| 123 | + assertThat(message.getPayload()).isEqualTo(person); |
| 124 | + assertThat(message.getHeaders()).containsKeys(RedisHeaders.STREAM_KEY, |
| 125 | + RedisHeaders.STREAM_MESSAGE_ID); |
| 126 | + }) |
122 | 127 | .thenCancel() |
123 | 128 | .verify(Duration.ofSeconds(10)); |
124 | 129 | } |
125 | 130 |
|
126 | 131 | @Test |
127 | 132 | @RedisAvailable |
128 | 133 | public void testReadingMessageAsConsumerInConsumerGroup() { |
129 | | - //TODO find why the test above does not execute before implementing this one |
| 134 | + Address address = new Address("Winterfell, Westeros"); |
| 135 | + Person person = new Person(address, "John Snow"); |
| 136 | + |
| 137 | + this.template.opsForStream().createGroup(STREAM_KEY, this.redisStreamMessageProducer.getBeanName()) |
| 138 | + .subscribe(); |
| 139 | + |
| 140 | + this.redisStreamMessageProducer.setCreateConsumerGroup(false); |
| 141 | + this.redisStreamMessageProducer.setConsumerName(CONSUMER); |
| 142 | + this.redisStreamMessageProducer.afterPropertiesSet(); |
| 143 | + this.redisStreamMessageProducer.start(); |
| 144 | + |
| 145 | + this.messageHandler.handleMessage(new GenericMessage<>(person)); |
| 146 | + |
| 147 | + Flux.from(this.fluxMessageChannel) |
| 148 | + .as(StepVerifier::create) |
| 149 | + .assertNext(message -> { |
| 150 | + assertThat(message.getPayload()).isEqualTo(person); |
| 151 | + assertThat(message.getHeaders()).containsKeys(RedisHeaders.CONSUMER_GROUP, RedisHeaders.CONSUMER); |
| 152 | + }) |
| 153 | + .thenCancel() |
| 154 | + .verify(Duration.ofSeconds(10)); |
130 | 155 | } |
131 | 156 |
|
132 | 157 | @Configuration |
|
0 commit comments