This is an automated email from the ASF dual-hosted git repository.

cwylie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git


The following commit(s) were added to refs/heads/master by this push:
     new a813816  add module test for QueryableModule to allow for better 
runtime.properties testing (#12202)
a813816 is described below

commit a813816fb13713e338fe2364a915239783f1070e
Author: TSFenwick <[email protected]>
AuthorDate: Tue Jan 25 22:26:11 2022 -0800

    add module test for QueryableModule to allow for better runtime.properties 
testing (#12202)
    
    added a default GetRequestLoggerProviderTest and 
GetEmitterRequestLoggerProviderTest
---
 .../apache/druid/guice/QueryableModuleTest.java    | 98 ++++++++++++++++++++++
 1 file changed, 98 insertions(+)

diff --git 
a/server/src/test/java/org/apache/druid/guice/QueryableModuleTest.java 
b/server/src/test/java/org/apache/druid/guice/QueryableModuleTest.java
new file mode 100644
index 0000000..d37dcc2
--- /dev/null
+++ b/server/src/test/java/org/apache/druid/guice/QueryableModuleTest.java
@@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+package org.apache.druid.guice;
+
+import com.fasterxml.jackson.databind.InjectableValues;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Key;
+import org.apache.curator.shaded.com.google.common.collect.ImmutableList;
+import org.apache.druid.guice.annotations.Json;
+import org.apache.druid.jackson.JacksonModule;
+import org.apache.druid.java.util.emitter.service.ServiceEmitter;
+import org.apache.druid.server.log.EmittingRequestLogger;
+import org.apache.druid.server.log.EmittingRequestLoggerProvider;
+import org.apache.druid.server.log.NoopRequestLogger;
+import org.apache.druid.server.log.NoopRequestLoggerProvider;
+import org.apache.druid.server.log.RequestLogger;
+import org.apache.druid.server.log.RequestLoggerProvider;
+import org.apache.druid.server.metrics.NoopServiceEmitter;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.Properties;
+
+public class QueryableModuleTest
+{
+
+  @Test
+  public void testGetEmitterRequestLoggerProvider()
+  {
+    Properties properties = new Properties();
+    properties.setProperty("druid.request.logging.type", "emitter");
+    properties.setProperty("druid.request.logging.feed", "requestlog");
+    final Injector injector = makeInjector(properties);
+    RequestLoggerProvider emittingRequestLoggerProvider = 
injector.getInstance(RequestLoggerProvider.class);
+    Assert.assertTrue(emittingRequestLoggerProvider instanceof 
EmittingRequestLoggerProvider);
+    RequestLogger requestLogger = emittingRequestLoggerProvider.get();
+    Assert.assertTrue(requestLogger instanceof EmittingRequestLogger);
+  }
+
+  @Test
+  public void testGetDefaultRequestLoggerProvider()
+  {
+    Properties properties = new Properties();
+    final Injector injector = makeInjector(properties);
+    RequestLoggerProvider emittingRequestLoggerProvider = 
injector.getInstance(RequestLoggerProvider.class);
+    Assert.assertTrue(emittingRequestLoggerProvider instanceof 
NoopRequestLoggerProvider);
+    RequestLogger requestLogger = emittingRequestLoggerProvider.get();
+    Assert.assertTrue(requestLogger instanceof NoopRequestLogger);
+  }
+
+
+  private Injector makeInjector(Properties properties)
+  {
+    Injector injector = Guice.createInjector(
+        ImmutableList.of(
+            new DruidGuiceExtensions(),
+            new JacksonModule(),
+            new ConfigModule(),
+            new QueryRunnerFactoryModule(),
+            new DruidProcessingConfigModule(),
+            new BrokerProcessingModule(),
+            new LifecycleModule(),
+            binder -> {
+              binder.bind(Properties.class).toInstance(properties);
+            },
+            new QueryableModule()
+        )
+    );
+
+    ObjectMapper mapper = injector.getInstance(Key.get(ObjectMapper.class, 
Json.class));
+    mapper.registerModules(new QueryableModule().getJacksonModules());
+    mapper.setInjectableValues(new InjectableValues.Std()
+                                   .addValue(ServiceEmitter.class, new 
NoopServiceEmitter())
+    );
+
+    return injector;
+  }
+}

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to