Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
update cassandra and operations test
  • Loading branch information
nisha-bhatia authored and nisha-bhatia committed Sep 5, 2020
commit 61574323ecf73017c175eaf43be6eff232d4eb17
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

using System;
using System.Collections.Generic;
using Azure.Core.TestFramework;
using Azure.Management.Resources;
using Azure.ResourceManager.TestFramework;
Expand All @@ -17,24 +15,6 @@ public abstract class CosmosDBManagementClientBase : ManagementRecordedTestBase<
public ResourceGroupsOperations ResourceGroupsOperations { get; set; }
public CosmosDBManagementClient CosmosDBManagementClient { get; set; }

// Vars for Cassandra tests - using an existing DB account, since Account provisioning takes 10-15 minutes
public string location = "West US";
public string resourceGroupName;
public string databaseAccountName = "db12345";
public string keyspaceName = "keyspaceName2510";
public string keyspaceName2 = "keyspaceName22510";
public string tableName = "tableName2510";
public string cassandraThroughputType = "Microsoft.DocumentDB/databaseAccounts/cassandraKeyspaces/throughputSettings";
public int sampleThroughput = 700;
public Dictionary<string, string> additionalProperties = new Dictionary<string, string>
{
{"foo","bar"}
};
public Dictionary<string, string> tags = new Dictionary<string, string>
{
{"key3","value3"},
{"key4","value4"}
};
protected CosmosDBManagementClientBase(bool isAsync)
: base(isAsync)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ namespace Azure.ResourceManager.CosmosDB.Tests
{
public static class CosmosDBTestUtilities
{
internal const string ResourceGroupPrefix = "DefaultCosmosDB";
internal const string ResourceGroupPrefix = "Default-CosmosDB-";
internal const string Location = "West US";
public static async Task TryRegisterResourceGroupAsync(ResourceGroupsOperations resourceGroupsOperations, string location, string resourceGroupName)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using Azure.Core.TestFramework;
using Azure.ResourceManager.CosmosDB.Models;
using NUnit.Framework;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

Expand All @@ -12,6 +13,14 @@ namespace Azure.ResourceManager.CosmosDB.Tests
[TestFixture]
public class CassandraResourcesOperationsTests : CosmosDBManagementClientBase
{
protected string resourceGroupName;
protected string databaseAccountName = "db" + new Random().Next(10000);
protected string keyspaceName = "keyspaceName2510";
protected string keyspaceName2 = "keyspaceName22510";
protected string tableName = "tableName2510";
protected string cassandraThroughputType = "Microsoft.DocumentDB/databaseAccounts/cassandraKeyspaces/throughputSettings";
protected int sampleThroughput = 700;

public CassandraResourcesOperationsTests()
: base(true)
{
Expand All @@ -37,39 +46,34 @@ public async Task CleanupResourceGroup()
[TestCase]
public async Task CassandraCRUDTestsAsync()
{
var cosmosDBClient = GetCosmosDBManagementClient();

var locations = new List<Location>();
Location loc = new Location();
loc.LocationName = "West US";
loc.LocationName = CosmosDBTestUtilities.Location;
loc.FailoverPriority = 0;
loc.IsZoneRedundant = false;
locations.Add(loc);

DatabaseAccountCreateUpdateParameters databaseAccountCreateUpdateParameters = new DatabaseAccountCreateUpdateParameters(locations);
databaseAccountCreateUpdateParameters.Location = "West US";
databaseAccountCreateUpdateParameters.Location = CosmosDBTestUtilities.Location;
databaseAccountCreateUpdateParameters.Capabilities.Add(new Capability("EnableCassandra"));
databaseAccountCreateUpdateParameters.ConsistencyPolicy = new ConsistencyPolicy(DefaultConsistencyLevel.Eventual);

await WaitForCompletionAsync(await cosmosDBClient.DatabaseAccounts.StartCreateOrUpdateAsync(resourceGroupName, databaseAccountName, databaseAccountCreateUpdateParameters));
await WaitForCompletionAsync(await CosmosDBManagementClient.DatabaseAccounts.StartCreateOrUpdateAsync(resourceGroupName, databaseAccountName, databaseAccountCreateUpdateParameters));

Task<Response> taskIsDatabaseNameExists = cosmosDBClient.DatabaseAccounts.CheckNameExistsAsync(databaseAccountName);
Task<Response> taskIsDatabaseNameExists = CosmosDBManagementClient.DatabaseAccounts.CheckNameExistsAsync(databaseAccountName);
Response isDatabaseNameExists = taskIsDatabaseNameExists.ConfigureAwait(false).GetAwaiter().GetResult();
if (isDatabaseNameExists.Status != 200)
{
return;
}
Assert.AreEqual(200, isDatabaseNameExists.Status);

CassandraKeyspaceCreateUpdateParameters cassandraKeyspaceCreateUpdateParameters = new CassandraKeyspaceCreateUpdateParameters(new CassandraKeyspaceResource(keyspaceName), new CreateUpdateOptions());

var cassandraKeyspaceResponse = await WaitForCompletionAsync (await cosmosDBClient.CassandraResources.StartCreateUpdateCassandraKeyspaceAsync(resourceGroupName, databaseAccountName, keyspaceName, cassandraKeyspaceCreateUpdateParameters));
var cassandraKeyspaceResponse = await WaitForCompletionAsync (await CosmosDBManagementClient.CassandraResources.StartCreateUpdateCassandraKeyspaceAsync(resourceGroupName, databaseAccountName, keyspaceName, cassandraKeyspaceCreateUpdateParameters));

CassandraKeyspaceGetResults cassandraKeyspaceGetResults = cassandraKeyspaceResponse.Value;

Assert.NotNull(cassandraKeyspaceGetResults);
Assert.AreEqual(keyspaceName, cassandraKeyspaceGetResults.Name);

var cassandraKeyspaceResponse1 = await WaitForCompletionAsync(await cosmosDBClient.CassandraResources.StartCreateUpdateCassandraKeyspaceAsync(resourceGroupName, databaseAccountName, keyspaceName, cassandraKeyspaceCreateUpdateParameters));
var cassandraKeyspaceResponse1 = await WaitForCompletionAsync(await CosmosDBManagementClient.CassandraResources.StartCreateUpdateCassandraKeyspaceAsync(resourceGroupName, databaseAccountName, keyspaceName, cassandraKeyspaceCreateUpdateParameters));

CassandraKeyspaceGetResults cassandraKeyspaceGetResults1 = cassandraKeyspaceResponse1.Value;
Assert.NotNull(cassandraKeyspaceGetResults1);
Expand All @@ -79,19 +83,18 @@ public async Task CassandraCRUDTestsAsync()

CassandraKeyspaceCreateUpdateParameters cassandraKeyspaceCreateUpdateParameters2 = new CassandraKeyspaceCreateUpdateParameters(new CassandraKeyspaceResource(keyspaceName2), new CreateUpdateOptions(sampleThroughput, default));

var cassandraKeyspaceResponse2 = await WaitForCompletionAsync(await cosmosDBClient.CassandraResources.StartCreateUpdateCassandraKeyspaceAsync(resourceGroupName, databaseAccountName, keyspaceName2, cassandraKeyspaceCreateUpdateParameters2));
var cassandraKeyspaceResponse2 = await WaitForCompletionAsync(await CosmosDBManagementClient.CassandraResources.StartCreateUpdateCassandraKeyspaceAsync(resourceGroupName, databaseAccountName, keyspaceName2, cassandraKeyspaceCreateUpdateParameters2));

CassandraKeyspaceGetResults cassandraKeyspaceGetResults2 = cassandraKeyspaceResponse2.Value;
Assert.NotNull(cassandraKeyspaceGetResults2);
Assert.AreEqual(keyspaceName2, cassandraKeyspaceGetResults2.Name);

var keyspacesResponse = cosmosDBClient.CassandraResources.ListCassandraKeyspacesAsync(resourceGroupName, databaseAccountName);
Task<List<CassandraKeyspaceGetResults>> taskCassandraKeyspaces = keyspacesResponse.ToEnumerableAsync();
List<CassandraKeyspaceGetResults> cassandraKeyspaces = taskCassandraKeyspaces.ConfigureAwait(false).GetAwaiter().GetResult();
var keyspacesResponseTask = CosmosDBManagementClient.CassandraResources.ListCassandraKeyspacesAsync(resourceGroupName, databaseAccountName).ToEnumerableAsync();
List<CassandraKeyspaceGetResults> cassandraKeyspaces = keyspacesResponseTask.ConfigureAwait(false).GetAwaiter().GetResult();

Assert.NotNull(cassandraKeyspaces);

var throughputResponse = cosmosDBClient.CassandraResources.GetCassandraKeyspaceThroughputAsync(resourceGroupName, databaseAccountName, keyspaceName2);
var throughputResponse = CosmosDBManagementClient.CassandraResources.GetCassandraKeyspaceThroughputAsync(resourceGroupName, databaseAccountName, keyspaceName2);
ThroughputSettingsGetResults throughputSettingsGetResults = throughputResponse.ConfigureAwait(false).GetAwaiter().GetResult();
Assert.NotNull(throughputSettingsGetResults);
Assert.NotNull(throughputSettingsGetResults.Name);
Expand All @@ -104,28 +107,19 @@ public async Task CassandraCRUDTestsAsync()
//var responseMigrate = taskResponseMigrate.ConfigureAwait(false).GetAwaiter().GetResult();
//Assert.AreEqual(responseMigrate.Value.Resource.MinimumThroughput, responseMigrate.Value.Resource.Throughput);

CassandraTableCreateUpdateParameters cassandraTableCreateUpdateParameters = new CassandraTableCreateUpdateParameters(new CassandraTableResource(tableName, default, new CassandraSchema(new List<Column> { new Column { Name = "columnA", Type = "int" }, new Column { Name = "columnB", Type = "ascii" } }, new List<CassandraPartitionKey> { new CassandraPartitionKey { Name = "columnA" } }, new List<ClusterKey> { new ClusterKey { Name = "columnB", OrderBy = "Asc" } }), default), new CreateUpdateOptions());
CassandraSchema cassandraSchema = new CassandraSchema(new List<Column> { new Column { Name = "columnA", Type = "int" }, new Column { Name = "columnB", Type = "ascii" } }, new List<CassandraPartitionKey> { new CassandraPartitionKey { Name = "columnA" } }, new List<ClusterKey> { new ClusterKey { Name = "columnB", OrderBy = "Asc" } });
CassandraTableResource cassandraTableResource = new CassandraTableResource(tableName, default, cassandraSchema, default);
CassandraTableCreateUpdateParameters cassandraTableCreateUpdateParameters = new CassandraTableCreateUpdateParameters(cassandraTableResource, new CreateUpdateOptions());

Response<CassandraTableGetResults> cassandraResponse = await WaitForCompletionAsync(await cosmosDBClient.CassandraResources.StartCreateUpdateCassandraTableAsync(resourceGroupName, databaseAccountName, keyspaceName, tableName, cassandraTableCreateUpdateParameters));
Response<CassandraTableGetResults> cassandraResponse = await WaitForCompletionAsync(await CosmosDBManagementClient.CassandraResources.StartCreateUpdateCassandraTableAsync(resourceGroupName, databaseAccountName, keyspaceName, tableName, cassandraTableCreateUpdateParameters));
CassandraTableGetResults cassandraTableGetResults = cassandraResponse.Value;
Assert.NotNull(cassandraTableGetResults);

VerifyCassandraTableCreation(cassandraTableGetResults, cassandraTableCreateUpdateParameters);

AsyncPageable<CassandraTableGetResults> cassandraPageableResults = cosmosDBClient.CassandraResources.ListCassandraTablesAsync(resourceGroupName, databaseAccountName, keyspaceName);
Task<List<CassandraTableGetResults>> taskCassandraTables = cassandraPageableResults.ToEnumerableAsync();
List<CassandraTableGetResults> cassandraTables = taskCassandraTables.ConfigureAwait(false).GetAwaiter().GetResult();
var cassandraPageableResultsTask = CosmosDBManagementClient.CassandraResources.ListCassandraTablesAsync(resourceGroupName, databaseAccountName, keyspaceName).ToEnumerableAsync();
List<CassandraTableGetResults> cassandraTables = cassandraPageableResultsTask.ConfigureAwait(false).GetAwaiter().GetResult();
Assert.NotNull(cassandraTables);

foreach (CassandraTableGetResults cassandraTable in cassandraTables)
{
await cosmosDBClient.CassandraResources.StartDeleteCassandraTableAsync(resourceGroupName, databaseAccountName, keyspaceName, cassandraTable.Name);
}

foreach (CassandraKeyspaceGetResults cassandraKeyspace in cassandraKeyspaces)
{
await cosmosDBClient.CassandraResources.StartDeleteCassandraKeyspaceAsync(resourceGroupName, databaseAccountName, cassandraKeyspace.Name);
}
}

private void VerifyCassandraTableCreation(CassandraTableGetResults cassandraTableGetResults, CassandraTableCreateUpdateParameters cassandraTableCreateUpdateParameters)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,7 @@ public async Task CleanupResourceGroup()
[TestCase]
public async Task ListOperationsTest()
{
var cosmosDBClient = GetCosmosDBManagementClient();
var operations = cosmosDBClient.Operations.ListAsync();
var operations = CosmosDBManagementClient.Operations.ListAsync();
Assert.NotNull(operations);
Assert.IsNotEmpty(await operations.ToEnumerableAsync());
}
Expand Down
Loading