@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 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 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); }
@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); }