@Test public void executeFunctionObjectShouldSetWaitOnException() { AbstractExecution execution = mock(AbstractExecution.class); when(execution.execute(functionObject)).thenReturn(mock(ResultCollector.class)); this.executeRegionFunctionGeode18.executeFunctionWithResult(functionObject, AbstractExecution.NO_HA_HASRESULT_OPTIMIZEFORWRITE, functionObject, execution); verify(execution, times(1)).setWaitOnExceptionFlag(true); }
@Test public void generateNullArgumentMessageIfRegionIsNull() { AbstractExecution execution = mock(AbstractExecution.class); when(execution.execute(functionObject)).thenReturn(mock(ResultCollector.class)); assertEquals("The input region for the execute function request is null", this.executeRegionFunctionGeode18.generateNullArgumentMessage(null, null)); }
@Test public void getAuthorizedExecuteFunctionReturnsNullIfAuthorizationIsNull() { AbstractExecution execution = mock(AbstractExecution.class); when(execution.execute(functionObject)).thenReturn(mock(ResultCollector.class)); String functionName = "functionName"; String regionPath = "regionPath"; ExecuteFunctionOperationContext context = executeRegionFunctionGeode18.getAuthorizedExecuteFunctionOperationContext(null, null, true, null, functionName, regionPath); assertNull(context); }
@Before public void setUp() throws Exception { this.executeRegionFunctionGeode18 = (ExecuteRegionFunctionGeode18) ExecuteRegionFunctionGeode18.getCommand(); this.functionObject = mock(Function.class); when(this.functionObject.getId()).thenReturn(FUNCTION_ID); doCallRealMethod().when(this.functionObject).getRequiredPermissions(any()); }
@Test public void populateRemovedNodexWillReturnNodesReadFromClient() throws Exception { AbstractExecution execution = mock(AbstractExecution.class); when(execution.execute(functionObject)).thenReturn(mock(ResultCollector.class)); Message clientMessage = mock(Message.class); Part part1 = mock(Part.class); Object object1 = new Object(); when(part1.getStringOrObject()).thenReturn(object1); Part part2 = mock(Part.class); Object object2 = new Object(); when(part2.getStringOrObject()).thenReturn(object2); Part part3 = mock(Part.class); Object object3 = new Object(); when(part3.getStringOrObject()).thenReturn(object3); when(clientMessage.getPart(7)).thenReturn(part1); when(clientMessage.getPart(8)).thenReturn(part2); when(clientMessage.getPart(9)).thenReturn(part3); Set nodes = this.executeRegionFunctionGeode18.populateRemovedNodes(clientMessage, 3, 6); assertTrue(nodes.contains(object1)); assertTrue(nodes.contains(object2)); assertTrue(nodes.contains(object3)); }
@Test public void populateFiltersWillReturnFiltersReadFromClientMessage() throws Exception { AbstractExecution execution = mock(AbstractExecution.class); when(execution.execute(functionObject)).thenReturn(mock(ResultCollector.class)); Message clientMessage = mock(Message.class); Part part1 = mock(Part.class); Object object1 = new Object(); when(part1.getStringOrObject()).thenReturn(object1); Part part2 = mock(Part.class); Object object2 = new Object(); when(part2.getStringOrObject()).thenReturn(object2); Part part3 = mock(Part.class); Object object3 = new Object(); when(part3.getStringOrObject()).thenReturn(object3); when(clientMessage.getPart(7)).thenReturn(part1); when(clientMessage.getPart(8)).thenReturn(part2); when(clientMessage.getPart(9)).thenReturn(part3); int filterSize = 3; Set filter = this.executeRegionFunctionGeode18.populateFilters(clientMessage, filterSize); assertSame(filterSize, filter.size()); assertTrue(filter.contains(object1)); assertTrue(filter.contains(object2)); assertTrue(filter.contains(object3)); }
geode18Commands.putAll(ALL_COMMANDS.get(Version.GEODE_170)); geode18Commands.put(MessageType.EXECUTE_REGION_FUNCTION, ExecuteRegionFunctionGeode18.getCommand()); ALL_COMMANDS.put(Version.GEODE_180, geode18Commands); ALL_COMMANDS.put(Version.GEODE_190, geode18Commands);
@Test public void executingFunctionByStringWithNoHAShouldSetWaitOnException() { AbstractExecution execution = mock(AbstractExecution.class); String functionName = "functionName"; when(execution.execute(functionName)).thenReturn(mock(ResultCollector.class)); this.executeRegionFunctionGeode18.executeFunctionWithResult(functionName, AbstractExecution.NO_HA_HASRESULT_NO_OPTIMIZEFORWRITE, functionObject, execution); verify(execution, times(1)).setWaitOnExceptionFlag(true); }
@Test public void getAuthorizedExecuteFunctionReturnsExecutionContextIfAuthorizeRequestIsNotNull() { AbstractExecution execution = mock(AbstractExecution.class); when(execution.execute(functionObject)).thenReturn(mock(ResultCollector.class)); String functionName = "functionName"; String regionPath = "regionPath"; AuthorizeRequest request = mock(AuthorizeRequest.class); when(request.executeFunctionAuthorize(any(), any(), any(), any(), anyBoolean())) .thenReturn(mock(ExecuteFunctionOperationContext.class)); ExecuteFunctionOperationContext context = executeRegionFunctionGeode18.getAuthorizedExecuteFunctionOperationContext(null, null, true, request, functionName, regionPath); assertNotNull(context); }
@Test public void generateNullArgumentMessageIfFunctionIsNullAndRegionIsNotNull() { AbstractExecution execution = mock(AbstractExecution.class); when(execution.execute(functionObject)).thenReturn(mock(ResultCollector.class)); assertEquals("The input function for the execute function request is null", this.executeRegionFunctionGeode18.generateNullArgumentMessage("someRegion", null)); }
@Test public void executingFunctionByStringWithNoHAWithOptimizeForWriteShouldSetWaitOnException() { AbstractExecution execution = mock(AbstractExecution.class); String functionName = "functionName"; when(execution.execute(functionName)).thenReturn(mock(ResultCollector.class)); this.executeRegionFunctionGeode18.executeFunctionWithResult(functionName, AbstractExecution.NO_HA_HASRESULT_OPTIMIZEFORWRITE, functionObject, execution); verify(execution, times(1)).setWaitOnExceptionFlag(true); }