@Test public void testQueryProcessingMultipleInstancesTypes() throws Exception { config.set(DRPCConfig.PUBSUB_CONTEXT_NAME, PubSub.Context.QUERY_PROCESSING.name()); DRPCPubSub pubSub = new DRPCPubSub(config); List<Publisher> publishers = pubSub.getPublishers(2); List<Subscriber> subscribers = pubSub.getSubscribers(4); Assert.assertNotNull(publishers); Assert.assertNotNull(subscribers); Assert.assertEquals(publishers.size(), 2); publishers.stream().forEach(p -> Assert.assertTrue(p instanceof DRPCResultPublisher)); Assert.assertEquals(subscribers.size(), 4); subscribers.stream().forEach(s -> Assert.assertTrue(s instanceof DRPCQuerySubscriber)); }
@BeforeMethod public void setup() throws Exception { config = new DRPCConfig("src/test/resources/test_drpc_config.yaml"); // 1 task for the component named "foo" with task index 0 CustomTopologyContext context = new CustomTopologyContext(Collections.singletonList(1), "foo", 0); config.set(DRPCConfig.STORM_CONTEXT, context); Map stormConfig = new Config("src/test/resources/test_storm_config.yaml").getAll(Optional.empty()); config.set(DRPCConfig.STORM_CONFIG, stormConfig); }
@Test public void testQuerySubmissionSingleInstanceTypes() throws Exception { config.set(DRPCConfig.PUBSUB_CONTEXT_NAME, PubSub.Context.QUERY_SUBMISSION.name()); DRPCPubSub pubSub = new DRPCPubSub(config); Publisher publisher = pubSub.getPublisher(); Subscriber subscriber = pubSub.getSubscriber(); Assert.assertTrue(publisher instanceof DRPCQueryResultPubscriber); Assert.assertTrue(subscriber instanceof DRPCQueryResultPubscriber); }
@Test public void testQueryProcessingSingleInstanceTypes() throws Exception { config.set(DRPCConfig.PUBSUB_CONTEXT_NAME, PubSub.Context.QUERY_PROCESSING.name()); DRPCPubSub pubSub = new DRPCPubSub(config); Publisher publisher = pubSub.getPublisher(); Subscriber subscriber = pubSub.getSubscriber(); Assert.assertTrue(publisher instanceof DRPCResultPublisher); Assert.assertTrue(subscriber instanceof DRPCQuerySubscriber); }
@Test public void testQuerySubmissionMultipleInstancesAreTheSameInstances() throws Exception { config.set(DRPCConfig.PUBSUB_CONTEXT_NAME, PubSub.Context.QUERY_SUBMISSION.name()); DRPCPubSub pubSub = new DRPCPubSub(config); List<Publisher> publishers = pubSub.getPublishers(10); List<Subscriber> subscribers = pubSub.getSubscribers(20); Assert.assertEquals(publishers.size(), 10); // If we ask for more, the size is the same as the first call Assert.assertEquals(subscribers.size(), 10); // If we ask for less, the size is the same as the first call Assert.assertEquals(pubSub.getSubscribers(1).size(), 10); // If we ask for the same, the size is the same as the first call Assert.assertEquals(pubSub.getSubscribers(10).size(), 10); // The corresponding items are the same IntStream.range(0, 9).forEach(i -> Assert.assertTrue(publishers.get(i) == subscribers.get(i))); Publisher publisher = pubSub.getPublisher(); Subscriber subscriber = pubSub.getSubscriber(); // If you ask for one, it's the first one in the list Assert.assertTrue(publisher == subscriber); Assert.assertTrue(publishers.get(0) == publisher); } }
@Test public void testQuerySubmissionOneInstanceIsTheSameInstance() throws Exception { config.set(DRPCConfig.PUBSUB_CONTEXT_NAME, PubSub.Context.QUERY_SUBMISSION.name()); DRPCPubSub pubSub = new DRPCPubSub(config); Publisher publisher = pubSub.getPublisher(); Subscriber subscriber = pubSub.getSubscriber(); Assert.assertTrue(publisher == subscriber); // All future calls just return the same instance Assert.assertTrue(publisher == pubSub.getPublisher()); Assert.assertTrue(subscriber == pubSub.getSubscriber()); Assert.assertTrue(pubSub.getPublisher() == pubSub.getSubscriber()); // So do calls to get multiples after List<Publisher> publishers = pubSub.getPublishers(42); List<Subscriber> subscribers = pubSub.getSubscribers(20); Assert.assertEquals(publishers.size(), 1); Assert.assertEquals(subscribers.size(), 1); Assert.assertEquals(publishers.get(0), publisher); Assert.assertEquals(subscribers.get(0), subscriber); }
config.set(DRPCConfig.DRPC_HTTP_PORT, null); config.validate(); Assert.assertEquals(config.get(DRPCConfig.DRPC_HTTP_PORT), DRPCConfig.DEFAULT_DRPC_HTTP_PORT); config.set(DRPCConfig.DRPC_HTTP_PORT, ""); config.validate(); Assert.assertEquals(config.get(DRPCConfig.DRPC_HTTP_PORT), DRPCConfig.DEFAULT_DRPC_HTTP_PORT); config.set(DRPCConfig.DRPC_HTTP_PORT, "foo"); config.validate(); Assert.assertEquals(config.get(DRPCConfig.DRPC_HTTP_PORT), DRPCConfig.DEFAULT_DRPC_HTTP_PORT); config.set(DRPCConfig.DRPC_HTTP_PORT, "1.35"); config.validate(); Assert.assertEquals(config.get(DRPCConfig.DRPC_HTTP_PORT), DRPCConfig.DEFAULT_DRPC_HTTP_PORT); config.set(DRPCConfig.DRPC_HTTP_PORT, 1.35); config.validate(); Assert.assertEquals(config.get(DRPCConfig.DRPC_HTTP_PORT), DRPCConfig.DEFAULT_DRPC_HTTP_PORT); config.set(DRPCConfig.DRPC_HTTP_PORT, -1); config.validate(); Assert.assertEquals(config.get(DRPCConfig.DRPC_HTTP_PORT), DRPCConfig.DEFAULT_DRPC_HTTP_PORT); config.set(DRPCConfig.DRPC_HTTP_PORT, "-1"); config.validate(); Assert.assertEquals(config.get(DRPCConfig.DRPC_HTTP_PORT), DRPCConfig.DEFAULT_DRPC_HTTP_PORT); config.set(DRPCConfig.DRPC_HTTP_PORT, true);
@BeforeMethod public void setup() { DRPCConfig config = new DRPCConfig("src/test/resources/test_drpc_config.yaml"); // 1 task for the component named "foo" with task index 0 CustomTopologyContext context = new CustomTopologyContext(Collections.singletonList(1), "foo", 0); config.set(DRPCConfig.STORM_CONTEXT, context); Map stormConfig = new Config("src/test/resources/test_storm_config.yaml").getAll(Optional.empty()); config.set(DRPCConfig.STORM_CONFIG, stormConfig); subscriber = new DRPCQuerySubscriber(config, 5); DRPCOutputCollector collector = subscriber.getCollector(); // Override the DRPCSpout with our own that emits using our collector. injectedMockSpout = new MockDRPCSpout("foo", collector); subscriber.setSpout(injectedMockSpout); }
@BeforeMethod public void setup() { DRPCConfig config = new DRPCConfig("src/test/resources/test_drpc_config.yaml"); Map stormConfig = new Config("src/test/resources/test_storm_config.yaml").getAll(Optional.empty()); config.set(DRPCConfig.STORM_CONFIG, stormConfig); publisher = new DRPCResultPublisher(config); collector = publisher.getCollector(); // Override the ReturnResults with our own that uses our collector and fails every two tuples injectedMockBolt = new MockReturnResults(collector, 5); publisher.setBolt(injectedMockBolt); }