public override void TestInitialize() { base.TestInitialize(); _networkMetadataProvider = Substitute.For <INetworkMetadataProvider>(); _knownMetadataProvider = Substitute.For <IKnownMetadataProvider>(); _networkCacheMetadataProvider = Substitute.For <INetworkCacheMetadataProvider>(); _userMetadataProvider = Substitute.For <IUserMetadataProvider>(); _expectedResult = new InstanceDiscoveryMetadataEntry() { Aliases = new[] { "some_env.com", "some_env2.com" }, PreferredCache = "env", PreferredNetwork = "env" }; _harness = base.CreateTestHarness(); _testRequestContext = new RequestContext(_harness.ServiceBundle, Guid.NewGuid()); _discoveryManager = new InstanceDiscoveryManager( _harness.HttpManager, false, null, null, _knownMetadataProvider, _networkCacheMetadataProvider, _networkMetadataProvider); }
public /* public for test */ InstanceDiscoveryManager( IHttpManager httpManager, IMatsTelemetryManager telemetryManager, bool shouldClearCaches, IUserMetadataProvider userMetadataProvider = null, Uri userProvidedInstanceDiscoveryUri = null, IKnownMetadataProvider knownMetadataProvider = null, INetworkCacheMetadataProvider networkCacheMetadataProvider = null, INetworkMetadataProvider networkMetadataProvider = null) { _httpManager = httpManager ?? throw new ArgumentNullException(nameof(httpManager)); _telemetryManager = telemetryManager ?? throw new ArgumentNullException(nameof(telemetryManager)); _userMetadataProvider = userMetadataProvider; _knownMetadataProvider = knownMetadataProvider ?? new KnownMetadataProvider(); _networkCacheMetadataProvider = networkCacheMetadataProvider ?? new NetworkCacheMetadataProvider(); _networkMetadataProvider = networkMetadataProvider ?? new NetworkMetadataProvider( _httpManager, _telemetryManager, _networkCacheMetadataProvider, userProvidedInstanceDiscoveryUri); if (shouldClearCaches) { _networkCacheMetadataProvider.Clear(); } }
public RegionDiscoveryProvider(IHttpManager httpManager, INetworkCacheMetadataProvider networkCacheMetadataProvider = null) { _httpManager = httpManager; _ImdsUri = new Uri("http://169.254.169.254/metadata/instance/compute/api-version=2019-06-01"); Headers = new Dictionary <string, string>(); Headers.Add("Metadata", "true"); _networkCacheMetadataProvider = networkCacheMetadataProvider ?? new NetworkCacheMetadataProvider(); }
public RegionDiscoveryProvider(IHttpManager httpManager, INetworkCacheMetadataProvider networkCacheMetadataProvider = null) { _httpManager = httpManager; Headers = new Dictionary <string, string>(); Headers.Add("Metadata", "true"); _networkCacheMetadataProvider = networkCacheMetadataProvider ?? new NetworkCacheMetadataProvider(); }
public NetworkMetadataProvider( IHttpManager httpManager, ITelemetryManager telemetryManager, INetworkCacheMetadataProvider networkCacheMetadataProvider) { _httpManager = httpManager; _telemetryManager = telemetryManager; _networkCacheMetadataProvider = networkCacheMetadataProvider; }
private readonly Uri _userProvidedInstanceDiscoveryUri; // can be null public NetworkMetadataProvider( IHttpManager httpManager, INetworkCacheMetadataProvider networkCacheMetadataProvider, Uri userProvidedInstanceDiscoveryUri = null) { _httpManager = httpManager ?? throw new ArgumentNullException(nameof(httpManager)); _networkCacheMetadataProvider = networkCacheMetadataProvider ?? throw new ArgumentNullException(nameof(networkCacheMetadataProvider)); _userProvidedInstanceDiscoveryUri = userProvidedInstanceDiscoveryUri; // can be null }
public RegionDiscoveryProvider( IHttpManager httpManager, INetworkCacheMetadataProvider networkCacheMetadataProvider = null, int imdsCallTimeout = 2000) { _httpManager = httpManager; _networkCacheMetadataProvider = networkCacheMetadataProvider ?? new NetworkCacheMetadataProvider(); _imdsCallTimeoutMs = imdsCallTimeout; }
public RegionDiscoveryProvider(IHttpManager httpManager, INetworkCacheMetadataProvider networkCacheMetadataProvider = null) { _httpManager = httpManager; // For information of the current api-version refer: https://docs.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service#versioning _ImdsUri = new Uri("http://169.254.169.254/metadata/instance/compute/api-version=2020-06-01"); Headers = new Dictionary <string, string>(); Headers.Add("Metadata", "true"); _networkCacheMetadataProvider = networkCacheMetadataProvider ?? new NetworkCacheMetadataProvider(); }
public RegionDiscoveryProvider( IHttpManager httpManager, INetworkCacheMetadataProvider networkCacheMetadataProvider = null, int imdsCallTimeout = 2000, /* for tests only */ bool shouldClearCaches = false) { _httpManager = httpManager; _networkCacheMetadataProvider = networkCacheMetadataProvider ?? new NetworkCacheMetadataProvider(); _imdsCallTimeoutMs = imdsCallTimeout; if (shouldClearCaches) { Clear(); } }
public async Task NetworkProviderFailures_AreIgnored_Async() { // Arrange _networkCacheMetadataProvider = new NetworkCacheMetadataProvider(); _knownMetadataProvider.GetMetadata("some_env.com", Enumerable.Empty <string>(), Arg.Any <ICoreLogger>()).Returns(_expectedResult); // network fails with something other than invalid_instance exception _networkMetadataProvider .When(x => x.GetMetadataAsync(Arg.Any <Uri>(), _testRequestContext)) .Do(x => throw new MsalServiceException("endpoint_busy", "some exception message")); // Act var actualResult = await _discoveryManager.GetMetadataEntryAsync( AuthorityInfo.FromAuthorityUri("https://some_env.com/tid", true), _testRequestContext) .ConfigureAwait(false); // Assert Assert.AreSame(_expectedResult, actualResult, "The known metadata provider should be queried second"); _knownMetadataProvider.Received(1).GetMetadata("some_env.com", Enumerable.Empty <string>(), Arg.Any <ICoreLogger>()); }
public async Task NetworkProviderFailures_WithNoKnownMetadata_ContinuesWithAuthority_Async() { // Arrange _networkCacheMetadataProvider = new NetworkCacheMetadataProvider(); // no known metadata _knownMetadataProvider.GetMetadata(null, null, Arg.Any <ICoreLogger>()).ReturnsForAnyArgs((InstanceDiscoveryMetadataEntry)null); // network fails with something other than invalid_instance exception _networkMetadataProvider .When(x => x.GetMetadataAsync(Arg.Any <Uri>(), _testRequestContext)) .Do(x => throw new MsalServiceException("endpoint_busy", "some exception message")); // Act var actualResult = await _discoveryManager.GetMetadataEntryAsync( AuthorityInfo.FromAuthorityUri("https://some_env.com/tid", true), _testRequestContext) .ConfigureAwait(false); // Assert _knownMetadataProvider.Received(1).GetMetadata("some_env.com", Enumerable.Empty <string>(), Arg.Any <ICoreLogger>()); ValidateSingleEntryMetadata(new Uri("https://some_env.com/tid"), actualResult); }
public async Task AuthorityValidationFailure_IsRethrown_Async() { // Arrange var validationException = new MsalServiceException(MsalError.InvalidInstance, "authority validation failed"); _networkCacheMetadataProvider = new NetworkCacheMetadataProvider(); // network fails with invalid_instance exception _networkMetadataProvider .When(x => x.GetMetadataAsync(Arg.Any <Uri>(), _testRequestContext)) .Do(x => throw validationException); // Act var actualException = await AssertException.TaskThrowsAsync <MsalServiceException>(() => _discoveryManager.GetMetadataEntryAsync( AuthorityInfo.FromAuthorityUri("https://some_env.com/tid", true), _testRequestContext)) .ConfigureAwait(false); // Assert Assert.AreSame(validationException, actualException); _knownMetadataProvider.DidNotReceiveWithAnyArgs(); }
public RegionDiscoveryProvider(IHttpManager httpManager, INetworkCacheMetadataProvider networkCacheMetadataProvider = null) { _httpManager = httpManager; _networkCacheMetadataProvider = networkCacheMetadataProvider ?? new NetworkCacheMetadataProvider(); }