@Test public void testAddHandler() { expect(options.getProjectId()).andReturn(PROJECT).anyTimes(); expect(options.getService()).andReturn(logging); logging.setFlushSeverity(Severity.ERROR); expectLastCall().once(); logging.setWriteSynchronicity(Synchronicity.ASYNC); expectLastCall().andVoid(); logging.write(ImmutableList.of(FINEST_ENTRY), DEFAULT_OPTIONS); expectLastCall().once(); replay(options, logging); LoggingHandler handler = new LoggingHandler(LOG_NAME, options, DEFAULT_RESOURCE) { @Override public void close() { // Make close NOOP to avoid mock close exception } }; handler.setLevel(Level.ALL); handler.setFormatter(new TestFormatter()); Logger logger = Logger.getLogger(getClass().getName()); logger.setLevel(Level.ALL); LoggingHandler.addHandler(logger, handler); logger.log(newLogRecord(Level.FINEST, MESSAGE)); }
EasyMock.expect(simpleConsumer.send((TopicMetadataRequest) EasyMock.anyObject())).andReturn(topicMetadataResponse); simpleConsumer.close(); EasyMock.expectLastCall().andVoid().anyTimes();
private SimpleConsumer mockSimpleConsumer(TopicMetadataResponse metadataResponse, OffsetResponse offsetResponse, FetchResponse fetchResponse) { SimpleConsumer simpleConsumer = EasyMock.createMock(SimpleConsumer.class); mocks.add(simpleConsumer); EasyMock.expect(simpleConsumer.send((TopicMetadataRequest)EasyMock.anyObject())).andReturn(metadataResponse).times(1); EasyMock.expect(simpleConsumer.getOffsetsBefore((OffsetRequest)EasyMock.anyObject())).andReturn(offsetResponse).anyTimes(); simpleConsumer.close(); EasyMock.expectLastCall().andVoid().anyTimes(); EasyMock.expect(simpleConsumer.clientId()).andReturn(KAFKA_CLIENT_ID).times(1); EasyMock.expect(simpleConsumer.fetch((FetchRequest)EasyMock.anyObject())).andReturn(fetchResponse).times(1); EasyMock.expect(simpleConsumer.host()).andReturn("dummyHost").anyTimes(); EasyMock.expect(simpleConsumer.port()).andReturn(8888).anyTimes(); return simpleConsumer; }
@Test(expected = RuntimeException.class) public void testWithThreeRetries() { List<Object> mocks = new ArrayList<Object>(); Configuration configuration = EasyMock.createMock(Configuration.class); mocks.add(configuration); EasyMock.expect(configuration.get(EasyMock.anyString())).andReturn(DUMMY_VALUE).anyTimes(); JobContext jobContext = EasyMock.createMock(JobContext.class); mocks.add(jobContext); EasyMock.expect(jobContext.getConfiguration()).andReturn(configuration).anyTimes(); SimpleConsumer simpleConsumer = EasyMock.createMock(SimpleConsumer.class); mocks.add(simpleConsumer); EasyMock.expect(simpleConsumer.clientId()).andReturn(DUMMY_VALUE) .times(EtlInputFormat.NUM_TRIES_TOPIC_METADATA + 1); Exception ex = new RuntimeException("No TopicMeta"); EasyMock.expect(simpleConsumer.send((TopicMetadataRequest) EasyMock.anyObject())).andThrow(ex) .times(EtlInputFormat.NUM_TRIES_TOPIC_METADATA); simpleConsumer.close(); EasyMock.expectLastCall().andVoid().anyTimes(); EasyMock.replay(mocks.toArray()); EtlInputFormat inputFormat = new EtlInputFormatForUnitTest(); EtlInputFormatForUnitTest.consumerType = EtlInputFormatForUnitTest.ConsumerType.MOCK; EtlInputFormatForUnitTest.consumer = simpleConsumer; List<TopicMetadata> actualTopicMetadatas = inputFormat.getKafkaMetadata(jobContext, new ArrayList<String>()); EasyMock.verify(mocks.toArray()); }
private SimpleConsumer mockConsumerThrowsExceptionForOffsetRangeCall(TopicMetadataResponse metadataResponse) { SimpleConsumer simpleConsumer = EasyMock.createMock(SimpleConsumer.class); mocks.add(simpleConsumer); EasyMock.expect(simpleConsumer.send((TopicMetadataRequest)EasyMock.anyObject())) .andReturn(metadataResponse).times(1); EasyMock.expect(simpleConsumer.getOffsetsBefore((OffsetRequest) EasyMock.anyObject())) .andThrow(new RuntimeException()).times(3); EasyMock.expect(simpleConsumer.clientId()).andReturn(KAFKA_CLIENT_ID).times(1); simpleConsumer.close(); EasyMock.expectLastCall().andVoid().times(2); EasyMock.expect(simpleConsumer.host()).andReturn("dummyHost").times(4); EasyMock.expect(simpleConsumer.port()).andReturn(8888).times(4); return simpleConsumer; }
@Test public void testInterceptorDoingNothingCalled() throws Throwable { EasyMock.expect(mockService.hello()).andReturn(param1); RequestInterceptor interceptorMock = EasyMock.mock(RequestInterceptor.class); interceptorMock.interceptRequest(EasyMock.anyObject(JsonNode.class)); EasyMock.expectLastCall().andVoid(); server.setRequestInterceptor(interceptorMock); EasyMock.replay(interceptorMock, mockService); assertEquals(param1, client.hello()); EasyMock.verify(interceptorMock, mockService); }
@Test public void testTaskConfigsReturns1TaskOnOneTopicPartition() throws Exception { PowerMock .expectNew(PartitionMonitor.class, new Class<?>[] { ConnectorContext.class, KafkaSourceConnectorConfig.class }, EasyMock.anyObject(ConnectorContext.class), EasyMock.anyObject(KafkaSourceConnectorConfig.class)) .andStubReturn(partitionMonitorMock); partitionMonitorMock.start(); PowerMock.expectLastCall().andVoid(); EasyMock.expect(partitionMonitorMock.getCurrentLeaderTopicPartitions()).andReturn(stubLeaderTopicPartitions); PowerMock.replayAll(); connector.start(sourceProperties); List<Map<String, String>> taskConfigs = connector.taskConfigs(2); assertEquals(1, taskConfigs.size()); assertEquals("0:test.topic:0", taskConfigs.get(0).get("task.leader.topic.partitions")); assertEquals(SOURCE_TOPICS_VALUE, taskConfigs.get(0).get(KafkaSourceConnectorConfig.SOURCE_TOPIC_WHITELIST_CONFIG)); assertEquals(SOURCE_BOOTSTRAP_SERVERS_CONFIG, taskConfigs.get(0).get(KafkaSourceConnectorConfig.SOURCE_BOOTSTRAP_SERVERS_CONFIG)); verifyAll(); }
@Test public void testTaskConfigsReturns2TasksOnTwoTopicPartitions() throws Exception { // Default leader topic partitions to return (just one) stubLeaderTopicPartitions = new HashSet<>(); LeaderTopicPartition leaderTopicPartition1 = new LeaderTopicPartition(0, SOURCE_TOPICS_VALUE, 0); stubLeaderTopicPartitions.add(leaderTopicPartition1); LeaderTopicPartition leaderTopicPartition2 = new LeaderTopicPartition(0, SOURCE_TOPICS_VALUE, 1); stubLeaderTopicPartitions.add(leaderTopicPartition2); PowerMock .expectNew(PartitionMonitor.class, new Class<?>[] { ConnectorContext.class, KafkaSourceConnectorConfig.class }, EasyMock.anyObject(ConnectorContext.class), EasyMock.anyObject(KafkaSourceConnectorConfig.class)) .andStubReturn(partitionMonitorMock); partitionMonitorMock.start(); PowerMock.expectLastCall().andVoid(); EasyMock.expect(partitionMonitorMock.getCurrentLeaderTopicPartitions()).andReturn(stubLeaderTopicPartitions); PowerMock.replayAll(); connector.start(sourceProperties); List<Map<String, String>> taskConfigs = connector.taskConfigs(2); assertEquals(2, taskConfigs.size()); PowerMock.verifyAll(); }
@Test public void testTaskConfigsReturns1TaskOnTwoTopicPartitions() throws Exception { // Default leader topic partitions to return (just one) stubLeaderTopicPartitions = new HashSet<>(); LeaderTopicPartition leaderTopicPartition1 = new LeaderTopicPartition(0, SOURCE_TOPICS_VALUE, 0); stubLeaderTopicPartitions.add(leaderTopicPartition1); LeaderTopicPartition leaderTopicPartition2 = new LeaderTopicPartition(0, SOURCE_TOPICS_VALUE, 1); stubLeaderTopicPartitions.add(leaderTopicPartition2); PowerMock .expectNew(PartitionMonitor.class, new Class<?>[] { ConnectorContext.class, KafkaSourceConnectorConfig.class }, EasyMock.anyObject(ConnectorContext.class), EasyMock.anyObject(KafkaSourceConnectorConfig.class)) .andStubReturn(partitionMonitorMock); partitionMonitorMock.start(); PowerMock.expectLastCall().andVoid(); EasyMock.expect(partitionMonitorMock.getCurrentLeaderTopicPartitions()).andReturn(stubLeaderTopicPartitions); PowerMock.replayAll(); connector.start(sourceProperties); List<Map<String, String>> taskConfigs = connector.taskConfigs(1); assertEquals(1, taskConfigs.size()); PowerMock.verifyAll(); }
@Test public void testStartCorrectConfig() throws Exception { PowerMock .expectNew(PartitionMonitor.class, new Class<?>[] { ConnectorContext.class, KafkaSourceConnectorConfig.class }, EasyMock.anyObject(ConnectorContext.class), EasyMock.anyObject(KafkaSourceConnectorConfig.class)) .andStubReturn(partitionMonitorMock); partitionMonitorMock.start(); PowerMock.expectLastCall().andVoid(); PowerMock.replayAll(); connector.start(sourceProperties); verifyAll(); }