Search in sources :

Example 1 with Builder

use of org.opensearch.persistent.PersistentTasksCustomMetadata.Builder in project OpenSearch by opensearch-project.

the class PersistentTasksCustomMetadataTests method testBuilder.

public void testBuilder() {
    PersistentTasksCustomMetadata persistentTasks = null;
    String lastKnownTask = "";
    for (int i = 0; i < randomIntBetween(10, 100); i++) {
        final Builder builder;
        if (randomBoolean()) {
            builder = PersistentTasksCustomMetadata.builder();
        } else {
            builder = PersistentTasksCustomMetadata.builder(persistentTasks);
        }
        boolean changed = false;
        for (int j = 0; j < randomIntBetween(1, 10); j++) {
            switch(randomInt(3)) {
                case 0:
                    lastKnownTask = addRandomTask(builder);
                    changed = true;
                    break;
                case 1:
                    if (builder.hasTask(lastKnownTask)) {
                        changed = true;
                        builder.reassignTask(lastKnownTask, randomAssignment());
                    } else {
                        String fLastKnownTask = lastKnownTask;
                        expectThrows(ResourceNotFoundException.class, () -> builder.reassignTask(fLastKnownTask, randomAssignment()));
                    }
                    break;
                case 2:
                    if (builder.hasTask(lastKnownTask)) {
                        changed = true;
                        builder.updateTaskState(lastKnownTask, randomBoolean() ? new State(randomAlphaOfLength(10)) : null);
                    } else {
                        String fLastKnownTask = lastKnownTask;
                        expectThrows(ResourceNotFoundException.class, () -> builder.updateTaskState(fLastKnownTask, null));
                    }
                    break;
                case 3:
                    if (builder.hasTask(lastKnownTask)) {
                        changed = true;
                        builder.removeTask(lastKnownTask);
                    } else {
                        String fLastKnownTask = lastKnownTask;
                        expectThrows(ResourceNotFoundException.class, () -> builder.removeTask(fLastKnownTask));
                    }
                    break;
            }
        }
        assertEquals(changed, builder.isChanged());
        persistentTasks = builder.build();
    }
}
Also used : State(org.opensearch.persistent.TestPersistentTasksPlugin.State) ClusterState(org.opensearch.cluster.ClusterState) Builder(org.opensearch.persistent.PersistentTasksCustomMetadata.Builder) XContentBuilder(org.opensearch.common.xcontent.XContentBuilder)

Aggregations

ClusterState (org.opensearch.cluster.ClusterState)1 XContentBuilder (org.opensearch.common.xcontent.XContentBuilder)1 Builder (org.opensearch.persistent.PersistentTasksCustomMetadata.Builder)1 State (org.opensearch.persistent.TestPersistentTasksPlugin.State)1