projects
/
demos
/
kafka
/
chat
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
bb1f9a4
)
WIP:test: Simp...
author
Kai Moritz
<kai@juplo.de>
Wed, 23 Aug 2023 16:30:37 +0000
(18:30 +0200)
committer
Kai Moritz
<kai@juplo.de>
Wed, 23 Aug 2023 16:30:37 +0000
(18:30 +0200)
src/main/java/de/juplo/kafka/chat/backend/persistence/inmemory/ShardedChatHome.java
patch
|
blob
|
history
src/test/java/de/juplo/kafka/chat/backend/domain/ChatHomeWithShardsTestBase.java
patch
|
blob
|
history
src/test/java/de/juplo/kafka/chat/backend/persistence/inmemory/ShardedChatHomeTest.java
patch
|
blob
|
history
diff --git
a/src/main/java/de/juplo/kafka/chat/backend/persistence/inmemory/ShardedChatHome.java
b/src/main/java/de/juplo/kafka/chat/backend/persistence/inmemory/ShardedChatHome.java
index
4fa4d9b
..
ac7a980
100644
(file)
--- a/
src/main/java/de/juplo/kafka/chat/backend/persistence/inmemory/ShardedChatHome.java
+++ b/
src/main/java/de/juplo/kafka/chat/backend/persistence/inmemory/ShardedChatHome.java
@@
-44,9
+44,9
@@
public class ShardedChatHome implements ChatHome
public Mono<ChatRoom> getChatRoom(UUID id)
{
int shard = selectShard(id);
public Mono<ChatRoom> getChatRoom(UUID id)
{
int shard = selectShard(id);
- if (chatHomes[shard] == null)
- throw new ShardNotOwnedException(shard);
-
return
chatHomes[shard].getChatRoom(id);
+ return chatHomes[shard] == null
+ ? Mono.error(new ShardNotOwnedException(shard))
+
:
chatHomes[shard].getChatRoom(id);
}
@Override
}
@Override
diff --git
a/src/test/java/de/juplo/kafka/chat/backend/domain/ChatHomeWithShardsTestBase.java
b/src/test/java/de/juplo/kafka/chat/backend/domain/ChatHomeWithShardsTestBase.java
index
a417e6f
..
587c754
100644
(file)
--- a/
src/test/java/de/juplo/kafka/chat/backend/domain/ChatHomeWithShardsTestBase.java
+++ b/
src/test/java/de/juplo/kafka/chat/backend/domain/ChatHomeWithShardsTestBase.java
@@
-24,9
+24,9
@@
public class ChatHomeWithShardsTestBase extends ChatHomeTestBase
// Then
assertThat(mono).sendsError(e ->
{
// Then
assertThat(mono).sendsError(e ->
{
- assertThat(e).isInstanceOf(
UnknownChatroom
Exception.class);
-
UnknownChatroomException unknownChatroomException = (UnknownChatroom
Exception) e;
- assertThat(
unknownChatroomException.getChatroomId()).isEqualTo(chatRoomId
);
+ assertThat(e).isInstanceOf(
ShardNotOwned
Exception.class);
+
ShardNotOwnedException shardNotOwnedException = (ShardNotOwned
Exception) e;
+ assertThat(
shardNotOwnedException.getShard()).isEqualTo(0
);
});
}
}
});
}
}
diff --git
a/src/test/java/de/juplo/kafka/chat/backend/persistence/inmemory/ShardedChatHomeTest.java
b/src/test/java/de/juplo/kafka/chat/backend/persistence/inmemory/ShardedChatHomeTest.java
index
ff82986
..
d36bf22
100644
(file)
--- a/
src/test/java/de/juplo/kafka/chat/backend/persistence/inmemory/ShardedChatHomeTest.java
+++ b/
src/test/java/de/juplo/kafka/chat/backend/persistence/inmemory/ShardedChatHomeTest.java
@@
-19,52
+19,46
@@
public class ShardedChatHomeTest extends ChatHomeWithShardsTestBase
{
@Bean
ShardedChatHome chatHome(
{
@Bean
ShardedChatHome chatHome(
- Integer numShards,
- int[] ownedShards,
InMemoryChatHomeService chatHomeService)
{
InMemoryChatHomeService chatHomeService)
{
- SimpleChatHome[] chatHomes = new SimpleChatHome[numShards];
+ SimpleChatHome[] chatHomes = new SimpleChatHome[numShards
()
];
IntStream
IntStream
- .of(ownedShards)
+ .of(ownedShards
()
)
.forEach(shard -> chatHomes[shard] = new SimpleChatHome(chatHomeService, shard));
.forEach(shard -> chatHomes[shard] = new SimpleChatHome(chatHomeService, shard));
- ShardingStrategy strategy = new KafkaLikeShardingStrategy(numShards);
+ ShardingStrategy strategy = new KafkaLikeShardingStrategy(numShards
()
);
return new ShardedChatHome(chatHomes, strategy);
}
@Bean
InMemoryChatHomeService chatHomeService(
return new ShardedChatHome(chatHomes, strategy);
}
@Bean
InMemoryChatHomeService chatHomeService(
- Integer numShards,
- int[] ownedShards,
StorageStrategy storageStrategy)
{
return new InMemoryChatHomeService(
StorageStrategy storageStrategy)
{
return new InMemoryChatHomeService(
- numShards,
- ownedShards,
+ numShards
()
,
+ ownedShards
()
,
storageStrategy.read());
}
@Bean
storageStrategy.read());
}
@Bean
- public FilesStorageStrategy storageStrategy(
Integer numShards
)
+ public FilesStorageStrategy storageStrategy()
{
return new FilesStorageStrategy(
Paths.get("target", "test-classes", "data", "files"),
Clock.systemDefaultZone(),
8,
{
return new FilesStorageStrategy(
Paths.get("target", "test-classes", "data", "files"),
Clock.systemDefaultZone(),
8,
- new KafkaLikeShardingStrategy(numShards),
+ new KafkaLikeShardingStrategy(numShards
()
),
messageFlux -> new InMemoryChatRoomService(messageFlux),
new ObjectMapper());
}
messageFlux -> new InMemoryChatRoomService(messageFlux),
new ObjectMapper());
}
- @Bean
Integer numShards()
{
return 10;
}
Integer numShards()
{
return 10;
}
- @Bean
int[] ownedShards()
{
return new int[] { 2 };
int[] ownedShards()
{
return new int[] { 2 };