From d7f3cb037dc0fbb52db1c7290aba02c95b1f697d Mon Sep 17 00:00:00 2001 From: Karthik Yagna Date: Thu, 19 Oct 2023 22:15:46 -0700 Subject: [PATCH] Separate adding push handlers in initializer --- .../push/PushMessageSenderInitializer.java | 11 +---- .../PushMessageSenderInitializerTest.java | 44 +++++++++++++++++++ .../SamplePushMessageSenderInitializer.java | 8 ++-- 3 files changed, 50 insertions(+), 13 deletions(-) create mode 100644 zuul-core/src/test/java/com/netflix/zuul/netty/server/push/PushMessageSenderInitializerTest.java diff --git a/zuul-core/src/main/java/com/netflix/zuul/netty/server/push/PushMessageSenderInitializer.java b/zuul-core/src/main/java/com/netflix/zuul/netty/server/push/PushMessageSenderInitializer.java index 4106372f31..25d9558a15 100644 --- a/zuul-core/src/main/java/com/netflix/zuul/netty/server/push/PushMessageSenderInitializer.java +++ b/zuul-core/src/main/java/com/netflix/zuul/netty/server/push/PushMessageSenderInitializer.java @@ -26,20 +26,13 @@ * Date: 5/16/18 */ public abstract class PushMessageSenderInitializer extends ChannelInitializer { - - private final PushConnectionRegistry pushConnectionRegistry; - - public PushMessageSenderInitializer(PushConnectionRegistry pushConnectionRegistry) { - this.pushConnectionRegistry = pushConnectionRegistry; - } - @Override protected void initChannel(Channel ch) throws Exception { final ChannelPipeline pipeline = ch.pipeline(); pipeline.addLast(new HttpServerCodec()); pipeline.addLast(new HttpObjectAggregator(65536)); - pipeline.addLast(getPushMessageSender(pushConnectionRegistry)); + addPushMessageHandlers(pipeline); } - protected abstract PushMessageSender getPushMessageSender(PushConnectionRegistry pushConnectionRegistry); + protected abstract void addPushMessageHandlers(final ChannelPipeline pipeline); } diff --git a/zuul-core/src/test/java/com/netflix/zuul/netty/server/push/PushMessageSenderInitializerTest.java b/zuul-core/src/test/java/com/netflix/zuul/netty/server/push/PushMessageSenderInitializerTest.java new file mode 100644 index 0000000000..a4a678e30d --- /dev/null +++ b/zuul-core/src/test/java/com/netflix/zuul/netty/server/push/PushMessageSenderInitializerTest.java @@ -0,0 +1,44 @@ +package com.netflix.zuul.netty.server.push; + +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.mockito.Mockito.mock; +import io.netty.channel.Channel; +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelPipeline; +import io.netty.channel.embedded.EmbeddedChannel; +import io.netty.handler.codec.http.HttpObjectAggregator; +import io.netty.handler.codec.http.HttpServerCodec; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +/** + * Unit tests for {@link PushMessageSenderInitializer}. + */ +public class PushMessageSenderInitializerTest { + private PushMessageSenderInitializer initializer; + private Channel channel; + private ChannelHandler handler; + + @BeforeEach + public void setUp() { + handler = mock(ChannelHandler.class); // Initialize mock handler + + initializer = new PushMessageSenderInitializer() { + @Override + protected void addPushMessageHandlers(ChannelPipeline pipeline) { + pipeline.addLast("mockHandler", handler); + } + }; + + channel = new EmbeddedChannel(); + } + + @Test + public void testInitChannel() throws Exception { + initializer.initChannel(channel); + + assertNotNull(channel.pipeline().context(HttpServerCodec.class)); + assertNotNull(channel.pipeline().context(HttpObjectAggregator.class)); + assertNotNull(channel.pipeline().get("mockHandler")); + } +} diff --git a/zuul-sample/src/main/java/com/netflix/zuul/sample/push/SamplePushMessageSenderInitializer.java b/zuul-sample/src/main/java/com/netflix/zuul/sample/push/SamplePushMessageSenderInitializer.java index b0de46d4de..ea61c8f46c 100644 --- a/zuul-sample/src/main/java/com/netflix/zuul/sample/push/SamplePushMessageSenderInitializer.java +++ b/zuul-sample/src/main/java/com/netflix/zuul/sample/push/SamplePushMessageSenderInitializer.java @@ -18,7 +18,7 @@ import com.netflix.zuul.netty.server.push.PushConnectionRegistry; import com.netflix.zuul.netty.server.push.PushMessageSender; import com.netflix.zuul.netty.server.push.PushMessageSenderInitializer; - +import io.netty.channel.ChannelPipeline; import javax.inject.Inject; import javax.inject.Singleton; @@ -33,12 +33,12 @@ public class SamplePushMessageSenderInitializer extends PushMessageSenderInitial @Inject public SamplePushMessageSenderInitializer(PushConnectionRegistry pushConnectionRegistry) { - super(pushConnectionRegistry); + super(); pushMessageSender = new SamplePushMessageSender(pushConnectionRegistry); } @Override - protected PushMessageSender getPushMessageSender(PushConnectionRegistry pushConnectionRegistry) { - return pushMessageSender; + protected void addPushMessageHandlers(ChannelPipeline pipeline) { + pipeline.addLast(pushMessageSender); } }