public void ValidateOpenIdConnectConfigurationTests(ConfigurationManagerTheoryData <OpenIdConnectConfiguration> theoryData) { TestUtilities.WriteHeader($"{this}.ValidateOpenIdConnectConfigurationTests"); var context = new CompareContext(); try { //create a listener and enable it for logs var listener = TestUtils.SampleListener.CreateLoggerListener(EventLevel.Warning); var configurationManager = new ConfigurationManager <OpenIdConnectConfiguration>(theoryData.MetadataAddress, theoryData.ConfigurationRetreiver, theoryData.DocumentRetriever, theoryData.ConfigurationValidator); var configuration = configurationManager.GetConfigurationAsync().Result; if (!string.IsNullOrEmpty(theoryData.ExpectedErrorMessage) && !listener.TraceBuffer.Contains(theoryData.ExpectedErrorMessage)) { context.AddDiff($"Expected exception to contain: '{theoryData.ExpectedErrorMessage}'.{Environment.NewLine}Log is:{Environment.NewLine}'{listener.TraceBuffer}'"); } } catch (Exception ex) { theoryData.ExpectedException.ProcessException(ex, context); } TestUtilities.AssertFailIfErrors(context); }
public void ResetLastKnownGoodLifetime() { TestUtilities.WriteHeader($"{this}.ResetLastKnownGoodLifetime"); var context = new CompareContext(); var validConfig = new OpenIdConnectConfiguration() { TokenEndpoint = Default.Issuer + "oauth/token", Issuer = Default.Issuer }; var configurationManager = new MockConfigurationManager <OpenIdConnectConfiguration>(validConfig); // set and retrieve config in order to set the first access time configurationManager.LastKnownGoodConfiguration = validConfig; var lkg = configurationManager.LastKnownGoodConfiguration; var lkgConfigFirstUseField = typeof(BaseConfigurationManager).GetField("_lastKnownGoodConfigFirstUse", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); var lkgConfigFirstUse1 = lkgConfigFirstUseField.GetValue(configurationManager as BaseConfigurationManager); Thread.Sleep(1); // set and retrieve config again to reset first access time configurationManager.LastKnownGoodConfiguration = validConfig; lkg = configurationManager.LastKnownGoodConfiguration; var lkgConfigFirstUse2 = lkgConfigFirstUseField.GetValue(configurationManager as BaseConfigurationManager); if (lkgConfigFirstUse1 == null) { context.AddDiff("Last known good first use time was not properly set for the first configuration."); } if (lkgConfigFirstUse2 == null) { context.AddDiff("Last known good first use time was not properly set for the second configuration."); } //LKG config first use was not reset when a new configuration was set if (lkgConfigFirstUse1.Equals(lkgConfigFirstUse2)) { context.AddDiff("Last known good first use time was not reset when a new LKG configuration was set."); } TestUtilities.AssertFailIfErrors(context); }
public void DeserializeOpenIdConnectConfigurationWithSigningKeys() { TestUtilities.WriteHeader($"{this}.DeserializeOpenIdConnectConfigurationWithSigningKeys"); var context = new CompareContext(); var config = OpenIdConnectConfiguration.Create( OpenIdConnectConfiguration.Write(new OpenIdConnectConfiguration(OpenIdConfigData.JsonWithSigningKeys))); // "SigningKeys" should be found in AdditionalData. if (!config.AdditionalData.ContainsKey("SigningKeys")) { context.AddDiff(@"!config.AdditionalData.ContainsKey(""SigningKeys"")"); } TestUtilities.AssertFailIfErrors(context); }