use of org.eclipse.sirius.components.collaborative.dto.QueryBasedBooleanInput in project sirius-components by eclipse-sirius.
the class QueryBasedBooleanEventHandlerTests method testQueryBasedBooleanFailed.
@Test
public void testQueryBasedBooleanFailed() {
IQueryService queryService = new IQueryService.NoOp() {
@Override
public IPayload execute(IEditingContext editingContext, QueryBasedBooleanInput input) {
// $NON-NLS-1$
return new ErrorPayload(UUID.randomUUID(), "An error occured");
}
};
Many<ChangeDescription> changeDescriptionSink = Sinks.many().unicast().onBackpressureBuffer();
One<IPayload> payloadSink = Sinks.one();
this.handle(payloadSink, changeDescriptionSink, queryService);
ChangeDescription changeDescription = changeDescriptionSink.asFlux().blockFirst();
assertThat(changeDescription.getKind()).isEqualTo(ChangeKind.NOTHING);
IPayload payload = payloadSink.asMono().block();
assertThat(payload).isInstanceOf(ErrorPayload.class);
}
use of org.eclipse.sirius.components.collaborative.dto.QueryBasedBooleanInput in project sirius-components by eclipse-sirius.
the class QueryBasedBooleanEventHandler method handle.
@Override
public void handle(One<IPayload> payloadSink, Many<ChangeDescription> changeDescriptionSink, IEditingContext editingContext, IInput input) {
this.counter.increment();
String message = this.messageService.invalidInput(input.getClass().getSimpleName(), QueryBasedStringInput.class.getSimpleName());
IPayload payload = new ErrorPayload(input.getId(), message);
if (input instanceof QueryBasedBooleanInput) {
QueryBasedBooleanInput queryBasedBooleanInput = (QueryBasedBooleanInput) input;
payload = this.queryService.execute(editingContext, queryBasedBooleanInput);
}
payloadSink.tryEmitValue(payload);
ChangeDescription changeDescription = new ChangeDescription(ChangeKind.NOTHING, editingContext.getId(), input);
changeDescriptionSink.tryEmitNext(changeDescription);
}
use of org.eclipse.sirius.components.collaborative.dto.QueryBasedBooleanInput in project sirius-components by eclipse-sirius.
the class QueryBasedBooleanEventHandlerTests method testQueryBasedBoolean.
@Test
public void testQueryBasedBoolean() {
// The EMFQueryService implementation is already tested by another class.
IQueryService queryService = new IQueryService.NoOp() {
@Override
public IPayload execute(IEditingContext editingContext, QueryBasedBooleanInput input) {
return new QueryBasedBooleanSuccessPayload(UUID.randomUUID(), EXPECTED_RESULT_FALSE);
}
};
Many<ChangeDescription> changeDescriptionSink = Sinks.many().unicast().onBackpressureBuffer();
One<IPayload> payloadSink = Sinks.one();
this.handle(payloadSink, changeDescriptionSink, queryService);
ChangeDescription changeDescription = changeDescriptionSink.asFlux().blockFirst();
assertThat(changeDescription.getKind()).isEqualTo(ChangeKind.NOTHING);
IPayload payload = payloadSink.asMono().block();
assertThat(payload).isInstanceOf(QueryBasedBooleanSuccessPayload.class);
assertThat(((QueryBasedBooleanSuccessPayload) payload).getResult()).isEqualTo(EXPECTED_RESULT_FALSE);
}
use of org.eclipse.sirius.components.collaborative.dto.QueryBasedBooleanInput in project sirius-components by eclipse-sirius.
the class QueryBasedBooleanEventHandlerTests method handle.
private void handle(One<IPayload> payloadSink, Many<ChangeDescription> changeDescriptionSink, IQueryService queryService) {
QueryBasedBooleanEventHandler queryBasedBooleanEventHandler = new QueryBasedBooleanEventHandler(new ICollaborativeMessageService.NoOp(), new SimpleMeterRegistry(), queryService);
// $NON-NLS-1$
IInput input = new QueryBasedBooleanInput(UUID.randomUUID(), "", Map.of());
assertThat(queryBasedBooleanEventHandler.canHandle(new IEditingContext.NoOp(), input)).isTrue();
IEditingContext editingContext = () -> UUID.randomUUID().toString();
queryBasedBooleanEventHandler.handle(payloadSink, changeDescriptionSink, editingContext, input);
}
Aggregations