use of com.ibm.watson.assistant.v1.model.CreateValue in project java-sdk by watson-developer-cloud.
the class AssistantTest method testUpdateEntityWOptions.
// Test the updateEntity operation with a valid options model parameter
@Test
public void testUpdateEntityWOptions() throws Throwable {
// Register a mock response
String mockResponseBody = "{\"entity\": \"entity\", \"description\": \"description\", \"metadata\": {\"mapKey\": \"anyValue\"}, \"fuzzy_match\": true, \"created\": \"2019-01-01T12:00:00.000Z\", \"updated\": \"2019-01-01T12:00:00.000Z\", \"values\": [{\"value\": \"value\", \"metadata\": {\"mapKey\": \"anyValue\"}, \"type\": \"synonyms\", \"synonyms\": [\"synonym\"], \"patterns\": [\"pattern\"], \"created\": \"2019-01-01T12:00:00.000Z\", \"updated\": \"2019-01-01T12:00:00.000Z\"}]}";
String updateEntityPath = "/v1/workspaces/testString/entities/testString";
server.enqueue(new MockResponse().setHeader("Content-type", "application/json").setResponseCode(200).setBody(mockResponseBody));
// Construct an instance of the CreateValue model
CreateValue createValueModel = new CreateValue.Builder().value("testString").metadata(new java.util.HashMap<String, Object>() {
{
put("foo", "testString");
}
}).type("synonyms").synonyms(new java.util.ArrayList<String>(java.util.Arrays.asList("testString"))).patterns(new java.util.ArrayList<String>(java.util.Arrays.asList("testString"))).build();
// Construct an instance of the UpdateEntityOptions model
UpdateEntityOptions updateEntityOptionsModel = new UpdateEntityOptions.Builder().workspaceId("testString").entity("testString").newEntity("testString").newDescription("testString").newMetadata(new java.util.HashMap<String, Object>() {
{
put("foo", "testString");
}
}).newFuzzyMatch(true).newValues(new java.util.ArrayList<CreateValue>(java.util.Arrays.asList(createValueModel))).append(false).includeAudit(false).build();
// Invoke updateEntity() with a valid options model and verify the result
Response<Entity> response = assistantService.updateEntity(updateEntityOptionsModel).execute();
assertNotNull(response);
Entity responseObj = response.getResult();
assertNotNull(responseObj);
// Verify the contents of the request sent to the mock server
RecordedRequest request = server.takeRequest();
assertNotNull(request);
assertEquals(request.getMethod(), "POST");
// Verify request path
String parsedPath = TestUtilities.parseReqPath(request);
assertEquals(parsedPath, updateEntityPath);
// Verify query params
Map<String, String> query = TestUtilities.parseQueryString(request);
assertNotNull(query);
assertEquals(query.get("version"), "testString");
assertEquals(Boolean.valueOf(query.get("append")), Boolean.valueOf(false));
assertEquals(Boolean.valueOf(query.get("include_audit")), Boolean.valueOf(false));
}
use of com.ibm.watson.assistant.v1.model.CreateValue in project java-sdk by watson-developer-cloud.
the class Assistant method createValue.
/**
* Create entity value.
*
* <p>Create a new value for an entity.
*
* <p>If you want to create multiple entity values with a single API call, consider using the
* **[Update entity](#update-entity)** method instead.
*
* @param createValueOptions the {@link CreateValueOptions} containing the options for the call
* @return a {@link ServiceCall} with a result of type {@link Value}
*/
public ServiceCall<Value> createValue(CreateValueOptions createValueOptions) {
com.ibm.cloud.sdk.core.util.Validator.notNull(createValueOptions, "createValueOptions cannot be null");
Map<String, String> pathParamsMap = new HashMap<String, String>();
pathParamsMap.put("workspace_id", createValueOptions.workspaceId());
pathParamsMap.put("entity", createValueOptions.entity());
RequestBuilder builder = RequestBuilder.post(RequestBuilder.resolveRequestUrl(getServiceUrl(), "/v1/workspaces/{workspace_id}/entities/{entity}/values", pathParamsMap));
Map<String, String> sdkHeaders = SdkCommon.getSdkHeaders("conversation", "v1", "createValue");
for (Entry<String, String> header : sdkHeaders.entrySet()) {
builder.header(header.getKey(), header.getValue());
}
builder.header("Accept", "application/json");
builder.query("version", String.valueOf(this.version));
if (createValueOptions.includeAudit() != null) {
builder.query("include_audit", String.valueOf(createValueOptions.includeAudit()));
}
final JsonObject contentJson = new JsonObject();
contentJson.addProperty("value", createValueOptions.value());
if (createValueOptions.metadata() != null) {
contentJson.add("metadata", com.ibm.cloud.sdk.core.util.GsonSingleton.getGson().toJsonTree(createValueOptions.metadata()));
}
if (createValueOptions.type() != null) {
contentJson.addProperty("type", createValueOptions.type());
}
if (createValueOptions.synonyms() != null) {
contentJson.add("synonyms", com.ibm.cloud.sdk.core.util.GsonSingleton.getGson().toJsonTree(createValueOptions.synonyms()));
}
if (createValueOptions.patterns() != null) {
contentJson.add("patterns", com.ibm.cloud.sdk.core.util.GsonSingleton.getGson().toJsonTree(createValueOptions.patterns()));
}
builder.bodyJson(contentJson);
ResponseConverter<Value> responseConverter = ResponseConverterUtils.getValue(new com.google.gson.reflect.TypeToken<Value>() {
}.getType());
return createServiceCall(builder.build(), responseConverter);
}
use of com.ibm.watson.assistant.v1.model.CreateValue in project java-sdk by watson-developer-cloud.
the class EntitiesIT method testGetEntity.
/**
* Test getEntity.
*/
@Test
public void testGetEntity() {
// gotta be unique
String entity = "Hello" + UUID.randomUUID().toString();
String entityDescription = "Description of " + entity;
String entityValue = "Value of " + entity;
List<CreateValue> entityValues = new ArrayList<CreateValue>();
entityValues.add(new CreateValue.Builder().value(entityValue).build());
CreateEntityOptions.Builder optionsBuilder = new CreateEntityOptions.Builder();
optionsBuilder.workspaceId(workspaceId);
optionsBuilder.entity(entity);
optionsBuilder.description(entityDescription);
optionsBuilder.values(entityValues);
service.createEntity(optionsBuilder.build()).execute().getResult();
Date start = new Date();
try {
GetEntityOptions getOptions = new GetEntityOptions.Builder(workspaceId, entity).export(true).includeAudit(true).build();
Entity response = service.getEntity(getOptions).execute().getResult();
assertNotNull(response);
assertNotNull(response.getEntity());
assertEquals(response.getEntity(), entity);
assertNotNull(response.getDescription());
assertEquals(response.getDescription(), entityDescription);
assertNotNull(response.getValues());
assertNotNull(response.getCreated());
assertNotNull(response.getUpdated());
Date now = new Date();
assertTrue(fuzzyBefore(response.getCreated(), now));
assertTrue(fuzzyAfter(response.getCreated(), start));
assertTrue(fuzzyBefore(response.getUpdated(), now));
assertTrue(fuzzyAfter(response.getUpdated(), start));
List<Value> values = response.getValues();
assertTrue(values.size() == 1);
assertEquals(values.get(0).value(), entityValue);
assertTrue(fuzzyBefore(values.get(0).created(), now));
assertTrue(fuzzyAfter(values.get(0).created(), start));
assertTrue(fuzzyBefore(values.get(0).updated(), now));
assertTrue(fuzzyAfter(values.get(0).updated(), start));
} catch (Exception ex) {
fail(ex.getMessage());
} finally {
// Clean up
DeleteEntityOptions deleteOptions = new DeleteEntityOptions.Builder(workspaceId, entity).build();
service.deleteEntity(deleteOptions).execute().getResult();
}
}
use of com.ibm.watson.assistant.v1.model.CreateValue in project java-sdk by watson-developer-cloud.
the class ValuesIT method testCreateValue.
/**
* Test createValue.
*/
@Test
public void testCreateValue() {
String entity = "beverage";
String entityValue = "coffee" + UUID.randomUUID().toString();
// metadata
Map<String, Object> valueMetadata = new HashMap<String, Object>();
String metadataValue = "value for " + entityValue;
valueMetadata.put("key", metadataValue);
try {
CreateEntityOptions createOptions = new CreateEntityOptions.Builder(workspaceId, entity).build();
service.createEntity(createOptions).execute().getResult();
} catch (Exception ex) {
// Exception is okay if is for Unique Violation
assertTrue(ex.getLocalizedMessage().startsWith("Unique Violation"));
}
CreateValueOptions createOptions = new CreateValueOptions.Builder().workspaceId(workspaceId).entity(entity).value(entityValue).metadata(valueMetadata).build();
Value response = service.createValue(createOptions).execute().getResult();
try {
assertNotNull(response);
assertNotNull(response.value());
assertEquals(response.value(), entityValue);
assertNotNull(response.metadata());
// metadata
assertNotNull(response.metadata());
assertNotNull(response.metadata().get("key"));
assertEquals(response.metadata().get("key"), metadataValue);
} catch (Exception ex) {
fail(ex.getMessage());
} finally {
// Clean up
DeleteValueOptions deleteOptions = new DeleteValueOptions.Builder(workspaceId, entity, entityValue).build();
service.deleteValue(deleteOptions).execute().getResult();
}
}
use of com.ibm.watson.assistant.v1.model.CreateValue in project java-sdk by watson-developer-cloud.
the class AssistantServiceIT method testCreateWorkspace.
/**
* Test createWorkspace.
*/
@Test
public void testCreateWorkspace() {
// gotta be unique
String workspaceName = "API Test " + UUID.randomUUID().toString();
String workspaceDescription = "Description of " + workspaceName;
String workspaceLanguage = "en";
// metadata
Map<String, Object> workspaceMetadata = new HashMap<String, Object>();
String metadataValue = "value for " + workspaceName;
workspaceMetadata.put("key", metadataValue);
// intents
List<CreateIntent> workspaceIntents = new ArrayList<CreateIntent>();
// gotta be unique
String intentName = "Hello" + UUID.randomUUID().toString();
String intentDescription = "Description of " + intentName;
String intentExample = "Example of " + intentName;
List<CreateExample> intentExamples = new ArrayList<CreateExample>();
intentExamples.add(new CreateExample.Builder().text(intentExample).build());
workspaceIntents.add(new CreateIntent.Builder().intent(intentName).description(intentDescription).examples(intentExamples).build());
// entities
List<CreateEntity> workspaceEntities = new ArrayList<CreateEntity>();
// gotta be unique
String entityName = "Hello" + UUID.randomUUID().toString();
String entityDescription = "Description of " + entityName;
String entitySource = "Source for " + entityName;
String entityValue = "Value of " + entityName;
String entityValueSynonym = "Synonym for Value of " + entityName;
List<CreateValue> entityValues = new ArrayList<CreateValue>();
entityValues.add(new CreateValue.Builder().value(entityValue).addSynonym(entityValueSynonym).build());
workspaceEntities.add(new CreateEntity.Builder().entity(entityName).description(entityDescription).values(entityValues).build());
// counterexamples
List<CreateCounterexample> workspaceCounterExamples = new ArrayList<CreateCounterexample>();
String counterExampleText = "Counterexample for " + workspaceName;
workspaceCounterExamples.add(new CreateCounterexample.Builder().text(counterExampleText).build());
CreateWorkspaceOptions createOptions = new CreateWorkspaceOptions.Builder().name(workspaceName).description(workspaceDescription).language(workspaceLanguage).metadata(workspaceMetadata).intents(workspaceIntents).entities(workspaceEntities).counterexamples(workspaceCounterExamples).build();
String workspaceId = null;
try {
Workspace response = service.createWorkspace(createOptions).execute();
assertNotNull(response);
assertNotNull(response.getWorkspaceId());
workspaceId = response.getWorkspaceId();
assertNotNull(response.getName());
assertEquals(response.getName(), workspaceName);
assertNotNull(response.getDescription());
assertEquals(response.getDescription(), workspaceDescription);
assertNotNull(response.getLanguage());
assertEquals(response.getLanguage(), workspaceLanguage);
// metadata
assertNotNull(response.getMetadata());
assertNotNull(response.getMetadata().get("key"));
assertEquals(response.getMetadata().get("key"), metadataValue);
GetWorkspaceOptions getOptions = new GetWorkspaceOptions.Builder(workspaceId).export(true).build();
WorkspaceExport exResponse = service.getWorkspace(getOptions).execute();
assertNotNull(exResponse);
// intents
assertNotNull(exResponse.getIntents());
assertTrue(exResponse.getIntents().size() == 1);
assertNotNull(exResponse.getIntents().get(0).getIntentName());
assertEquals(exResponse.getIntents().get(0).getIntentName(), intentName);
assertNotNull(exResponse.getIntents().get(0).getDescription());
assertEquals(exResponse.getIntents().get(0).getDescription(), intentDescription);
assertNotNull(exResponse.getIntents().get(0).getExamples());
assertTrue(exResponse.getIntents().get(0).getExamples().size() == 1);
assertNotNull(exResponse.getIntents().get(0).getExamples().get(0));
assertNotNull(exResponse.getIntents().get(0).getExamples().get(0).getExampleText());
assertEquals(exResponse.getIntents().get(0).getExamples().get(0).getExampleText(), intentExample);
// entities
assertNotNull(exResponse.getEntities());
assertTrue(exResponse.getEntities().size() == 1);
assertNotNull(exResponse.getEntities().get(0).getEntityName());
assertEquals(exResponse.getEntities().get(0).getEntityName(), entityName);
assertNotNull(exResponse.getEntities().get(0).getDescription());
assertEquals(exResponse.getEntities().get(0).getDescription(), entityDescription);
assertNotNull(exResponse.getEntities().get(0).getValues());
assertTrue(exResponse.getEntities().get(0).getValues().size() == 1);
assertNotNull(exResponse.getEntities().get(0).getValues().get(0).getValueText());
assertEquals(exResponse.getEntities().get(0).getValues().get(0).getValueText(), entityValue);
assertNotNull(exResponse.getEntities().get(0).getValues().get(0).getSynonyms());
assertTrue(exResponse.getEntities().get(0).getValues().get(0).getSynonyms().size() == 1);
assertEquals(exResponse.getEntities().get(0).getValues().get(0).getSynonyms().get(0), entityValueSynonym);
// counterexamples
assertNotNull(exResponse.getCounterexamples());
assertTrue(exResponse.getCounterexamples().size() == 1);
assertNotNull(exResponse.getCounterexamples().get(0).getText());
assertEquals(exResponse.getCounterexamples().get(0).getText(), counterExampleText);
} catch (Exception ex) {
fail(ex.getMessage());
} finally {
// Clean up
if (workspaceId != null) {
DeleteWorkspaceOptions deleteOptions = new DeleteWorkspaceOptions.Builder(workspaceId).build();
service.deleteWorkspace(deleteOptions).execute();
}
}
}
Aggregations