//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.SqlTools.ResourceProvider.Core;
using Microsoft.SqlTools.ServiceLayer.UnitTests.ResourceProvider.Fakes;
using NUnit.Framework;
namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ResourceProvider.Azure
{
///
/// Tests for AzureServerDiscoveryProvider to verify getting azure servers using azure resource manager
///
public class AzureSqlServerDiscoveryProviderTest
{
[Test]
public async Task GetShouldReturnServersSuccessfully()
{
string serverName = "server";
List serversForSubscription = new List()
{
Guid.NewGuid().ToString(),
serverName
};
Dictionary> subscriptionToDatabaseMap = new Dictionary>();
subscriptionToDatabaseMap.Add(Guid.NewGuid().ToString(), serversForSubscription);
subscriptionToDatabaseMap.Add(Guid.NewGuid().ToString(), new List()
{
Guid.NewGuid().ToString(),
Guid.NewGuid().ToString(),
});
AzureSqlServerDiscoveryProvider discoveryProvider =
FakeDataFactory.CreateAzureServerDiscoveryProvider(subscriptionToDatabaseMap);
ServiceResponse response = await discoveryProvider.GetServerInstancesAsync();
IEnumerable servers = response.Data;
Assert.NotNull(servers);
Assert.True(servers.Any(x => x.Name == serverName));
Assert.True(servers.Count() == 4);
}
[Test]
public async Task GetShouldReturnEmptyGivenNoSubscriptionFound()
{
Dictionary> subscriptionToDatabaseMap = new Dictionary>();
AzureSqlServerDiscoveryProvider discoveryProvider =
FakeDataFactory.CreateAzureServerDiscoveryProvider(subscriptionToDatabaseMap);
ServiceResponse response = await discoveryProvider.GetServerInstancesAsync();
IEnumerable servers = response.Data;
Assert.NotNull(servers);
Assert.False(servers.Any());
}
}
}