private static void executeHook(Object hook, FileSystemHooks hookType, FileSystemHookExecutionContext ctx) { if (hook instanceof FileSystemHooks.FileSystemHook) { FileSystemHooks.FileSystemHook fsHook = (FileSystemHooks.FileSystemHook) hook; fsHook.execute(ctx); } else { LOGGER.error("Error executing FS Hook FS " + hookType + " on " + ctx.getFsName() + ". Callback methods should implement FileSystemHooks.FileSystemHook. "); } } }
private void verifyFSHook(FileSystemHooks.FileSystemHook hook, FileSystemHooks hookType) { verify(hook).execute(contextArgumentCaptor.capture()); FileSystemHookExecutionContext ctx = contextArgumentCaptor.getValue(); Assertions.assertThat(ctx) .isNotNull() .hasFieldOrPropertyWithValue("fsName", FS_NAME); if (hookType.equals(FileSystemHooks.PostCommit)) { Assertions.assertThat(ctx.getParamValue(FileSystemHooksConstants.POST_COMMIT_EXIT_CODE)) .isNotNull() .isEqualTo(EXIT_CODE); } } }
private void verifyFSHook(FileSystemHooks.FileSystemHook hook, FileSystemHooks hookType) { verify(hook).execute(contextArgumentCaptor.capture()); FileSystemHookExecutionContext ctx = contextArgumentCaptor.getValue(); Assertions.assertThat(ctx) .isNotNull() .hasFieldOrPropertyWithValue("fsName", FS_NAME); if (hookType.equals(FileSystemHooks.PostCommit)) { Assertions.assertThat(ctx.getParamValue(FileSystemHooksConstants.POST_COMMIT_EXIT_CODE)) .isNotNull() .isEqualTo(EXIT_CODE); } } }
verify(hook).execute(captor.capture());
verify(hook).execute(captor.capture());
@Test public void testFileSystemHooks() { rootDirectories.add(createPath("default://master@uf-playground")); ConfigGroup configGroup = getConfigGroup(); configGroup.setName("test"); final IOService service = getServiceToTest(); helper.newRepository(configGroup); ArgumentCaptor<Map> captor = ArgumentCaptor.forClass(Map.class); verify(service).newFileSystem(any(URI.class), captor.capture()); Map params = captor.getValue(); Assertions.assertThat(params) .isNotNull(); Assertions.assertThat(params.get(FileSystemHooks.ExternalUpdate.name())) .isNotNull() .isInstanceOf(FileSystemHooks.FileSystemHook.class); FileSystemHookExecutionContext ctx = new FileSystemHookExecutionContext("test"); FileSystemHooks.FileSystemHook hook = (FileSystemHooks.FileSystemHook) params.get(FileSystemHooks.ExternalUpdate.name()); hook.execute(ctx); verify(repositoryExternalUpdate).fire(any()); Assertions.assertThat(params.get(FileSystemHooks.PostCommit.name())) .isNotNull() .isInstanceOf(FileSystemHooks.FileSystemHook.class); ctx.addParam(FileSystemHooksConstants.POST_COMMIT_EXIT_CODE, 0); hook = (FileSystemHooks.FileSystemHook) params.get(FileSystemHooks.PostCommit.name()); hook.execute(ctx); verify(postCommitNotificationService).notifyUser(any(), eq(0)); }
@Test public void testFileSystemHooks() { rootDirectories.add(createPath("default://master@uf-playground")); ConfigGroup configGroup = getConfigGroup(); configGroup.setName("test"); final IOService service = getServiceToTest(); helper.newRepository(configGroup); ArgumentCaptor<Map> captor = ArgumentCaptor.forClass(Map.class); verify(service).newFileSystem(any(URI.class), captor.capture()); Map params = captor.getValue(); Assertions.assertThat(params) .isNotNull(); Assertions.assertThat(params.get(FileSystemHooks.ExternalUpdate.name())) .isNotNull() .isInstanceOf(FileSystemHooks.FileSystemHook.class); FileSystemHookExecutionContext ctx = new FileSystemHookExecutionContext("test"); FileSystemHooks.FileSystemHook hook = (FileSystemHooks.FileSystemHook) params.get(FileSystemHooks.ExternalUpdate.name()); hook.execute(ctx); verify(repositoryExternalUpdate).fire(any()); Assertions.assertThat(params.get(FileSystemHooks.PostCommit.name())) .isNotNull() .isInstanceOf(FileSystemHooks.FileSystemHook.class); ctx.addParam(FileSystemHooksConstants.POST_COMMIT_EXIT_CODE, 0); hook = (FileSystemHooks.FileSystemHook) params.get(FileSystemHooks.PostCommit.name()); hook.execute(ctx); verify(postCommitNotificationService).notifyUser(any(), eq(0)); }
private void testPostCommit(final Integer exitCode) throws IOException { prepareHook(exitCode); commitFile(); verify(postCommitHook).execute(contextCaptor.capture()); FileSystemHookExecutionContext context = contextCaptor.getValue(); Assertions.assertThat(context) .isNotNull() .hasFieldOrPropertyWithValue("fsName", REPO_NAME); Assertions.assertThat(context.getParamValue(FileSystemHooksConstants.POST_COMMIT_EXIT_CODE)) .isNotNull() .isEqualTo(exitCode); }
@Test public void testPostCommitWithoutHook() throws IOException { commitFile(); verify(postCommitHook, never()).execute(any()); }
private void testPostCommit(final Integer exitCode) throws IOException { prepareHook(exitCode); commitFile(); verify(postCommitHook).execute(contextCaptor.capture()); FileSystemHookExecutionContext context = contextCaptor.getValue(); Assertions.assertThat(context) .isNotNull() .hasFieldOrPropertyWithValue("fsName", REPO_NAME); Assertions.assertThat(context.getParamValue(FileSystemHooksConstants.POST_COMMIT_EXIT_CODE)) .isNotNull() .isEqualTo(exitCode); }
@Test public void testPostCommitWithoutHook() throws IOException { commitFile(); verify(postCommitHook, never()).execute(any()); }