blob: 2759c33e49da09594b5b7b9ad9050c0190e9f6f1 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.rya.shell;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.Set;
import java.util.UUID;
import org.apache.rya.api.client.GetInstanceDetails;
import org.apache.rya.api.client.RyaClient;
import org.apache.rya.api.client.SetRyaStreamsConfiguration;
import org.apache.rya.api.client.accumulo.AccumuloConnectionDetails;
import org.apache.rya.api.instance.RyaDetails;
import org.apache.rya.api.instance.RyaDetails.RyaStreamsDetails;
import org.apache.rya.shell.util.ConsolePrinter;
import org.apache.rya.shell.util.SparqlPrompt;
import org.apache.rya.streams.api.RyaStreamsClient;
import org.apache.rya.streams.api.entity.StreamsQuery;
import org.apache.rya.streams.api.interactor.AddQuery;
import org.apache.rya.streams.api.interactor.DeleteQuery;
import org.apache.rya.streams.api.interactor.GetQuery;
import org.apache.rya.streams.api.interactor.ListQueries;
import org.apache.rya.streams.api.interactor.StartQuery;
import org.apache.rya.streams.api.interactor.StopQuery;
import org.junit.Test;
import com.google.common.base.Optional;
import com.google.common.collect.Sets;
/**
* Unit tests the methods of {@link RyaStreamsCommands}.
*/
public class RyaStreamsCommandsTest {
@Test
public void configureRyaStreams() throws Exception {
// Mock the object that performs the configure operation.
final RyaClient mockCommands = mock(RyaClient.class);
final SetRyaStreamsConfiguration setStreams = mock(SetRyaStreamsConfiguration.class);
when(mockCommands.getSetRyaStreamsConfiguration()).thenReturn(setStreams);
// Mock a shell state and connect it to a Rya instance.
final SharedShellState state = new SharedShellState();
state.connectedToAccumulo(mock(AccumuloConnectionDetails.class), mockCommands);
state.connectedToInstance("unitTest");
// Verify that no Rya Streams Client is set to the state.
assertFalse(state.getShellState().getRyaStreamsCommands().isPresent());
try {
// Execute the command.
final RyaStreamsCommands commands = new RyaStreamsCommands(state, mock(SparqlPrompt.class), mock(ConsolePrinter.class));
final String message = commands.configureRyaStreams("localhost", 6);
// Verify the request was forwarded to the mocked interactor.
final RyaStreamsDetails expectedDetails = new RyaStreamsDetails("localhost", 6);
verify(setStreams).setRyaStreamsConfiguration(eq("unitTest"), eq(expectedDetails));
// Verify a RyaStreamsClient was created and added to the state.
assertTrue(state.getShellState().getRyaStreamsCommands().isPresent());
// Verify the correct message is reported.
final String expected = "The Rya Instance has been updated to use the provided Rya Streams subsystem. " +
"Rya Streams commands are now avaiable while connected to this instance.";
assertEquals(expected, message);
} finally {
state.getShellState().getRyaStreamsCommands().get().close();
}
}
@Test
public void printRyaStreamsDetails_noRyaDetails() throws Exception {
// Mock the object that performs the configure operation.
final RyaClient mockCommands = mock(RyaClient.class);
final GetInstanceDetails getDetails = mock(GetInstanceDetails.class);
when(mockCommands.getGetInstanceDetails()).thenReturn(getDetails);
// When getting the instance details, ensure they are not found.
when(getDetails.getDetails(eq("unitTest"))).thenReturn(Optional.absent());
// Mock a shell state and connect it to a Rya instance.
final SharedShellState state = new SharedShellState();
state.connectedToAccumulo(mock(AccumuloConnectionDetails.class), mockCommands);
state.connectedToInstance("unitTest");
// Execute the command.
final RyaStreamsCommands commands = new RyaStreamsCommands(state, mock(SparqlPrompt.class), mock(ConsolePrinter.class));
final String message = commands.printRyaStreamsDetails();
final String expected = "This instance does not have any Rya Details, so it is unable to be connected to the Rya Streams subsystem.";
assertEquals(expected, message);
}
@Test
public void printRyaStreamsDetails_notConfigured() throws Exception {
// Mock the object that performs the configure operation.
final RyaClient mockCommands = mock(RyaClient.class);
final GetInstanceDetails getDetails = mock(GetInstanceDetails.class);
when(mockCommands.getGetInstanceDetails()).thenReturn(getDetails);
// When getting the instance details, ensure they do not have RyaStreamsDetails to print.
final RyaDetails details = mock(RyaDetails.class);
when(details.getRyaStreamsDetails()).thenReturn(Optional.absent());
when(getDetails.getDetails(eq("unitTest"))).thenReturn(Optional.of(details));
// Mock a shell state and connect it to a Rya instance.
final SharedShellState state = new SharedShellState();
state.connectedToAccumulo(mock(AccumuloConnectionDetails.class), mockCommands);
state.connectedToInstance("unitTest");
// Execute the command.
final RyaStreamsCommands commands = new RyaStreamsCommands(state, mock(SparqlPrompt.class), mock(ConsolePrinter.class));
final String message = commands.printRyaStreamsDetails();
final String expected = "This instance of Rya has not been configured to use a Rya Streams subsystem.";
assertEquals(expected, message);
}
@Test
public void printRyaStreamsDetails_configured() throws Exception {
// Mock the object that performs the configure operation.
final RyaClient mockCommands = mock(RyaClient.class);
final GetInstanceDetails getDetails = mock(GetInstanceDetails.class);
when(mockCommands.getGetInstanceDetails()).thenReturn(getDetails);
// When getting the instance details, ensure they do have RyaStreamsDetails to print.
final RyaDetails details = mock(RyaDetails.class);
when(details.getRyaStreamsDetails()).thenReturn(Optional.of(new RyaStreamsDetails("localhost", 6)));
when(getDetails.getDetails(eq("unitTest"))).thenReturn(Optional.of(details));
// Mock a shell state and connect it to a Rya instance.
final SharedShellState state = new SharedShellState();
state.connectedToAccumulo(mock(AccumuloConnectionDetails.class), mockCommands);
state.connectedToInstance("unitTest");
// Execute the command.
final RyaStreamsCommands commands = new RyaStreamsCommands(state, mock(SparqlPrompt.class), mock(ConsolePrinter.class));
final String message = commands.printRyaStreamsDetails();
final String expected = "Kafka Hostname: localhost, Kafka Port: 6";
assertEquals(expected, message);
}
@Test
public void addQuery_userAbortsSparqlPrompt() throws Exception {
// Mock the object that performs the rya streams operation.
final RyaStreamsClient mockClient = mock(RyaStreamsClient.class);
final AddQuery addQuery = mock(AddQuery.class);
when(mockClient.getAddQuery()).thenReturn(addQuery);
// Mock a SPARQL prompt that a user aborts.
final SparqlPrompt prompt = mock(SparqlPrompt.class);
when(prompt.getSparql()).thenReturn(Optional.absent());
// Mock a shell state and connect it to a Rya instance.
final SharedShellState state = new SharedShellState();
state.connectedToAccumulo(mock(AccumuloConnectionDetails.class), mock(RyaClient.class));
state.connectedToInstance("unitTest");
state.connectedToRyaStreams(mockClient);
// Execute the command.
final RyaStreamsCommands commands = new RyaStreamsCommands(state, prompt, mock(ConsolePrinter.class));
final String message = commands.addQuery(false, false);
// Verify a message is printed to the user.
assertEquals("", message);
}
@Test
public void addQuery_doNotInsertQuery() throws Exception {
// Mock the object that performs the rya streams operation.
final RyaStreamsClient mockClient = mock(RyaStreamsClient.class);
final AddQuery addQuery = mock(AddQuery.class);
when(mockClient.getAddQuery()).thenReturn(addQuery);
final String sparql = "SELECT * WHERE { ?a ?b ?c }";
final StreamsQuery addedQuery = new StreamsQuery(UUID.randomUUID(), sparql, true, false);
when(addQuery.addQuery(eq(sparql), eq(true), eq(false))).thenReturn(addedQuery);
// Mock a SPARQL prompt that a user entered a query through.
final SparqlPrompt prompt = mock(SparqlPrompt.class);
when(prompt.getSparql()).thenReturn(Optional.of(sparql));
// Mock a shell state and connect it to a Rya instance.
final SharedShellState state = new SharedShellState();
state.connectedToAccumulo(mock(AccumuloConnectionDetails.class), mock(RyaClient.class));
state.connectedToInstance("unitTest");
state.connectedToRyaStreams(mockClient);
// Execute the command.
final RyaStreamsCommands commands = new RyaStreamsCommands(state, prompt, mock(ConsolePrinter.class));
final String message = commands.addQuery(false, false);
// Verify the interactor was invoked with the provided input.
verify(addQuery).addQuery(sparql, true, false);
// Verify a message is printed to the user.
final String expected = "The added query's ID is " + addedQuery.getQueryId();
assertEquals(expected, message);
}
@Test
public void addQuery_insertConstructQuery() throws Exception {
// Mock the object that performs the rya streams operation.
final RyaStreamsClient mockClient = mock(RyaStreamsClient.class);
final AddQuery addQuery = mock(AddQuery.class);
when(mockClient.getAddQuery()).thenReturn(addQuery);
final String sparql =
"PREFIX vCard: <http://www.w3.org/2001/vcard-rdf/3.0#> " +
"PREFIX foaf: <http://xmlns.com/foaf/0.1/> " +
"CONSTRUCT { " +
"?X vCard:FN ?name . " +
"?X vCard:URL ?url . " +
"?X vCard:TITLE ?title . " +
"} " +
"FROM <http://www.w3.org/People/Berners-Lee/card> " +
"WHERE { " +
"OPTIONAL { ?X foaf:name ?name . FILTER isLiteral(?name) . } " +
"OPTIONAL { ?X foaf:homepage ?url . FILTER isURI(?url) . } " +
"OPTIONAL { ?X foaf:title ?title . FILTER isLiteral(?title) . } " +
"}";
final StreamsQuery addedQuery = new StreamsQuery(UUID.randomUUID(), sparql, true, true);
when(addQuery.addQuery(eq(sparql), eq(false), eq(true))).thenReturn(addedQuery);
// Mock a SPARQL prompt that a user entered a query through.
final SparqlPrompt prompt = mock(SparqlPrompt.class);
when(prompt.getSparql()).thenReturn(Optional.of(sparql));
// Mock a shell state and connect it to a Rya instance.
final SharedShellState state = new SharedShellState();
state.connectedToAccumulo(mock(AccumuloConnectionDetails.class), mock(RyaClient.class));
state.connectedToInstance("unitTest");
state.connectedToRyaStreams(mockClient);
// Execute the command.
final RyaStreamsCommands commands = new RyaStreamsCommands(state, prompt, mock(ConsolePrinter.class));
final String message = commands.addQuery(true, true);
// Verify the interactor was invoked with the provided input.
verify(addQuery).addQuery(sparql, false, true);
// Verify a message is printed to the user.
final String expected = "The added query's ID is " + addedQuery.getQueryId();
assertEquals(expected, message);
}
@Test
public void addQuery_doNotInsertInsertUpdate() throws Exception {
// Mock the object that performs the rya streams operation.
final RyaStreamsClient mockClient = mock(RyaStreamsClient.class);
final AddQuery addQuery = mock(AddQuery.class);
when(mockClient.getAddQuery()).thenReturn(addQuery);
final String sparql =
"PREFIX Sensor: <http://example.com/Equipment.owl#> " +
"INSERT { " +
"?subject Sensor:test2 ?newValue " +
"} WHERE {" +
"values (?oldValue ?newValue) {" +
"('testValue1' 'newValue1')" +
"('testValue2' 'newValue2')" +
"}" +
"?subject Sensor:test1 ?oldValue" +
"}";
final StreamsQuery addedQuery = new StreamsQuery(UUID.randomUUID(), sparql, true, false);
when(addQuery.addQuery(eq(sparql), eq(false), eq(false))).thenReturn(addedQuery);
// Mock a SPARQL prompt that a user entered a query through.
final SparqlPrompt prompt = mock(SparqlPrompt.class);
when(prompt.getSparql()).thenReturn(Optional.of(sparql));
// Mock a shell state and connect it to a Rya instance.
final SharedShellState state = new SharedShellState();
state.connectedToAccumulo(mock(AccumuloConnectionDetails.class), mock(RyaClient.class));
state.connectedToInstance("unitTest");
state.connectedToRyaStreams(mockClient);
// Execute the command.
final RyaStreamsCommands commands = new RyaStreamsCommands(state, prompt, mock(ConsolePrinter.class));
final String message = commands.addQuery(true, false);
// Verify the interactor was invoked with the provided input.
verify(addQuery).addQuery(sparql, false, false);
// Verify a message is printed to the user.
final String expected = "The added query's ID is " + addedQuery.getQueryId();
assertEquals(expected, message);
}
@Test(expected = RuntimeException.class)
public void addQuery_insertQueryNotCorrectType() throws Exception {
// Mock the object that performs the rya streams operation.
final RyaStreamsClient mockClient = mock(RyaStreamsClient.class);
final AddQuery addQuery = mock(AddQuery.class);
when(mockClient.getAddQuery()).thenReturn(addQuery);
final String sparql = "SELECT * WHERE { ?a ?b ?c }";
final StreamsQuery addedQuery = new StreamsQuery(UUID.randomUUID(), sparql, true, true);
when(addQuery.addQuery(eq(sparql), eq(false), eq(true))).thenReturn(addedQuery);
// Mock a SPARQL prompt that a user entered a query through.
final SparqlPrompt prompt = mock(SparqlPrompt.class);
when(prompt.getSparql()).thenReturn(Optional.of(sparql));
// Mock a shell state and connect it to a Rya instance.
final SharedShellState state = new SharedShellState();
state.connectedToAccumulo(mock(AccumuloConnectionDetails.class), mock(RyaClient.class));
state.connectedToInstance("unitTest");
state.connectedToRyaStreams(mockClient);
// Execute the command.
final RyaStreamsCommands commands = new RyaStreamsCommands(state, prompt, mock(ConsolePrinter.class));
commands.addQuery(true, true);
}
@Test
public void deleteQuery() throws Exception {
// Mock the object that performs the rya streams operation.
final RyaStreamsClient mockClient = mock(RyaStreamsClient.class);
final DeleteQuery deleteQuery = mock(DeleteQuery.class);
when(mockClient.getDeleteQuery()).thenReturn(deleteQuery);
// Mock a shell state and connect it to a Rya instance.
final SharedShellState state = new SharedShellState();
state.connectedToAccumulo(mock(AccumuloConnectionDetails.class), mock(RyaClient.class));
state.connectedToInstance("unitTest");
state.connectedToRyaStreams(mockClient);
// Execute the command.
final RyaStreamsCommands commands = new RyaStreamsCommands(state, mock(SparqlPrompt.class), mock(ConsolePrinter.class));
final UUID queryId = UUID.randomUUID();
final String message = commands.deleteQuery(queryId.toString());
// Verify the interactor was invoked with the provided parameters.
verify(deleteQuery).delete(eq(queryId));
// Verify a message is printed to the user.
final String expected = "The query has been deleted.";
assertEquals(expected, message);
}
@Test
public void startQuery() throws Exception {
// Mock the object that performs the rya streams operation.
final RyaStreamsClient mockClient = mock(RyaStreamsClient.class);
final StartQuery startQuery = mock(StartQuery.class);
when(mockClient.getStartQuery()).thenReturn(startQuery);
final GetQuery getQuery = mock(GetQuery.class);
when(mockClient.getGetQuery()).thenReturn(getQuery);
// Mock a shell state and connect it to a Rya instance.
final SharedShellState state = new SharedShellState();
state.connectedToAccumulo(mock(AccumuloConnectionDetails.class), mock(RyaClient.class));
state.connectedToInstance("unitTest");
state.connectedToRyaStreams(mockClient);
// Report the query as not running.
final UUID queryId = UUID.randomUUID();
when(getQuery.getQuery(eq(queryId))).thenReturn(java.util.Optional.of(new StreamsQuery(queryId, "sparql", false, false)));
// Execute the command.
final RyaStreamsCommands commands = new RyaStreamsCommands(state, mock(SparqlPrompt.class), mock(ConsolePrinter.class));
final String message = commands.startQuery(queryId.toString());
// Verify the interactor was invoked with the provided parameters.
verify(startQuery).start(queryId);
// Verify a message is printed to the user.
final String expected = "The query will be processed by the Rya Streams subsystem.";
assertEquals(expected, message);
}
@Test
public void startQuery_alreadyRunning() throws Exception{
// Mock the object that performs the rya streams operation.
final RyaStreamsClient mockClient = mock(RyaStreamsClient.class);
final StartQuery startQuery = mock(StartQuery.class);
when(mockClient.getStartQuery()).thenReturn(startQuery);
final GetQuery getQuery = mock(GetQuery.class);
when(mockClient.getGetQuery()).thenReturn(getQuery);
// Mock a shell state and connect it to a Rya instance.
final SharedShellState state = new SharedShellState();
state.connectedToAccumulo(mock(AccumuloConnectionDetails.class), mock(RyaClient.class));
state.connectedToInstance("unitTest");
state.connectedToRyaStreams(mockClient);
// Report the query as running.
final UUID queryId = UUID.randomUUID();
when(getQuery.getQuery(eq(queryId))).thenReturn(java.util.Optional.of(new StreamsQuery(queryId, "sparql", true, false)));
// Execute the command.
final RyaStreamsCommands commands = new RyaStreamsCommands(state, mock(SparqlPrompt.class), mock(ConsolePrinter.class));
final String message = commands.startQuery(queryId.toString());
// Verify the interactor was not invoked.
verify(startQuery, never()).start(queryId);
// Verify a message is printed to the user.
final String expected = "That query is already running.";
assertEquals(expected, message);
}
@Test
public void stopQuery() throws Exception {
// Mock the object that performs the rya streams operation.
final RyaStreamsClient mockClient = mock(RyaStreamsClient.class);
final StopQuery stopQuery = mock(StopQuery.class);
when(mockClient.getStopQuery()).thenReturn(stopQuery);
final GetQuery getQuery = mock(GetQuery.class);
when(mockClient.getGetQuery()).thenReturn(getQuery);
// Mock a shell state and connect it to a Rya instance.
final SharedShellState state = new SharedShellState();
state.connectedToAccumulo(mock(AccumuloConnectionDetails.class), mock(RyaClient.class));
state.connectedToInstance("unitTest");
state.connectedToRyaStreams(mockClient);
// Report the query as running.
final UUID queryId = UUID.randomUUID();
when(getQuery.getQuery(eq(queryId))).thenReturn(java.util.Optional.of(new StreamsQuery(queryId, "sparql", true, false)));
// Execute the command.
final RyaStreamsCommands commands = new RyaStreamsCommands(state, mock(SparqlPrompt.class), mock(ConsolePrinter.class));
final String message = commands.stopQuery(queryId.toString());
// Verify the interactor was invoked with the provided parameters.
verify(stopQuery).stop(queryId);
// Verify a message is printed to the user.
final String expected = "The query will no longer be processed by the Rya Streams subsystem.";
assertEquals(expected, message);
}
@Test
public void stopQuery_alreadyStopped() throws Exception {
// Mock the object that performs the rya streams operation.
final RyaStreamsClient mockClient = mock(RyaStreamsClient.class);
final StopQuery stopQuery = mock(StopQuery.class);
when(mockClient.getStopQuery()).thenReturn(stopQuery);
final GetQuery getQuery = mock(GetQuery.class);
when(mockClient.getGetQuery()).thenReturn(getQuery);
// Mock a shell state and connect it to a Rya instance.
final SharedShellState state = new SharedShellState();
state.connectedToAccumulo(mock(AccumuloConnectionDetails.class), mock(RyaClient.class));
state.connectedToInstance("unitTest");
state.connectedToRyaStreams(mockClient);
// Report the query as not running.
final UUID queryId = UUID.randomUUID();
when(getQuery.getQuery(eq(queryId))).thenReturn(java.util.Optional.of(new StreamsQuery(queryId, "sparql", false, false)));
// Execute the command.
final RyaStreamsCommands commands = new RyaStreamsCommands(state, mock(SparqlPrompt.class), mock(ConsolePrinter.class));
final String message = commands.stopQuery(queryId.toString());
// Verify the interactor was not invoked with the provided parameters.
verify(stopQuery, never()).stop(queryId);
// Verify a message is printed to the user.
final String expected = "That query is already stopped.";
assertEquals(expected, message);
}
@Test
public void listQueries() throws Exception {
// Mock the object that performs the rya streams operation.
final RyaStreamsClient mockClient = mock(RyaStreamsClient.class);
final ListQueries listQueries = mock(ListQueries.class);
when(mockClient.getListQueries()).thenReturn(listQueries);
final Set<StreamsQuery> queries = Sets.newHashSet(
new StreamsQuery(
UUID.fromString("33333333-3333-3333-3333-333333333333"),
"SELECT * WHERE { ?person <urn:worksAt> ?business . }",
true, false),
new StreamsQuery(
UUID.fromString("11111111-1111-1111-1111-111111111111"),
"SELECT * WHERE { ?a ?b ?c . }",
true, false),
new StreamsQuery(
UUID.fromString("22222222-2222-2222-2222-222222222222"),
"SELECT * WHERE { ?d ?e ?f . }",
false, false));
when(listQueries.all()).thenReturn(queries);
// Mock a shell state and connect it to a Rya instance.
final SharedShellState state = new SharedShellState();
state.connectedToAccumulo(mock(AccumuloConnectionDetails.class), mock(RyaClient.class));
state.connectedToInstance("unitTest");
state.connectedToRyaStreams(mockClient);
// Execute the command.
final RyaStreamsCommands commands = new RyaStreamsCommands(state, mock(SparqlPrompt.class), mock(ConsolePrinter.class));
final String message = commands.listQueries();
// Verify the correct report is returned.
final String expected =
"-----------------------------------------------\n" +
" Query ID: 11111111-1111-1111-1111-111111111111\n" +
"Is Active: true\n" +
"Is Insert: false\n" +
" SPARQL: select ?a ?b ?c\n" +
" where {\n" +
" ?a ?b ?c.\n" +
" }\n" +
"-----------------------------------------------\n" +
" Query ID: 22222222-2222-2222-2222-222222222222\n" +
"Is Active: false\n" +
"Is Insert: false\n" +
" SPARQL: select ?d ?e ?f\n" +
" where {\n" +
" ?d ?e ?f.\n" +
" }\n" +
"-----------------------------------------------\n" +
" Query ID: 33333333-3333-3333-3333-333333333333\n" +
"Is Active: true\n" +
"Is Insert: false\n" +
" SPARQL: select ?person ?business\n" +
" where {\n" +
" ?person <urn:worksAt> ?business.\n" +
" }\n" +
"-----------------------------------------------\n";
assertEquals(expected, message);
}
@Test
public void printQueryDetails() throws Exception {
// Mock the object that performs the rya streams operation.
final RyaStreamsClient mockClient = mock(RyaStreamsClient.class);
final GetQuery getQuery = mock(GetQuery.class);
when(mockClient.getGetQuery()).thenReturn(getQuery);
final UUID queryId = UUID.fromString("da55cea5-c21c-46a5-ab79-5433eef4efaa");
final StreamsQuery query = new StreamsQuery(queryId, "SELECT * WHERE { ?a ?b ?c . }", true, false);
when(getQuery.getQuery(queryId)).thenReturn(java.util.Optional.of(query));
// Mock a shell state and connect it to a Rya instance.
final SharedShellState state = new SharedShellState();
state.connectedToAccumulo(mock(AccumuloConnectionDetails.class), mock(RyaClient.class));
state.connectedToInstance("unitTest");
state.connectedToRyaStreams(mockClient);
// Execute the command.
final RyaStreamsCommands commands = new RyaStreamsCommands(state, mock(SparqlPrompt.class), mock(ConsolePrinter.class));
final String message = commands.printQueryDetails(queryId.toString());
// Verify the correct report is returned.
final String expected =
" Query ID: da55cea5-c21c-46a5-ab79-5433eef4efaa\n" +
"Is Active: true\n" +
"Is Insert: false\n" +
" SPARQL: select ?a ?b ?c\n" +
" where {\n" +
" ?a ?b ?c.\n" +
" }\n";
assertEquals(expected, message);
}
}