use of org.dotwebstack.framework.core.model.ObjectField in project dotwebstack-framework by dotwebstack.
the class FieldPathHelperTest method createObjectFieldPath_returnsListOfObjectField_forPath.
@Test
void createObjectFieldPath_returnsListOfObjectField_forPath() {
Schema schema = new Schema();
TestObjectType objectTypeFoo = createFooObjectType();
TestObjectType objectTypeBar = createBarObjectType();
TestObjectType objectTypeBaz = createBazObjectType();
objectTypeFoo.getField("bar").setTargetType(objectTypeBar);
schema.setObjectTypes(Map.of("Foo", objectTypeFoo, "Bar", objectTypeBar, "Baz", objectTypeBaz));
var path = "bar.baz";
List<ObjectField> result = createFieldPath(objectTypeFoo, path);
assertThat(result.size(), is(2));
assertThat(result.get(0).getName(), is("bar"));
assertThat(result.get(1).getName(), is("baz"));
}
use of org.dotwebstack.framework.core.model.ObjectField in project dotwebstack-framework by dotwebstack.
the class BackendDataFetcherTest method get_returnsFluxList_ifSourceNull_NotSubscription_and_ListTypeTrue.
@Test
void get_returnsFluxList_ifSourceNull_NotSubscription_and_ListTypeTrue() {
var requestContext = RequestContext.builder().objectField(mock(ObjectField.class)).source(null).build();
when(requestFactory.createRequestContext(environment)).thenReturn(requestContext);
when(environment.getSource()).thenReturn(null);
graphql.language.Field fieldMock = new Field("aaa");
lenient().when(environment.getField()).thenReturn(fieldMock);
GraphQLList listType = mock(GraphQLList.class);
when(environment.getFieldType()).thenReturn(listType);
mockOperationDefinition(OperationDefinition.Operation.QUERY);
CollectionRequest collectionRequestMock = CollectionRequest.builder().objectRequest(ObjectRequest.builder().build()).build();
DataFetchingFieldSelectionSet selectionSet = mock(DataFetchingFieldSelectionSet.class);
when(environment.getSelectionSet()).thenReturn(selectionSet);
var executionStepInfo = mockExecutionStepInfoWithResultPath("fff", "fff");
lenient().when(requestFactory.createCollectionRequest(eq(executionStepInfo), eq(selectionSet))).thenReturn(collectionRequestMock);
Map<String, Object> resultMock = new HashMap<>();
resultMock.put("aa", new String[] { "a", "b" });
when(backendLoader.loadMany(any(CollectionRequest.class), any(RequestContext.class))).thenReturn(Flux.just(resultMock));
mockGraphQlFieldDefinition(Map.of());
var result = ((CompletableFuture<?>) backendDataFetcher.get(environment)).join();
assertThat(result, CoreMatchers.is(notNullValue()));
assertTrue(result instanceof List);
assertThat(((List<?>) result).get(0), is(resultMock));
verify(requestFactory).createCollectionRequest(any(ExecutionStepInfo.class), any(DataFetchingFieldSelectionSet.class));
verify(backendLoader).loadMany(any(CollectionRequest.class), any(RequestContext.class));
}
use of org.dotwebstack.framework.core.model.ObjectField in project dotwebstack-framework by dotwebstack.
the class BackendDataFetcherTest method get_returnsMonoMap_ifSourceNull_SubscriptionFalse_and_ListTypeFalse.
@Test
void get_returnsMonoMap_ifSourceNull_SubscriptionFalse_and_ListTypeFalse() {
var requestContext = RequestContext.builder().objectField(mock(ObjectField.class)).source(null).build();
lenient().when(requestFactory.createRequestContext(environment)).thenReturn(requestContext);
when(environment.getSource()).thenReturn(null);
mockOperationDefinition(OperationDefinition.Operation.QUERY);
var objectRequest = ObjectRequest.builder().build();
DataFetchingFieldSelectionSet selectionSet = mock(DataFetchingFieldSelectionSet.class);
when(environment.getSelectionSet()).thenReturn(selectionSet);
var executionStepInfo = mockExecutionStepInfo("fff", "fff");
lenient().when(requestFactory.createObjectRequest(eq(executionStepInfo), eq(selectionSet))).thenReturn(objectRequest);
Map<String, Object> data = new HashMap<>();
data.put("aa", new String[] { "a", "b" });
when(backendLoader.loadSingle(objectRequest, requestContext)).thenReturn(Mono.just(data));
mockGraphQlFieldDefinition(Map.of());
var result = ((CompletableFuture<?>) backendDataFetcher.get(environment)).join();
assertTrue(result instanceof Map);
assertThat(((Map<?, ?>) result).get("aa"), is(data.get("aa")));
verify(requestFactory).createObjectRequest(any(ExecutionStepInfo.class), any(DataFetchingFieldSelectionSet.class));
verify(backendLoader).loadSingle(any(ObjectRequest.class), any(RequestContext.class));
}
use of org.dotwebstack.framework.core.model.ObjectField in project dotwebstack-framework by dotwebstack.
the class ModelHelperTest method createObjectFieldPath_returnsListOfObjectField_forPath.
@Test
void createObjectFieldPath_returnsListOfObjectField_forPath() {
Schema schema = new Schema();
TestObjectType objectTypeFoo = createFooObjectType();
TestObjectType objectTypeBar = createBarObjectType();
TestObjectType objectTypeBaz = createBazObjectType();
schema.setObjectTypes(Map.of("Foo", objectTypeFoo, "Bar", objectTypeBar, "Baz", objectTypeBaz));
var path = "bar.baz";
List<ObjectField> result = ModelHelper.createObjectFieldPath(schema, objectTypeFoo, path);
assertThat(result.size(), is(2));
assertThat(result.get(0).getName(), is("bar"));
assertThat(result.get(1).getName(), is("baz"));
}
use of org.dotwebstack.framework.core.model.ObjectField in project dotwebstack-framework by dotwebstack.
the class ObjectRequestHelper method addSortFields.
private static void addSortFields(CollectionRequest collectionRequest, SortCriteria sortCriteria) {
ObjectRequest objectRequest = collectionRequest.getObjectRequest();
for (int index = 0; index < sortCriteria.getFieldPath().size(); index++) {
ObjectField sortField = sortCriteria.getFieldPath().get(index);
if (index == (sortCriteria.getFieldPath().size() - 1)) {
findOrAddScalarField(objectRequest, sortField);
} else {
ObjectField nextSortField = sortCriteria.getFieldPath().get(index + 1);
objectRequest = findOrAddObjectRequest(objectRequest.getObjectFields(), sortField, nextSortField);
}
}
}
Aggregations