Search in sources :

Example 16 with Task

use of org.forgerock.openam.sm.datalayer.api.Task in project OpenAM by OpenRock.

the class TokenDataStoreTest method testUpdateNotExisting.

@Test(expectedExceptions = NotFoundException.class)
public void testUpdateNotExisting() throws Exception {
    // Given
    final Token token = new Token("123", TokenType.GENERIC);
    final Task readTask = mock(Task.class);
    when(adapter.toToken(anyObject())).thenReturn(token);
    when(taskFactory.read(eq("123"), any(ResultHandler.class))).thenAnswer(new Answer<Object>() {

        @Override
        public Object answer(InvocationOnMock invocation) throws Throwable {
            ((ResultHandler) invocation.getArguments()[1]).processResults(null);
            return readTask;
        }
    });
    // When
    store.update(new Object());
// Then - exception
}
Also used : Task(org.forgerock.openam.sm.datalayer.api.Task) InvocationOnMock(org.mockito.invocation.InvocationOnMock) Token(org.forgerock.openam.cts.api.tokens.Token) ResultHandler(org.forgerock.openam.sm.datalayer.api.ResultHandler) Test(org.testng.annotations.Test)

Example 17 with Task

use of org.forgerock.openam.sm.datalayer.api.Task in project OpenAM by OpenRock.

the class SeriesTaskExecutorThread method run.

/**
     * Starts processing of the Queue Tasks.
     *
     * @throws java.lang.IllegalStateException If the queue has not been assigned.
     */
@Override
public void run() {
    if (queue == null)
        throw new IllegalStateException("Must assign a queue before starting.");
    try {
        taskExecutor.start();
    } catch (DataLayerException e) {
        throw new IllegalStateException("Cannot start task executor", e);
    }
    // Iterate until shutdown
    while (!Thread.currentThread().isInterrupted()) {
        try {
            Task task = queue.take();
            debug("process Task {0}", task);
            taskExecutor.execute(null, task);
        } catch (InterruptedException e) {
            error("interrupt detected", e);
            Thread.currentThread().interrupt();
        }
    }
    debug("Processor thread shutdown.");
}
Also used : Task(org.forgerock.openam.sm.datalayer.api.Task) DataLayerException(org.forgerock.openam.sm.datalayer.api.DataLayerException)

Example 18 with Task

use of org.forgerock.openam.sm.datalayer.api.Task in project OpenAM by OpenRock.

the class TokenDataStore method query.

/**
     * Query the store for instances.
     *
     * @param query The criteria of the query, using {@code T} bean property names as fields.
     * @return A set of all matching objects.
     * @throws ServerException When an error occurs when querying the store.
     */
public Set<T> query(QueryFilter<String> query) throws ServerException {
    SyncResultHandler<Collection<Token>> handler = new SyncResultHandler<Collection<Token>>();
    try {
        Task task = taskFactory.query(adapter.toTokenQuery(query), handler);
        taskExecutor.execute(null, task);
        return convertResults(handler.getResults());
    } catch (ServerException e) {
        throw e;
    } catch (DataLayerException e) {
        if (debug.warningEnabled()) {
            debug.warning("Unable to read objects corresponding to query: " + query, e);
        }
        throw new ServerException("Could not query tokens from data store: " + e.getMessage());
    }
}
Also used : Task(org.forgerock.openam.sm.datalayer.api.Task) DataLayerException(org.forgerock.openam.sm.datalayer.api.DataLayerException) Collection(java.util.Collection) Token(org.forgerock.openam.cts.api.tokens.Token)

Example 19 with Task

use of org.forgerock.openam.sm.datalayer.api.Task in project OpenAM by OpenRock.

the class TaskDispatcherTest method shouldDelete.

@Test
public void shouldDelete() throws Exception {
    // Given
    Task task = mock(Task.class);
    given(mockTaskFactory.delete("123", mockHandler)).willReturn(task);
    // When
    queue.delete("123", mockHandler);
    // Then
    verify(mockExecutor).execute("123", task);
}
Also used : Task(org.forgerock.openam.sm.datalayer.api.Task) Test(org.testng.annotations.Test)

Example 20 with Task

use of org.forgerock.openam.sm.datalayer.api.Task in project OpenAM by OpenRock.

the class TokenDataStoreTest method testCreate.

@Test
public void testCreate() throws Exception {
    // Given
    Token token = new Token("123", TokenType.GENERIC);
    final Task task = mock(Task.class);
    when(adapter.toToken(anyObject())).thenReturn(token);
    when(taskFactory.create(any(Token.class), any(ResultHandler.class))).thenAnswer(new Answer<Object>() {

        @Override
        public Object answer(InvocationOnMock invocation) throws Throwable {
            ((ResultHandler) invocation.getArguments()[1]).processResults(new Object());
            return task;
        }
    });
    // When
    store.create(new Object());
    // Then
    verify(taskFactory).create(eq(token), any(ResultHandler.class));
    verify(taskExecutor).execute("123", task);
}
Also used : Task(org.forgerock.openam.sm.datalayer.api.Task) InvocationOnMock(org.mockito.invocation.InvocationOnMock) Token(org.forgerock.openam.cts.api.tokens.Token) ResultHandler(org.forgerock.openam.sm.datalayer.api.ResultHandler) Test(org.testng.annotations.Test)

Aggregations

Task (org.forgerock.openam.sm.datalayer.api.Task)28 Test (org.testng.annotations.Test)26 Token (org.forgerock.openam.cts.api.tokens.Token)17 ResultHandler (org.forgerock.openam.sm.datalayer.api.ResultHandler)17 InvocationOnMock (org.mockito.invocation.InvocationOnMock)15 DataLayerException (org.forgerock.openam.sm.datalayer.api.DataLayerException)7 TokenFilter (org.forgerock.openam.cts.api.filter.TokenFilter)5 Debug (com.sun.identity.shared.debug.Debug)1 Closeable (java.io.Closeable)1 Collection (java.util.Collection)1 Semaphore (java.util.concurrent.Semaphore)1 ConnectionConfig (org.forgerock.openam.sm.ConnectionConfig)1 ConnectionConfigFactory (org.forgerock.openam.sm.ConnectionConfigFactory)1 ConnectionType (org.forgerock.openam.sm.datalayer.api.ConnectionType)1 TaskExecutor (org.forgerock.openam.sm.datalayer.api.TaskExecutor)1