public void setSources(List<SourceConfig> sourceConfigs) throws ClassNotFoundException { for (SourceConfig sourceConfig : sourceConfigs) { Source source = new Source(sourceConfig); logger.info("Using source: " + source.toString()); sources.put(source.getSourceName(), source); } }
public static Source getSource(String sourceLocation, Collection<Source> sources, boolean useCache) { Source source; if (useCache && (source = sourceMap.get(sourceLocation)) != null) { return source; } for (Source s : sources) { if (s.getSourceRegex().matcher(sourceLocation).matches()) { if (useCache) { sourceMap.put(sourceLocation, s); } return s; } } throw new SourceNotFoundException(sourceLocation); }
DeserializerProcessor deser = source.getDeserProcessor(); List<OperationProcessor> operations = source.getOperationProcessors(); List<String> containsStrings = source.getContainsStrings(); List<Pattern> regexPatterns = source.getRegexPatterns();
@Test public void testFilterNullDeserialization() throws HandlerException { BaseHandler.CONFIG_FILE = "/config/handler_config.json"; handler.skipWriteStats = true; List<DummyEvent> events = new ArrayList<DummyEvent>(1); events.add(new DummyEvent("foo", 0)); TestContext context = new TestContext(); context.setInvokedFunctionArn("arn:aws:lambda:us-east-1:123:function:test:tag"); handler.init(context); DeserializerProcessor proc = handler.sources.get(0).getDeserProcessor(); Deserializer deserSpy = spy(proc.getDeserializer()); when(deserSpy.deserialize(anyString())).thenReturn(null); proc.setDeserializer(deserSpy); handler.handler(events, context); assertEquals(0, BufferedTransporter.output.size()); }
@Test public void testMultipleOperationsConfig() throws HandlerException { BaseHandler.CONFIG_FILE = "/config/handler_config_two_operations.json"; List<DummyEvent> events = new ArrayList<DummyEvent>(1); events.add(new DummyEvent("foo", 0)); TestContext context = new TestContext(); context.setInvokedFunctionArn("arn:aws:lambda:us-east-1:123:function:test:tag"); handler.init(context); List<OperationProcessor> operationProcessores = handler.sources.get(0).getOperationProcessors(); for (int i = 0; i < operationProcessores.size(); i++) { OperationProcessor operationProcessor = spy(operationProcessores.get(i)); operationProcessores.set(i, operationProcessor); } handler.handler(events, context); /* * 2 operations specified in the config file */ verify(operationProcessores.get(0), times(1)).perform(any()); verify(operationProcessores.get(1), times(1)).perform(any()); }
DeserializerProcessor deser = source.getDeserProcessor(); List<OperationProcessor> operations = source.getOperationProcessors(); List<String> containsStrings = source.getContainsStrings(); List<Pattern> regexPatterns = source.getRegexPatterns();
@Test public void testFilterFailedDeserialization() throws HandlerException { BaseHandler.CONFIG_FILE = "/config/handler_config.json"; handler.skipWriteStats = true; List<DummyEvent> events = new ArrayList<DummyEvent>(1); events.add(new DummyEvent("foo", 0)); TestContext context = new TestContext(); context.setInvokedFunctionArn("arn:aws:lambda:us-east-1:123:function:test:tag"); handler.init(context); DeserializerProcessor proc = handler.sources.get(0).getDeserProcessor(); Deserializer deserSpy = spy(proc.getDeserializer()); doThrow(new DeserializationException("expected")).when(deserSpy).deserialize(anyString()); proc.setDeserializer(deserSpy); handler.handler(events, context); assertEquals(0, BufferedTransporter.output.size()); }
@Test public void testOperationException() throws HandlerException { BaseHandler.CONFIG_FILE = "/config/handler_config.json"; handler.skipWriteStats = true; List<DummyEvent> events = new ArrayList<DummyEvent>(1); events.add(new DummyEvent("foo", 0)); TestContext context = new TestContext(); context.setInvokedFunctionArn("arn:aws:lambda:us-east-1:123:function:test:tag"); handler.init(context); List<OperationProcessor> operationProcessors = handler.sources.get(0).getOperationProcessors(); for (OperationProcessor operationProcessor : operationProcessors) { EventOperation operation = (EventOperation) spy(operationProcessor.getOperation()); doThrow(new OperationException("expected")).when(operation).perform(any()); operationProcessor.setOperation(operation); } handler.handler(events, context); assertEquals(1, operationProcessors.get(0).getErrorCountStat().getValue()); }
public void setSources(List<SourceConfig> sourceConfigs) throws ClassNotFoundException { for (SourceConfig sourceConfig : sourceConfigs) { Source source = new Source(sourceConfig); logger.info("Using source: " + source.toString()); sources.put(source.getSourceName(), source); } }
@Test public void testDeserializationException() throws HandlerException { BaseHandler.CONFIG_FILE = "/config/handler_config.json"; handler.skipWriteStats = true; List<DummyEvent> events = new ArrayList<DummyEvent>(1); events.add(new DummyEvent("foo", 0)); TestContext context = new TestContext(); context.setInvokedFunctionArn("arn:aws:lambda:us-east-1:123:function:test:tag"); handler.init(context); DeserializerProcessor proc = handler.sources.get(0).getDeserProcessor(); Deserializer deserSpy = spy(proc.getDeserializer()); doThrow(new DeserializationException("expected")).when(deserSpy).deserialize(anyString()); proc.setDeserializer(deserSpy); handler.handler(events, context); assertEquals(1, proc.getErrorCountStat().getValue()); }
public static Source getSource(String sourceLocation, Collection<Source> sources, boolean useCache) { Source source; if (useCache && (source = sourceMap.get(sourceLocation)) != null) { return source; } for (Source s : sources) { if (s.getSourceRegex().matcher(sourceLocation).matches()) { if (useCache) { sourceMap.put(sourceLocation, s); } return s; } } throw new SourceNotFoundException(sourceLocation); }