/// <summary> /// Setup the RTable Env in order to run unit tests. /// </summary> /// <param name="tableName">Name of the RTable. If string.Empty or null, then use this.rtableTestConfiguration.RTableInformation.RTableName</param> /// <param name="useHttps">When using HttpMangler, set this to false</param> /// <param name="viewIdString">_rtable_ViewId used in the RTable config blob. Set to string.Empty or null to use the _rtable_ViewId value in the xml config</param> /// <param name="actualStorageAccountsToBeUsed">Specify how/which Storage accounts in the config.xml will be used to construct the RTable. Set to null to use all accounts in xml. E.g., {0,1}</param> protected void SetupRTableEnv( string tableName = "", bool useHttps = true, string viewIdString = "", List <int> actualStorageAccountsToBeUsed = null, bool convertXStoreTableMode = false, int numberOfBlobs = 0) { int numberOfStorageAccounts = this.rtableTestConfiguration.StorageInformation.AccountNames.Count(); // If user does not specify which storage accounts to construct the RTable, then use all the storage accounts in the xml. this.actualStorageAccountsUsed = actualStorageAccountsToBeUsed; if (this.actualStorageAccountsUsed == null || this.actualStorageAccountsUsed.Count == 0) { this.actualStorageAccountsUsed = new List <int>(); for (int i = 0; i < numberOfStorageAccounts; i++) { this.actualStorageAccountsUsed.Add(i); } } this.UpdateConfigurationConstants(); // Upload RTable configuration to blob int viewId = this.rtableTestConfiguration.RTableInformation.ViewId; if (!string.IsNullOrEmpty(viewIdString)) { viewId = int.Parse(viewIdString); } numberOfBlobs = numberOfBlobs == 0 ? this.rtableTestConfiguration.StorageInformation.AccountKeys.Count() : numberOfBlobs; if (string.IsNullOrEmpty(tableName)) { tableName = this.rtableTestConfiguration.RTableInformation.RTableName; } this.InitConnectionStringMap(useHttps); InitialSetup(tableName, useHttps, viewId, convertXStoreTableMode, numberOfBlobs); this.repTable = new ReplicatedTable(tableName, this.configurationService); this.repTable.CreateIfNotExists(); this.rtableWrapper = RTableWrapperForSampleRTableEntity.GetRTableWrapper(this.repTable); this.cloudTableClients = new List <CloudTableClient>(); this.cloudTables = new List <CloudTable>(); for (int i = 0; i < this.actualStorageAccountsUsed.Count; i++) { CloudTableClient cloudBloblClient = repTable.GetReplicaTableClient(i); this.cloudTableClients.Add(cloudBloblClient); this.cloudTables.Add(cloudBloblClient.GetTableReference(repTable.TableName)); } }