public override IEnumerator RunTest() { LogSystem.InstallDefaultReactors(); VcapCredentials vcapCredentials = new VcapCredentials(); fsData data = null; string result = null; string credentialsFilepath = "../sdk-credentials/credentials.json"; // Load credentials file if it exists. If it doesn't exist, don't run the tests. if (File.Exists(credentialsFilepath)) { result = File.ReadAllText(credentialsFilepath); } else { yield break; } // Add in a parent object because Unity does not like to deserialize root level collection types. result = Utility.AddTopLevelObjectToJson(result, "VCAP_SERVICES"); // Convert json to fsResult fsResult r = fsJsonParser.Parse(result, out data); if (!r.Succeeded) { throw new WatsonException(r.FormattedMessages); } // Convert fsResult to VcapCredentials object obj = vcapCredentials; r = _serializer.TryDeserialize(data, obj.GetType(), ref obj); if (!r.Succeeded) { throw new WatsonException(r.FormattedMessages); } // Set credentials from imported credntials Credential credential = vcapCredentials.GetCredentialByname("discovery-sdk")[0].Credentials; // Create credential and instantiate service TokenOptions tokenOptions = new TokenOptions() { IamApiKey = credential.IamApikey, }; // Create credential and instantiate service Credentials credentials = new Credentials(tokenOptions, credential.Url); // Wait for tokendata while (!credentials.HasIamTokenData()) { yield return(null); } _discovery = new Discovery(credentials); _discovery.VersionDate = _discoveryVersionDate; _filePathToIngest = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/Discovery/constitution.pdf"; _documentFilePath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/Discovery/constitution.pdf"; // Get Environments Log.Debug("TestDiscovery.RunTest()", "Attempting to get environments"); if (!_discovery.GetEnvironments(OnGetEnvironments, OnFail)) { Log.Debug("TestDiscovery.GetEnvironments()", "Failed to get environments"); } while (!_getEnvironmentsTested) { yield return(null); } // Wait for environment to be ready Runnable.Run(CheckEnvironmentState(0f)); while (!_isEnvironmentReady) { yield return(null); } // GetEnvironment Log.Debug("TestDiscovery.RunTest()", "Attempting to get environment"); if (!_discovery.GetEnvironment(OnGetEnvironment, OnFail, _environmentId)) { Log.Debug("TestDiscovery.GetEnvironment()", "Failed to get environment"); } while (!_getEnvironmentTested) { yield return(null); } // Get Configurations Log.Debug("TestDiscovery.RunTest()", "Attempting to get configurations"); if (!_discovery.GetConfigurations(OnGetConfigurations, OnFail, _environmentId)) { Log.Debug("TestDiscovery.GetConfigurations()", "Failed to get configurations"); } while (!_getConfigurationsTested) { yield return(null); } // Add Configuration Log.Debug("TestDiscovery.RunTest()", "Attempting to add configuration"); if (!_discovery.AddConfiguration(OnAddConfiguration, OnFail, _environmentId, _configurationJson.Replace("{guid}", System.Guid.NewGuid().ToString()))) { Log.Debug("TestDiscovery.AddConfiguration()", "Failed to add configuration"); } while (!_addConfigurationTested) { yield return(null); } // Get Configuration Log.Debug("TestDiscovery.RunTest()", "Attempting to get configuration"); if (!_discovery.GetConfiguration(OnGetConfiguration, OnFail, _environmentId, _createdConfigurationID)) { Log.Debug("TestDiscovery.GetConfiguration()", "Failed to get configuration"); } while (!_getConfigurationTested) { yield return(null); } // Preview Configuration Log.Debug("TestDiscovery.RunTest()", "Attempting to preview configuration"); if (!_discovery.PreviewConfiguration(OnPreviewConfiguration, OnFail, _environmentId, _createdConfigurationID, null, _filePathToIngest, _metadata)) { Log.Debug("TestDiscovery.PreviewConfiguration()", "Failed to preview configuration"); } while (!_previewConfigurationTested) { yield return(null); } // Get Collections Log.Debug("TestDiscovery.RunTest()", "Attempting to get collections"); if (!_discovery.GetCollections(OnGetCollections, OnFail, _environmentId)) { Log.Debug("TestDiscovery.GetCollections()", "Failed to get collections"); } while (!_getCollectionsTested) { yield return(null); } // Add Collection Log.Debug("TestDiscovery.RunTest()", "Attempting to add collection"); if (!_discovery.AddCollection(OnAddCollection, OnFail, _environmentId, _createdCollectionName + System.Guid.NewGuid().ToString(), _createdCollectionDescription, _createdConfigurationID, "en")) { Log.Debug("TestDiscovery.AddCollection()", "Failed to add collection"); } while (!_addCollectionTested) { yield return(null); } // Get Collection Log.Debug("TestDiscovery.RunTest()", "Attempting to get collection"); if (!_discovery.GetCollection(OnGetCollection, OnFail, _environmentId, _createdCollectionId)) { Log.Debug("TestDiscovery.GetCollection()", "Failed to get collection"); } while (!_getCollectionTested) { yield return(null); } if (!_discovery.GetFields(OnGetFields, OnFail, _environmentId, _createdCollectionId)) { Log.Debug("TestDiscovery.GetFields()", "Failed to get fields"); } while (!_getFieldsTested) { yield return(null); } // Add Document Log.Debug("TestDiscovery.RunTest()", "Attempting to add document"); if (!_discovery.AddDocument(OnAddDocument, OnFail, _environmentId, _createdCollectionId, _documentFilePath, _createdConfigurationID, null)) { Log.Debug("TestDiscovery.AddDocument()", "Failed to add document"); } while (!_addDocumentTested) { yield return(null); } // Get Document Log.Debug("TestDiscovery.RunTest()", "Attempting to get document"); if (!_discovery.GetDocument(OnGetDocument, OnFail, _environmentId, _createdCollectionId, _createdDocumentID)) { Log.Debug("TestDiscovery.GetDocument()", "Failed to get document"); } while (!_getDocumentTested) { yield return(null); } // Update Document Log.Debug("TestDiscovery.RunTest()", "Attempting to update document"); if (!_discovery.UpdateDocument(OnUpdateDocument, OnFail, _environmentId, _createdCollectionId, _createdDocumentID, _documentFilePath, _createdConfigurationID, null)) { Log.Debug("TestDiscovery.UpdateDocument()", "Failed to update document"); } while (!_updateDocumentTested) { yield return(null); } // Query Log.Debug("TestDiscovery.RunTest()", "Attempting to query"); if (!_discovery.Query(OnQuery, OnFail, _environmentId, _createdCollectionId, naturalLanguageQuery: _query)) { while (!_queryTested) { yield return(null); } } // List Credentials Log.Debug("TestDiscovery.RunTest()", "Attempting to list credentials"); _discovery.ListCredentials(OnListCredentials, OnFail, _environmentId); while (!_listCredentialsTested) { yield return(null); } // Create Credentials Log.Debug("TestDiscovery.RunTest()", "Attempting to create credentials"); SourceCredentials credentialsParameter = new SourceCredentials() { SourceType = SourceCredentials.SourceTypeEnum.box, CredentialDetails = new CredentialDetails() { CredentialType = CredentialDetails.CredentialTypeEnum.oauth2, EnterpriseId = "myEnterpriseId", ClientId = "myClientId", ClientSecret = "myClientSecret", PublicKeyId = "myPublicIdKey", Passphrase = "myPassphrase", PrivateKey = "myPrivateKey" } }; _discovery.CreateCredentials(OnCreateCredentials, OnFail, _environmentId, credentialsParameter); while (!_createCredentialsTested) { yield return(null); } // Get Credential Log.Debug("TestDiscovery.RunTest()", "Attempting to get credential"); _discovery.GetCredential(OnGetCredential, OnFail, _environmentId, _createdCredentialId); while (!_getCredentialTested) { yield return(null); } // Get metrics event rate Log.Debug("TestDiscovery.RunTest()", "Attempting to Get metrics event rate"); _discovery.GetMetricsEventRate(OnGetMetricsEventRate, OnFail); while (!_getMetricsEventRateTested) { yield return(null); } // Get metrics query Log.Debug("TestDiscovery.RunTest()", "Attempting to Get metrics query"); _discovery.GetMetricsQuery(OnGetMetricsQuery, OnFail); while (!_getMetricsQueryTested) { yield return(null); } // Get metrics query event Log.Debug("TestDiscovery.RunTest()", "Attempting to Get metrics query event"); _discovery.GetMetricsQueryEvent(OnGetMetricsQueryEvent, OnFail); while (!_getMetricsQueryEventTested) { yield return(null); } // Get metrics query no result Log.Debug("TestDiscovery.RunTest()", "Attempting to Get metrics query no result"); _discovery.GetMetricsQueryNoResults(OnGetMetricsQueryNoResult, OnFail); while (!_getMetricsQueryNoResultTested) { yield return(null); } // Get metrics query token event Log.Debug("TestDiscovery.RunTest()", "Attempting to Get metrics query token event"); _discovery.GetMetricsQueryTokenEvent(OnGetMetricsQueryTokenEvent, OnFail); while (!_getMetricsQueryTokenEventTested) { yield return(null); } // Query log Log.Debug("TestDiscovery.RunTest()", "Attempting to Query log"); _discovery.QueryLog(OnQueryLog, OnFail); while (!_queryLogTested) { yield return(null); } // Create event Log.Debug("TestDiscovery.RunTest()", "Attempting to create event"); CreateEventObject queryEvent = new CreateEventObject() { Type = CreateEventObject.TypeEnum.click, Data = new EventData() { EnvironmentId = _environmentId, SessionToken = _sessionToken, CollectionId = _createdCollectionId, DocumentId = _createdDocumentID } }; _discovery.CreateEvent(OnCreateEvent, OnFail, queryEvent); while (!_createEventTested) { yield return(null); } Log.Debug("TestDiscovery.RunTests()", "Attempting to list expansions"); _discovery.ListExpansions(OnListExpansions, OnFail, _environmentId, _createdCollectionId); while (!_listExpansionsTested) { yield return(null); } Log.Debug("TestDiscovery.RunTests()", "Attempting to create expansion"); Expansions expansions = new Expansions() { ExpansionsProperty = new List <Expansion>() { new Expansion() { ExpandedTerms = new List <string>() { "expanded-term" }, InputTerms = new List <string>() { "input-term" } } } }; _discovery.CreateExpansions(OnCreateExpansion, OnFail, _environmentId, _createdCollectionId, expansions); while (!_createExpansionTested) { yield return(null); } Log.Debug("TestDiscovery.RunTests()", "Attempting to delete expansion"); _discovery.DeleteExpansions(OnDeleteExpansion, OnFail, _environmentId, _createdCollectionId); while (!_deleteExpansionTested) { yield return(null); } Log.Debug("TestDiscovery.RunTest()", "Attempting to create jp collection"); _discovery.AddCollection(OnCreateJpCollection, OnFail, _environmentId, _createdCollectionName + System.Guid.NewGuid().ToString(), _createdCollectionDescription, _createdConfigurationID, "ja"); while (!_createJpCollectionTested) { yield return(null); } TokenDict tokenizationDictionary = new TokenDict() { TokenizationRules = new List <TokenDictRule>() { new TokenDictRule() { Text = "すしネコ", Tokens = new List <string>() { "すし", "ネコ" }, Readings = new List <string>() { "寿司", "ネコ" }, PartOfSpeech = "カスタム名詞" } } }; Log.Debug("TestDiscovery.RunTests()", "Attempting to create tokenization dict"); _discovery.CreateTokenizationDictionary(OnCreateTokenizationDictionary, OnCreateTokenizationDictionaryFail, _environmentId, _createdJpCollection, tokenizationDictionary); while (!_createTokenizationDictTested) { yield return(null); } if (!_getTokenizationDictStatusTested) { Log.Debug("TestDiscovery.RunTests()", "Attempting to get tokenization dict status"); _discovery.GetTokenizationDictionaryStatus(OnGetTokenizationDictonaryStatus, OnFail, _environmentId, _createdJpCollection); while (!_getTokenizationDictStatusTested) { yield return(null); } } if (!_deleteTokenizationDictTested) { Log.Debug("TestDiscovery.RunTests()", "Attempting to delete tokenization dict"); _discovery.DeleteTokenizationDictionary(OnDeleteTokenizationDictionary, OnFail, _environmentId, _createdJpCollection); while (!_deleteTokenizationDictTested) { yield return(null); } } Log.Debug("TestDiscovery.RunTest()", "Attempting to delete jp collection"); _discovery.DeleteCollection(OnDeleteJpCollection, OnFail, _environmentId, _createdJpCollection); while (!_deleteJpCollectionTested) { yield return(null); } // DeleteCredential Log.Debug("TestDiscovery.RunTest()", "Attempting to delete credential"); _discovery.DeleteCredentials(OnDeleteCredentials, OnFail, _environmentId, _createdCredentialId); while (!_deleteCredentialsTested) { yield return(null); } // Delete Document Log.Debug("TestDiscovery.RunTest()", "Attempting to delete document {0}", _createdDocumentID); if (!_discovery.DeleteDocument(OnDeleteDocument, OnFail, _environmentId, _createdCollectionId, _createdDocumentID)) { Log.Debug("TestDiscovery.DeleteDocument()", "Failed to delete document"); } while (!_deleteDocumentTested) { yield return(null); } _isEnvironmentReady = false; Runnable.Run(CheckEnvironmentState(_waitTime)); while (!_isEnvironmentReady) { yield return(null); } // Delete Collection Log.Debug("TestDiscovery.RunTest()", "Attempting to delete collection {0}", _createdCollectionId); if (!_discovery.DeleteCollection(OnDeleteCollection, OnFail, _environmentId, _createdCollectionId)) { Log.Debug("TestDiscovery.DeleteCollection()", "Failed to delete collection"); } while (!_deleteCollectionTested) { yield return(null); } _isEnvironmentReady = false; Runnable.Run(CheckEnvironmentState(_waitTime)); while (!_isEnvironmentReady) { yield return(null); } // Delete Configuration Log.Debug("TestDiscovery.RunTest()", "Attempting to delete configuration {0}", _createdConfigurationID); if (!_discovery.DeleteConfiguration(OnDeleteConfiguration, OnFail, _environmentId, _createdConfigurationID)) { Log.Debug("TestDiscovery.DeleteConfiguration()", "Failed to delete configuration"); } while (!_deleteConfigurationTested) { yield return(null); } // Delete User Data Log.Debug("TestDiscovery.RunTest()", "Attempting to delete user data."); _discovery.DeleteUserData(OnDeleteUserData, OnFail, "test-unity-user-id"); while (!_deleteUserDataTested) { yield return(null); } Log.Debug("TestDiscovery.RunTest()", "Discovery unit tests complete."); yield break; }