From ed10f6bece0b55e76e890e54c0fee5b16e09d14c Mon Sep 17 00:00:00 2001 From: sahusanket Date: Thu, 24 Oct 2024 17:36:20 +0530 Subject: [PATCH] Fixing unit tests --- .../runtimejob/DefaultRuntimeJobTest.java | 60 ++++++++++++------- .../InternalServiceRoutingHandlerTest.java | 2 + .../monitor/RuntimeClientServerTest.java | 2 + .../monitor/RuntimeServiceRoutingTest.java | 2 + .../app/services/http/AppFabricTestBase.java | 2 + .../internal/guice/AppFabricTestModule.java | 2 + .../provisioner/TetheringProvisionerTest.java | 2 + .../TetheringRuntimeJobManagerTest.java | 2 + .../context/AuthenticationContextModules.java | 21 +------ .../AuthorizationTestModule.java | 3 + .../LeaderElectionMessagingServiceTest.java | 3 +- .../server/MessagingHttpServiceTest.java | 2 + .../logging/appender/tms/TestTMSLogging.java | 2 + .../io/cdap/cdap/metrics/MetricsTestBase.java | 2 + .../MetricsAdminSubscriberServiceTest.java | 4 ++ 15 files changed, 67 insertions(+), 44 deletions(-) diff --git a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/distributed/runtimejob/DefaultRuntimeJobTest.java b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/distributed/runtimejob/DefaultRuntimeJobTest.java index e712e48a0ff5..57d7c58b822a 100644 --- a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/distributed/runtimejob/DefaultRuntimeJobTest.java +++ b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/distributed/runtimejob/DefaultRuntimeJobTest.java @@ -16,8 +16,11 @@ package io.cdap.cdap.internal.app.runtime.distributed.runtimejob; +import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Injector; +import com.google.inject.Module; +import io.cdap.cdap.api.auditlogging.AuditLogWriter; import io.cdap.cdap.app.runtime.Arguments; import io.cdap.cdap.app.runtime.ProgramRunnerFactory; import io.cdap.cdap.common.app.RunIds; @@ -43,6 +46,7 @@ import io.cdap.cdap.runtime.spi.runtimejob.RuntimeJobEnvironment; import java.io.IOException; import java.util.Collections; +import java.util.List; import java.util.Map; import org.apache.twill.api.TwillRunner; import org.apache.twill.filesystem.LocalLocationFactory; @@ -121,29 +125,39 @@ private void testInjector(LaunchMode launchMode) throws IOException { SimpleProgramOptions programOpts = new SimpleProgramOptions( programRunId.getParent(), systemArgs, new BasicArguments()); - Injector injector = Guice.createInjector( - defaultRuntimeJob.createModules(new RuntimeJobEnvironment() { - - @Override - public LocationFactory getLocationFactory() { - return locationFactory; - } - - @Override - public TwillRunner getTwillRunner() { - return new NoopTwillRunnerService(); - } - - @Override - public Map getProperties() { - return Collections.emptyMap(); - } - - @Override - public LaunchMode getLaunchMode() { - return launchMode; - } - }, cConf, programRunId, programOpts)); + List moduleList = defaultRuntimeJob.createModules(new RuntimeJobEnvironment() { + + @Override + public LocationFactory getLocationFactory() { + return locationFactory; + } + + @Override + public TwillRunner getTwillRunner() { + return new NoopTwillRunnerService(); + } + + @Override + public Map getProperties() { + return Collections.emptyMap(); + } + + @Override + public LaunchMode getLaunchMode() { + return launchMode; + } + }, cConf, programRunId, programOpts); + + moduleList.add( + new AbstractModule() { + @Override + protected void configure() { + bind(AuditLogWriter.class).toInstance(auditLogContexts -> { + }); + } + }); + + Injector injector = Guice.createInjector(moduleList); injector.getInstance(LogAppenderInitializer.class); defaultRuntimeJob.createCoreServices(injector, systemArgs, cluster); diff --git a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/monitor/InternalServiceRoutingHandlerTest.java b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/monitor/InternalServiceRoutingHandlerTest.java index 78cec40bab7f..b706160516fa 100644 --- a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/monitor/InternalServiceRoutingHandlerTest.java +++ b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/monitor/InternalServiceRoutingHandlerTest.java @@ -21,6 +21,7 @@ import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.ProvisionException; +import io.cdap.cdap.api.auditlogging.AuditLogWriter; import io.cdap.cdap.api.metrics.MetricsCollectionService; import io.cdap.cdap.common.conf.CConfiguration; import io.cdap.cdap.common.conf.Constants; @@ -93,6 +94,7 @@ protected void configure() { bind(InternalAuthenticator.class).to( NoOpInternalAuthenticator.class); bind(RemoteAuthenticator.class).to(NoOpRemoteAuthenticator.class); + bind(AuditLogWriter.class).toInstance(auditLogContexts -> {}); } } ); diff --git a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/monitor/RuntimeClientServerTest.java b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/monitor/RuntimeClientServerTest.java index 12556ec94e03..77c779b12d81 100644 --- a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/monitor/RuntimeClientServerTest.java +++ b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/monitor/RuntimeClientServerTest.java @@ -22,6 +22,7 @@ import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Injector; +import io.cdap.cdap.api.auditlogging.AuditLogWriter; import io.cdap.cdap.api.dataset.lib.CloseableIterator; import io.cdap.cdap.api.messaging.Message; import io.cdap.cdap.api.messaging.MessagingContext; @@ -136,6 +137,7 @@ protected void bindLogProcessor() { @Override protected void configure() { bind(MetricsCollectionService.class).to(NoOpMetricsCollectionService.class); + bind(AuditLogWriter.class).toInstance(auditLogContexts -> {}); } } ); diff --git a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/monitor/RuntimeServiceRoutingTest.java b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/monitor/RuntimeServiceRoutingTest.java index 3f75978b4295..8a4931f542be 100644 --- a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/monitor/RuntimeServiceRoutingTest.java +++ b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/monitor/RuntimeServiceRoutingTest.java @@ -24,6 +24,7 @@ import com.google.inject.Injector; import com.google.inject.PrivateModule; import com.google.inject.Provider; +import io.cdap.cdap.api.auditlogging.AuditLogWriter; import io.cdap.cdap.api.metrics.MetricsCollectionService; import io.cdap.cdap.app.guice.RuntimeServerModule; import io.cdap.cdap.common.app.RunIds; @@ -133,6 +134,7 @@ protected void bindLogProcessor() { @Override protected void configure() { bind(MetricsCollectionService.class).to(NoOpMetricsCollectionService.class); + bind(AuditLogWriter.class).toInstance(auditLogContexts -> {}); } } ); diff --git a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/services/http/AppFabricTestBase.java b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/services/http/AppFabricTestBase.java index 4807c5599f84..26916e4e040a 100644 --- a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/services/http/AppFabricTestBase.java +++ b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/services/http/AppFabricTestBase.java @@ -36,6 +36,7 @@ import io.cdap.cdap.api.Config; import io.cdap.cdap.api.ProgramStatus; import io.cdap.cdap.api.artifact.ArtifactRange; +import io.cdap.cdap.api.auditlogging.AuditLogWriter; import io.cdap.cdap.api.dataset.lib.cube.AggregationFunction; import io.cdap.cdap.api.dataset.lib.cube.TimeValue; import io.cdap.cdap.api.metadata.MetadataEntity; @@ -245,6 +246,7 @@ protected void configure() { // needed because we set Kerberos to true in DefaultNamespaceAdminTest bind(UGIProvider.class).to(CurrentUGIProvider.class); bind(MetadataSubscriberService.class).in(Scopes.SINGLETON); + bind(AuditLogWriter.class).toInstance(auditLogContexts -> {}); } }); } diff --git a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/guice/AppFabricTestModule.java b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/guice/AppFabricTestModule.java index d0479c55c8a1..278ab4d3c187 100644 --- a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/guice/AppFabricTestModule.java +++ b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/guice/AppFabricTestModule.java @@ -17,6 +17,7 @@ package io.cdap.cdap.internal.guice; import com.google.inject.AbstractModule; +import io.cdap.cdap.api.auditlogging.AuditLogWriter; import io.cdap.cdap.app.guice.AppFabricServiceRuntimeModule; import io.cdap.cdap.app.guice.AuthorizationModule; import io.cdap.cdap.app.guice.MonitorHandlerModule; @@ -110,5 +111,6 @@ protected void configure() { install(new MockProvisionerModule()); // Needed by MonitorHandlerModuler bind(TwillRunner.class).to(NoopTwillRunnerService.class); + bind(AuditLogWriter.class).toInstance(auditLogContexts -> {}); } } diff --git a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/tethering/runtime/spi/provisioner/TetheringProvisionerTest.java b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/tethering/runtime/spi/provisioner/TetheringProvisionerTest.java index ac5e24eb5fdf..e98caf4f2045 100644 --- a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/tethering/runtime/spi/provisioner/TetheringProvisionerTest.java +++ b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/tethering/runtime/spi/provisioner/TetheringProvisionerTest.java @@ -19,6 +19,7 @@ import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Injector; +import io.cdap.cdap.api.auditlogging.AuditLogWriter; import io.cdap.cdap.api.metrics.MetricsCollectionService; import io.cdap.cdap.api.security.store.SecureStore; import io.cdap.cdap.app.runtime.NoOpProgramStateWriter; @@ -72,6 +73,7 @@ protected void configure() { bind(MetricsCollectionService.class).to(NoOpMetricsCollectionService.class); bind(SecureStore.class).toInstance(FakeSecureStore.builder().build()); bind(ProgramStateWriter.class).to(NoOpProgramStateWriter.class); + bind(AuditLogWriter.class).toInstance(auditLogContexts -> {}); } } ); diff --git a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/tethering/runtime/spi/runtimejob/TetheringRuntimeJobManagerTest.java b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/tethering/runtime/spi/runtimejob/TetheringRuntimeJobManagerTest.java index f1bfbc83f4f8..15f23cd00caf 100644 --- a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/tethering/runtime/spi/runtimejob/TetheringRuntimeJobManagerTest.java +++ b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/tethering/runtime/spi/runtimejob/TetheringRuntimeJobManagerTest.java @@ -26,6 +26,7 @@ import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.Scopes; +import io.cdap.cdap.api.auditlogging.AuditLogWriter; import io.cdap.cdap.api.dataset.lib.CloseableIterator; import io.cdap.cdap.api.messaging.Message; import io.cdap.cdap.api.messaging.MessageFetcher; @@ -127,6 +128,7 @@ public static void setUp() throws IOException, TopicAlreadyExistsException, Peer @Override protected void configure() { bind(MetricsCollectionService.class).to(NoOpMetricsCollectionService.class).in(Scopes.SINGLETON); + bind(AuditLogWriter.class).toInstance(auditLogContexts -> {}); } }); // Define all StructuredTable before starting any services that need StructuredTable diff --git a/cdap-security/src/main/java/io/cdap/cdap/security/auth/context/AuthenticationContextModules.java b/cdap-security/src/main/java/io/cdap/cdap/security/auth/context/AuthenticationContextModules.java index 355e56e11a33..f93ad39c7062 100644 --- a/cdap-security/src/main/java/io/cdap/cdap/security/auth/context/AuthenticationContextModules.java +++ b/cdap-security/src/main/java/io/cdap/cdap/security/auth/context/AuthenticationContextModules.java @@ -24,7 +24,6 @@ import com.google.inject.PrivateModule; import com.google.inject.Provider; import com.google.inject.TypeLiteral; -import io.cdap.cdap.api.auditlogging.AuditLogWriter; import io.cdap.cdap.common.conf.CConfiguration; import io.cdap.cdap.common.conf.Constants; import io.cdap.cdap.common.internal.remote.DefaultInternalAuthenticator; @@ -40,9 +39,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.Queue; -import io.cdap.cdap.security.spi.authorization.AuditLogContext; import org.apache.hadoop.security.UserGroupInformation; /** @@ -179,7 +176,7 @@ public Module getNoOpModule() { protected void configure() { bind(AuthenticationContext.class).to(AuthenticationTestContext.class); bind(InternalAuthenticator.class).toProvider(InternalAuthenticatorProvider.class); - bind(AuditLogWriter.class).to(NoOpAuditLogWriter.class); +// bind(AuditLogWriter.class).to(NoOpAuditLogWriter.class); } }; } @@ -236,20 +233,4 @@ public AuthenticationContext get() { return injector.getInstance(MasterAuthenticationContext.class); } } - - /** - * A NO OP implementation for tests - */ - private static final class NoOpAuditLogWriter implements AuditLogWriter { - - /** - * pushes the log entry to respective messaging topic - * - * @param auditLogContexts - */ - @Override - public void publish(Queue auditLogContexts) throws IOException { - - } - } } diff --git a/cdap-security/src/test/java/io/cdap/cdap/security/authorization/AuthorizationTestModule.java b/cdap-security/src/test/java/io/cdap/cdap/security/authorization/AuthorizationTestModule.java index a052e85ed9f9..4b533155af63 100644 --- a/cdap-security/src/test/java/io/cdap/cdap/security/authorization/AuthorizationTestModule.java +++ b/cdap-security/src/test/java/io/cdap/cdap/security/authorization/AuthorizationTestModule.java @@ -20,6 +20,7 @@ import com.google.inject.Scopes; import io.cdap.cdap.api.Admin; import io.cdap.cdap.api.Transactional; +import io.cdap.cdap.api.auditlogging.AuditLogWriter; import io.cdap.cdap.api.data.DatasetContext; import io.cdap.cdap.common.conf.Constants; import io.cdap.cdap.security.spi.authorization.AuthorizationContext; @@ -42,5 +43,7 @@ protected void configure() { expose(PermissionManager.class); bind(RoleController.class).to(DelegatingRoleController.class).in(Scopes.SINGLETON);; expose(RoleController.class); + bind(AuditLogWriter.class).toInstance(auditLogContexts -> {}); + expose(AuditLogWriter.class); } } diff --git a/cdap-tms/src/test/java/io/cdap/cdap/messaging/distributed/LeaderElectionMessagingServiceTest.java b/cdap-tms/src/test/java/io/cdap/cdap/messaging/distributed/LeaderElectionMessagingServiceTest.java index c0137a6bc05f..7ec95990a9c1 100644 --- a/cdap-tms/src/test/java/io/cdap/cdap/messaging/distributed/LeaderElectionMessagingServiceTest.java +++ b/cdap-tms/src/test/java/io/cdap/cdap/messaging/distributed/LeaderElectionMessagingServiceTest.java @@ -23,6 +23,7 @@ import com.google.inject.PrivateModule; import com.google.inject.Scopes; import com.google.inject.name.Names; +import io.cdap.cdap.api.auditlogging.AuditLogWriter; import io.cdap.cdap.api.dataset.lib.CloseableIterator; import io.cdap.cdap.api.metrics.MetricsCollectionService; import io.cdap.cdap.api.service.ServiceUnavailableException; @@ -265,7 +266,6 @@ private Injector createInjector(int instanceId) { new ZkDiscoveryModule(), new AuthorizationEnforcementModule().getNoOpModules(), new DFSLocationModule(), - new AuthenticationContextModules().getNoOpModule(), new AbstractModule() { @Override protected void configure() { @@ -297,6 +297,7 @@ protected void configure() { bind(MessagingService.class).to(LeaderElectionMessagingService.class) .in(Scopes.SINGLETON); expose(MessagingService.class); + bind(AuditLogWriter.class).toInstance(auditLogContexts -> {}); } } ); diff --git a/cdap-tms/src/test/java/io/cdap/cdap/messaging/server/MessagingHttpServiceTest.java b/cdap-tms/src/test/java/io/cdap/cdap/messaging/server/MessagingHttpServiceTest.java index 786d802d3b8d..b9607fd6537f 100644 --- a/cdap-tms/src/test/java/io/cdap/cdap/messaging/server/MessagingHttpServiceTest.java +++ b/cdap-tms/src/test/java/io/cdap/cdap/messaging/server/MessagingHttpServiceTest.java @@ -21,6 +21,7 @@ import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Injector; +import io.cdap.cdap.api.auditlogging.AuditLogWriter; import io.cdap.cdap.api.common.Bytes; import io.cdap.cdap.api.dataset.lib.CloseableIterator; import io.cdap.cdap.api.messaging.TopicAlreadyExistsException; @@ -121,6 +122,7 @@ public void beforeTest() throws IOException { @Override protected void configure() { bind(MetricsCollectionService.class).toInstance(new NoOpMetricsCollectionService()); + bind(AuditLogWriter.class).toInstance(auditLogContexts -> {}); } } ); diff --git a/cdap-watchdog/src/test/java/io/cdap/cdap/logging/appender/tms/TestTMSLogging.java b/cdap-watchdog/src/test/java/io/cdap/cdap/logging/appender/tms/TestTMSLogging.java index 38bea84f75be..a8468e18e34f 100644 --- a/cdap-watchdog/src/test/java/io/cdap/cdap/logging/appender/tms/TestTMSLogging.java +++ b/cdap-watchdog/src/test/java/io/cdap/cdap/logging/appender/tms/TestTMSLogging.java @@ -20,6 +20,7 @@ import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Injector; +import io.cdap.cdap.api.auditlogging.AuditLogWriter; import io.cdap.cdap.api.dataset.lib.CloseableIterator; import io.cdap.cdap.api.messaging.TopicAlreadyExistsException; import io.cdap.cdap.api.messaging.TopicNotFoundException; @@ -98,6 +99,7 @@ public static void init() throws IOException, TopicAlreadyExistsException, Unaut @Override protected void configure() { bind(MetricsCollectionService.class).toInstance(new NoOpMetricsCollectionService()); + bind(AuditLogWriter.class).toInstance(auditLogContexts -> {}); } } ); diff --git a/cdap-watchdog/src/test/java/io/cdap/cdap/metrics/MetricsTestBase.java b/cdap-watchdog/src/test/java/io/cdap/cdap/metrics/MetricsTestBase.java index c3d6f4bc8a6a..f999a956da8e 100644 --- a/cdap-watchdog/src/test/java/io/cdap/cdap/metrics/MetricsTestBase.java +++ b/cdap-watchdog/src/test/java/io/cdap/cdap/metrics/MetricsTestBase.java @@ -22,6 +22,7 @@ import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.Module; +import io.cdap.cdap.api.auditlogging.AuditLogWriter; import io.cdap.cdap.api.data.schema.Schema; import io.cdap.cdap.api.data.schema.UnsupportedTypeException; import io.cdap.cdap.api.metrics.MetricValues; @@ -108,6 +109,7 @@ private List getModules() { @Override protected void configure() { bind(MetricsCollectionService.class).toInstance(new NoOpMetricsCollectionService()); + bind(AuditLogWriter.class).toInstance(auditLogContexts -> {}); } }); modules.addAll(getAdditionalModules()); diff --git a/cdap-watchdog/src/test/java/io/cdap/cdap/metrics/process/MetricsAdminSubscriberServiceTest.java b/cdap-watchdog/src/test/java/io/cdap/cdap/metrics/process/MetricsAdminSubscriberServiceTest.java index f899da27f650..98d5ba4a0bde 100644 --- a/cdap-watchdog/src/test/java/io/cdap/cdap/metrics/process/MetricsAdminSubscriberServiceTest.java +++ b/cdap-watchdog/src/test/java/io/cdap/cdap/metrics/process/MetricsAdminSubscriberServiceTest.java @@ -21,6 +21,7 @@ import com.google.inject.Injector; import com.google.inject.PrivateModule; import com.google.inject.Scopes; +import io.cdap.cdap.api.auditlogging.AuditLogWriter; import io.cdap.cdap.api.metrics.MetricDeleteQuery; import io.cdap.cdap.api.metrics.MetricTimeSeries; import io.cdap.cdap.api.metrics.MetricsCollectionService; @@ -103,6 +104,9 @@ protected void configure() { // Bind the admin subscriber bind(MetricsAdminSubscriberService.class).in(Scopes.SINGLETON); expose(MetricsAdminSubscriberService.class); + + bind(AuditLogWriter.class).toInstance(auditLogContexts -> {}); + expose(AuditLogWriter.class); } } );