@Test
public void should_classify_instance_using_classifier() {

	// Given
	Boolean expectedLabel1 = true;
	Boolean expectedLabel2 = false;
	String classifierName = "TestLearner";
	ClassifyQuery<Boolean> query = new ClassifyQuery<Boolean>(classifierName);
	double[] features1 = new double[10];
	double[] features2 = new double[10];
	TridentTuple tuple1 = createMockedInstanceTuple(features1);
	TridentTuple tuple2 = createMockedInstanceTuple(features2);
	List<TridentTuple> tuples = Arrays.asList(tuple1, tuple2);
	Classifier<Boolean> expectedClassifier = mock(Classifier.class);
	given(expectedClassifier.classify(same(features1))).willReturn(expectedLabel1);
	given(expectedClassifier.classify(same(features2))).willReturn(expectedLabel2);
	List<List<Object>> expectedKeys = asList(asList((Object) classifierName));
	MapState<Classifier<Boolean>> state = mock(MapState.class);
	given(state.multiGet(expectedKeys)).willReturn(Arrays.asList(expectedClassifier));
	// When
	List<Boolean> labels = query.batchRetrieve(state, tuples);
	assertEquals(2, labels.size());
	assertTrue(labels.get(0));
	assertFalse(labels.get(1));
}