Skip to content

Commit

Permalink
Fix nullability of some members.
Browse files Browse the repository at this point in the history
Signed-off-by: André Silva <2493377+askpt@users.noreply.github.com>
  • Loading branch information
askpt committed Jul 5, 2024
1 parent 94e7ae6 commit f865f18
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 13 deletions.
9 changes: 4 additions & 5 deletions src/OpenFeature/Api.cs
Original file line number Diff line number Diff line change
Expand Up @@ -101,15 +101,15 @@ public FeatureProvider GetProvider(string clientName)
/// </para>
/// </summary>
/// <returns><see cref="ClientMetadata"/></returns>
public Metadata GetProviderMetadata() => this.GetProvider().GetMetadata();
public Metadata? GetProviderMetadata() => this.GetProvider().GetMetadata();

/// <summary>
/// Gets providers metadata assigned to the given clientName. If the clientName has no provider
/// assigned to it the default provider will be returned
/// </summary>
/// <param name="clientName">Name of client</param>
/// <returns>Metadata assigned to provider</returns>
public Metadata GetProviderMetadata(string clientName) => this.GetProvider(clientName).GetMetadata();
public Metadata? GetProviderMetadata(string clientName) => this.GetProvider(clientName).GetMetadata();

/// <summary>
/// Create a new instance of <see cref="FeatureClient"/> using the current provider
Expand Down Expand Up @@ -277,7 +277,7 @@ private async Task AfterInitialization(FeatureProvider provider)
{
Type = ProviderEventTypes.ProviderReady,
Message = "Provider initialization complete",
ProviderName = provider.GetMetadata().Name,
ProviderName = provider.GetMetadata()?.Name,
};

await this._eventExecutor.EventChannel.Writer.WriteAsync(new Event { Provider = provider, EventPayload = eventPayload }).ConfigureAwait(false);
Expand All @@ -287,14 +287,13 @@ private async Task AfterInitialization(FeatureProvider provider)
/// Update the provider state to ERROR and emit an ERROR after failed init.
/// </summary>
private async Task AfterError(FeatureProvider provider, Exception? ex)

{
provider.Status = typeof(ProviderFatalException) == ex?.GetType() ? ProviderStatus.Fatal : ProviderStatus.Error;
var eventPayload = new ProviderEventPayload
{
Type = ProviderEventTypes.ProviderError,
Message = $"Provider initialization error: {ex?.Message}",
ProviderName = provider.GetMetadata().Name,
ProviderName = provider.GetMetadata()?.Name,
};

await this._eventExecutor.EventChannel.Writer.WriteAsync(new Event { Provider = provider, EventPayload = eventPayload }).ConfigureAwait(false);
Expand Down
2 changes: 1 addition & 1 deletion src/OpenFeature/EventExecutor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ private void EmitOnRegistration(FeatureProvider? provider, ProviderEventTypes ev
{
handler.Invoke(new ProviderEventPayload
{
ProviderName = provider.GetMetadata().Name,
ProviderName = provider.GetMetadata()?.Name,
Type = eventType,
Message = message
});
Expand Down
2 changes: 1 addition & 1 deletion src/OpenFeature/FeatureProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public abstract class FeatureProvider
/// Metadata describing the provider.
/// </summary>
/// <returns><see cref="Metadata"/></returns>
public abstract Metadata GetMetadata();
public abstract Metadata? GetMetadata();

/// <summary>
/// Resolves a boolean feature flag
Expand Down
2 changes: 1 addition & 1 deletion src/OpenFeature/ProviderRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ private async Task SafeShutdownProviderAsync(FeatureProvider? targetProvider)
}
catch (Exception ex)
{
this.ErrorShuttingDownProvider(targetProvider.GetMetadata().Name, ex);
this.ErrorShuttingDownProvider(targetProvider.GetMetadata()?.Name, ex);
}
}

Expand Down
10 changes: 5 additions & 5 deletions test/OpenFeature.Tests/OpenFeatureTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,8 @@ public async Task OpenFeature_Should_Not_Change_Named_Providers_When_Setting_Def
var defaultClient = openFeature.GetProviderMetadata();
var namedClient = openFeature.GetProviderMetadata(TestProvider.DefaultName);

defaultClient.Name.Should().Be(NoOpProvider.NoOpProviderName);
namedClient.Name.Should().Be(TestProvider.DefaultName);
defaultClient?.Name.Should().Be(NoOpProvider.NoOpProviderName);
namedClient?.Name.Should().Be(TestProvider.DefaultName);
}

[Fact]
Expand All @@ -117,7 +117,7 @@ public async Task OpenFeature_Should_Set_Default_Provide_When_No_Name_Provided()

var defaultClient = openFeature.GetProviderMetadata();

defaultClient.Name.Should().Be(TestProvider.DefaultName);
defaultClient?.Name.Should().Be(TestProvider.DefaultName);
}

[Fact]
Expand All @@ -130,7 +130,7 @@ public async Task OpenFeature_Should_Assign_Provider_To_Existing_Client()
await openFeature.SetProviderAsync(name, new TestProvider());
await openFeature.SetProviderAsync(name, new NoOpFeatureProvider());

openFeature.GetProviderMetadata(name).Name.Should().Be(NoOpProvider.NoOpProviderName);
openFeature.GetProviderMetadata(name)?.Name.Should().Be(NoOpProvider.NoOpProviderName);
}

[Fact]
Expand Down Expand Up @@ -187,7 +187,7 @@ public async Task OpenFeature_Should_Get_Metadata()
var metadata = openFeature.GetProviderMetadata();

metadata.Should().NotBeNull();
metadata.Name.Should().Be(NoOpProvider.NoOpProviderName);
metadata?.Name.Should().Be(NoOpProvider.NoOpProviderName);
}

[Theory]
Expand Down

0 comments on commit f865f18

Please sign in to comment.