private void connect(DoubleHandler<ILdapClientConnection, TestContext> handler) { TestCompletion completion = TestSuite.create("").test("", context -> { Async async = context.async(); ldapClientComponent.connect(config, connectionResult -> { context.assertTrue(connectionResult.isSuccess()); connection = connectionResult.getResult(); handler.handle(connection, context); async.complete(); }); async.awaitSuccess(); }).run(); completion.awaitSuccess(); }
@Test public void shouldConnectSuccessfully() throws InterruptedException { config.setBindDn("uid=admin,ou=system"); config.setBindPassword("secret"); TestCompletion completion = TestSuite.create("").test("", context -> { Async async = context.async(); ldapClientComponent.connect(config, connectionResult -> { context.assertTrue(connectionResult.isSuccess()); connection = connectionResult.getResult(); async.complete(); }); async.awaitSuccess(); }).run(); completion.awaitSuccess(); }
@Test public void shouldFailWhenOuInvalid() throws InterruptedException { config.setBindDn("uid=admin,ou=tacos"); config.setBindPassword("secret"); TestCompletion completion = TestSuite.create("").test("", context -> { Async async = context.async(); ldapClientComponent.bind(config, result -> { if (result.isError()) result.getError().printStackTrace(System.out); context.assertTrue(result.isSuccess()); context.assertTrue(result.getResult().getResultCode().equals(LdapResultCode.INVALID_CREDENTIALS)); async.complete(); }); async.awaitSuccess(); }).run(); completion.awaitSuccess(); }
@Test public void shouldFailWhenUidInvalid() throws InterruptedException { config.setBindDn("uid=tacos,ou=system"); config.setBindPassword("secret"); TestCompletion completion = TestSuite.create("").test("", context -> { Async async = context.async(); ldapClientComponent.bind(config, result -> { if (result.isError()) result.getError().printStackTrace(System.out); context.assertTrue(result.isSuccess()); context.assertTrue(result.getResult().getResultCode().equals(LdapResultCode.INVALID_CREDENTIALS)); async.complete(); }); async.awaitSuccess(); }).run(); completion.awaitSuccess(); }
@Test public void bindPasswordSuccess() throws InterruptedException { config.setBindDn("uid=admin,ou=system"); config.setBindPassword("secret"); TestCompletion completion = TestSuite.create("").test("", context -> { Async async = context.async(); ldapClientComponent.bind(config, result -> { if (result.isError()) result.getError().printStackTrace(System.out); context.assertTrue(result.isSuccess()); context.assertTrue(result.getResult().getResultCode().equals(LdapResultCode.SUCCESS)); async.complete(); }); async.awaitSuccess(); }).run(); completion.awaitSuccess(); }
@Test public void shouldErrorWhenFieldsInvalid() throws InterruptedException { config.setBindDn("x"); config.setBindPassword("x"); TestCompletion completion = TestSuite.create("").test("", context -> { Async async = context.async(); ldapClientComponent.bind(config, result -> { context.assertTrue(result.isSuccess()); context.assertTrue(result.getResult().getResultCode().equals(LdapResultCode.INVALID_DN_SYNTAX)); context.assertTrue(result.getResult().getMessage().equals("Incorrect DN given : x (0x78 ) is invalid")); async.complete(); }); async.awaitSuccess(); }).run(); completion.awaitSuccess(); }
@Test public void shouldFailWhenPasswordInvalid() throws InterruptedException { config.setBindDn("uid=admin,ou=system"); config.setBindPassword("miso-soup"); TestCompletion completion = TestSuite.create("").test("", context -> { Async async = context.async(); ldapClientComponent.bind(config, result -> { context.assertTrue(result.isSuccess()); context.assertTrue(result.getResult().getResultCode().equals(LdapResultCode.INVALID_CREDENTIALS)); async.complete(); }); async.awaitSuccess(); }).run(); completion.awaitSuccess(); }