Skip to content

Commit

Permalink
Update SSDeepQueryTest to properly validate unit test results
Browse files Browse the repository at this point in the history
  • Loading branch information
drewfarris committed Sep 19, 2023
1 parent f203f1c commit 9c5120a
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ public Map.Entry<SSDeepHash,NGramTuple> transform(Map.Entry<Key,Value> input) th
final NGramTuple c = new NGramTuple(chunkSize, ngram);

// extract the matching ssdeep hash from the column qualifier
final String s = input.getKey().getColumnQualifier().toString();
final String s = k.getColumnQualifier().toString();
try {
final SSDeepHash h = SSDeepHash.parse(s);
return new AbstractMap.SimpleImmutableEntry<>(h, c);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,14 @@

import static org.junit.Assert.fail;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.stream.Stream;

Expand Down Expand Up @@ -45,8 +50,11 @@
import datawave.webservice.common.connection.AccumuloConnectionFactory;
import datawave.webservice.query.QueryImpl;
import datawave.webservice.query.result.event.DefaultResponseObjectFactory;
import datawave.webservice.query.result.event.EventBase;
import datawave.webservice.query.result.event.FieldBase;
import datawave.webservice.query.runner.RunningQuery;
import datawave.webservice.result.EventQueryResponseBase;
import it.unimi.dsi.fastutil.Hash;

public class SSDeepQueryTest {

Expand Down Expand Up @@ -154,11 +162,30 @@ public void setUpQuery() {
@Test
public void testSingleQuery() throws Exception {
String query = "CHECKSUM_SSDEEP:" + TEST_SSDEEPS[2];
runSSDeepQuery(query);
Assert.assertTrue(true);
EventQueryResponseBase response = runSSDeepQuery(query);
List<EventBase> events = response.getEvents();
int eventCount = events.size();

Map<String,String> observedFields = new HashMap<>();
if (eventCount > 0) {
for (EventBase e : events) {
List<FieldBase> fields = e.getFields();
for (FieldBase f : fields) {
observedFields.put(f.getName(), f.getValueString());
}
}
}

Assert.assertFalse("Observed fields was unexpectedly empty", observedFields.isEmpty());
Assert.assertEquals("65.0", observedFields.remove("MATCH_SCORE"));
Assert.assertEquals("1", observedFields.remove("MATCH_RANK"));
Assert.assertEquals("3072:02irbxzGAFYDMxud7fKg3dXVmbOn5u46Kjnz/G8VYrs123D6pIJLIOSP:02MKlWQ7Sg3d4bO968rm7JO", observedFields.remove("QUERY_SSDEEP"));
Assert.assertEquals("3072:02irbxzGAFYDMxud7fKg3dXVmbOn5u46Kjnz/G8VYrs123D6pIJLIOSP:02MKlWQ7Sg3d4bO968rm7JO", observedFields.remove("MATCHING_SSDEEP"));
Assert.assertTrue("Observed unexpected field(s): " + observedFields, observedFields.isEmpty());
Assert.assertEquals(1, eventCount);
}

public void runSSDeepQuery(String query) throws Exception {
public EventQueryResponseBase runSSDeepQuery(String query) throws Exception {
QueryImpl q = new QueryImpl();
q.setQuery(query);
q.setId(UUID.randomUUID());
Expand All @@ -171,6 +198,6 @@ public void runSSDeepQuery(String query) throws Exception {
SSDeepSimilarityQueryTransformer transformer = (SSDeepSimilarityQueryTransformer) transformIterator.getTransformer();
EventQueryResponseBase response = (EventQueryResponseBase) transformer.createResponse(runner.next());

System.out.println(response);
return response;
}
}

0 comments on commit 9c5120a

Please sign in to comment.