Skip to content

Commit c0a0166

Browse files
committed
test(visual-recognition): Add unit and integration tests for Core ML endpoint
1 parent e29bac5 commit c0a0166

File tree

3 files changed

+49
-0
lines changed

3 files changed

+49
-0
lines changed

visual-recognition/src/test/java/com/ibm/watson/developer_cloud/visual_recognition/v3/VisualRecognitionIT.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.ibm.watson.developer_cloud.visual_recognition.v3.model.DetectFacesOptions;
2424
import com.ibm.watson.developer_cloud.visual_recognition.v3.model.DetectedFaces;
2525
import com.ibm.watson.developer_cloud.visual_recognition.v3.model.GetClassifierOptions;
26+
import com.ibm.watson.developer_cloud.visual_recognition.v3.model.GetCoreMlModelOptions;
2627
import com.ibm.watson.developer_cloud.visual_recognition.v3.model.ListClassifiersOptions;
2728
import org.junit.Assume;
2829
import org.junit.Before;
@@ -337,4 +338,25 @@ public void testListClassifiers() {
337338
assertNotNull(classifier.getClasses());
338339
assertNotNull(classifier.getCreated());
339340
}
341+
342+
/**
343+
* Test getting the Core ML file for a classifier.
344+
*/
345+
@Ignore
346+
@Test
347+
public void testGetCoreMlModel() {
348+
ListClassifiersOptions options = new ListClassifiersOptions.Builder().verbose(true).build();
349+
List<Classifier> classifiers = service.listClassifiers(options).execute().getClassifiers();
350+
351+
for (Classifier classifier : classifiers) {
352+
if (classifier.isCoreMlEnabled()) {
353+
GetCoreMlModelOptions getCoreMlModelOptions = new GetCoreMlModelOptions.Builder()
354+
.classifierId(classifier.getClassifierId())
355+
.build();
356+
InputStream coreMlFile = service.getCoreMlModel(getCoreMlModelOptions).execute();
357+
assertNotNull(coreMlFile);
358+
break;
359+
}
360+
}
361+
}
340362
}

visual-recognition/src/test/java/com/ibm/watson/developer_cloud/visual_recognition/v3/VisualRecognitionTest.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@
1212
*/
1313
package com.ibm.watson.developer_cloud.visual_recognition.v3;
1414

15+
import com.google.common.io.Files;
1516
import com.google.gson.Gson;
1617
import com.google.gson.JsonObject;
1718
import com.ibm.watson.developer_cloud.WatsonServiceUnitTest;
19+
import com.ibm.watson.developer_cloud.http.HttpMediaType;
1820
import com.ibm.watson.developer_cloud.visual_recognition.v3.model.ClassifiedImages;
1921
import com.ibm.watson.developer_cloud.visual_recognition.v3.model.Classifier;
2022
import com.ibm.watson.developer_cloud.visual_recognition.v3.model.ClassifyOptions;
@@ -23,10 +25,12 @@
2325
import com.ibm.watson.developer_cloud.visual_recognition.v3.model.DetectFacesOptions;
2426
import com.ibm.watson.developer_cloud.visual_recognition.v3.model.DetectedFaces;
2527
import com.ibm.watson.developer_cloud.visual_recognition.v3.model.GetClassifierOptions;
28+
import com.ibm.watson.developer_cloud.visual_recognition.v3.model.GetCoreMlModelOptions;
2629
import com.ibm.watson.developer_cloud.visual_recognition.v3.model.ListClassifiersOptions;
2730
import com.ibm.watson.developer_cloud.visual_recognition.v3.model.UpdateClassifierOptions;
2831
import okhttp3.mockwebserver.MockResponse;
2932
import okhttp3.mockwebserver.RecordedRequest;
33+
import okio.Buffer;
3034
import org.junit.Before;
3135
import org.junit.Test;
3236

@@ -58,6 +62,7 @@ public class VisualRecognitionTest extends WatsonServiceUnitTest {
5862
private static final String PATH_CLASSIFIERS = "/v3/classifiers";
5963
private static final String PATH_CLASSIFIER = "/v3/classifiers/%s";
6064
private static final String PATH_DETECT_FACES = "/v3/detect_faces";
65+
private static final String PATH_CORE_ML = "/v3/classifiers/%s/core_ml_model";
6166

6267
private VisualRecognition service;
6368

@@ -328,4 +333,26 @@ public void testGetClassifiers() throws InterruptedException, IOException {
328333
assertEquals("GET", request.getMethod());
329334
assertEquals(serviceResponse, classifiers);
330335
}
336+
337+
@Test
338+
public void testGetCoreMlModel() throws IOException, InterruptedException {
339+
final File model = new File("src/test/resources/visual_recognition/custom_model.mlmodel");
340+
final Buffer buffer = new Buffer().write(Files.toByteArray(model));
341+
342+
server.enqueue(new MockResponse().addHeader(CONTENT_TYPE, HttpMediaType.APPLICATION_OCTET_STREAM).setBody(buffer));
343+
344+
String classifierId = "classifier_id";
345+
GetCoreMlModelOptions options = new GetCoreMlModelOptions.Builder()
346+
.classifierId(classifierId)
347+
.build();
348+
349+
InputStream modelFile = service.getCoreMlModel(options).execute();
350+
351+
RecordedRequest request = server.takeRequest();
352+
String path = String.format(PATH_CORE_ML, classifierId) + "?" + VERSION_DATE + "=2016-05-20&api_key=" + API_KEY;
353+
354+
assertEquals(path, request.getPath());
355+
assertEquals("GET", request.getMethod());
356+
writeInputStreamToFile(modelFile, new File("build/model_result.mlmodel"));
357+
}
331358
}
Binary file not shown.

0 commit comments

Comments
 (0)