// // 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()); } } }