TMP
authorKai Moritz <kai@juplo.de>
Fri, 23 Feb 2024 10:39:26 +0000 (11:39 +0100)
committerKai Moritz <kai@juplo.de>
Fri, 23 Feb 2024 15:13:05 +0000 (16:13 +0100)
src/test/java/de/juplo/kafka/chat/backend/storage/mongodb/MongoDbStorageNotActiveConfiguration.java [new file with mode: 0644]

diff --git a/src/test/java/de/juplo/kafka/chat/backend/storage/mongodb/MongoDbStorageNotActiveConfiguration.java b/src/test/java/de/juplo/kafka/chat/backend/storage/mongodb/MongoDbStorageNotActiveConfiguration.java
new file mode 100644 (file)
index 0000000..b3d69ed
--- /dev/null
@@ -0,0 +1,148 @@
+package de.juplo.kafka.chat.backend.storage.mongodb;
+
+import com.mongodb.ClientSessionOptions;
+import com.mongodb.connection.ClusterDescription;
+import com.mongodb.reactivestreams.client.*;
+import de.juplo.kafka.chat.backend.ChatBackendProperties;
+import de.juplo.kafka.chat.backend.implementation.StorageStrategy;
+import org.bson.Document;
+import org.bson.conversions.Bson;
+import org.reactivestreams.Publisher;
+import org.springframework.boot.autoconfigure.AutoConfigureBefore;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.autoconfigure.mongo.MongoReactiveAutoConfiguration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.List;
+
+
+@AutoConfigureBefore(MongoReactiveAutoConfiguration.class)
+@ConditionalOnExpression("#{${chat.backend.inmemory.storage-strategy} != 'mongodb'}")
+@Configuration
+public class MongoDbStorageNotActiveConfiguration
+{
+  @Bean
+  public MongoClient dummyClient()
+  {
+    return new MongoClient() {
+      @Override
+      public MongoDatabase getDatabase(String s)
+      {
+        return null;
+      }
+
+      @Override
+      public void close()
+      {
+
+      }
+
+      @Override
+      public Publisher<String> listDatabaseNames()
+      {
+        return null;
+      }
+
+      @Override
+      public Publisher<String> listDatabaseNames(ClientSession clientSession)
+      {
+        return null;
+      }
+
+      @Override
+      public ListDatabasesPublisher<Document> listDatabases()
+      {
+        return null;
+      }
+
+      @Override
+      public <TResult> ListDatabasesPublisher<TResult> listDatabases(Class<TResult> aClass)
+      {
+        return null;
+      }
+
+      @Override
+      public ListDatabasesPublisher<Document> listDatabases(ClientSession clientSession)
+      {
+        return null;
+      }
+
+      @Override
+      public <TResult> ListDatabasesPublisher<TResult> listDatabases(ClientSession clientSession, Class<TResult> aClass)
+      {
+        return null;
+      }
+
+      @Override
+      public ChangeStreamPublisher<Document> watch()
+      {
+        return null;
+      }
+
+      @Override
+      public <TResult> ChangeStreamPublisher<TResult> watch(Class<TResult> aClass)
+      {
+        return null;
+      }
+
+      @Override
+      public ChangeStreamPublisher<Document> watch(List<? extends Bson> list)
+      {
+        return null;
+      }
+
+      @Override
+      public <TResult> ChangeStreamPublisher<TResult> watch(List<? extends Bson> list, Class<TResult> aClass)
+      {
+        return null;
+      }
+
+      @Override
+      public ChangeStreamPublisher<Document> watch(ClientSession clientSession)
+      {
+        return null;
+      }
+
+      @Override
+      public <TResult> ChangeStreamPublisher<TResult> watch(ClientSession clientSession, Class<TResult> aClass)
+      {
+        return null;
+      }
+
+      @Override
+      public ChangeStreamPublisher<Document> watch(ClientSession clientSession, List<? extends Bson> list)
+      {
+        return null;
+      }
+
+      @Override
+      public <TResult> ChangeStreamPublisher<TResult> watch(
+          ClientSession clientSession,
+          List<? extends Bson> list,
+          Class<TResult> aClass)
+      {
+        return null;
+      }
+
+      @Override
+      public Publisher<ClientSession> startSession()
+      {
+        return null;
+      }
+
+      @Override
+      public Publisher<ClientSession> startSession(ClientSessionOptions clientSessionOptions)
+      {
+        return null;
+      }
+
+      @Override
+      public ClusterDescription getClusterDescription()
+      {
+        return null;
+      }
+    };
+  }
+}