Skip to content

Commit 80ff695

Browse files
committed
adding tests
1 parent 68dc96a commit 80ff695

File tree

8 files changed

+207
-50
lines changed

8 files changed

+207
-50
lines changed

src/OpenFeature.Contrib.Providers.AwsAppConfig/AppConfigProvider.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using System.Threading;
33
using System.Threading.Tasks;
44
using OpenFeature.Model;
5-
using Amazon.AppConfigData;
65
using Amazon.AppConfigData.Model;
76

87
namespace OpenFeature.Contrib.Providers.AwsAppConfig

src/OpenFeature.Contrib.Providers.AwsAppConfig/FeatureFlagProfile.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
using System;
2-
31
namespace OpenFeature.Contrib.Providers.AwsAppConfig
42
{
53
/// <summary>

src/OpenFeature.Contrib.Providers.AwsAppConfig/OpenFeature.Contrib.Providers.AwsAppConfig.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net8.0;net7.0;net6.0;netcoreapp3.1;</TargetFrameworks>
4+
<TargetFrameworks>net8.0;net7.0;net6.0;</TargetFrameworks>
55
<LangVersion>7.3</LangVersion>
66
<PackageId>OpenFeature.Contrib.Providers.AwsAppConfig</PackageId>
77
<VersionNumber>0.0.1</VersionNumber> <!--x-release-please-version -->

src/OpenFeature.Contrib.Providers.AwsAppConfig/OpenFeatureExtension.cs

Lines changed: 0 additions & 34 deletions
This file was deleted.
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
using Xunit;
2+
using OpenFeature.Contrib.Providers.AwsAppConfig;
3+
using System;
4+
5+
public class AppConfigKeyTests
6+
{
7+
[Fact]
8+
public void Constructor_WithValidParameters_ShouldSetProperties()
9+
{
10+
// Arrange
11+
var configProfileID = "TestConfigProfile";
12+
var flagKey = "TestFlagKey";
13+
var attributeKey = "TestAttributeKey";
14+
15+
// Act
16+
var key = new AppConfigKey(configProfileID, flagKey, attributeKey);
17+
18+
// Assert
19+
Assert.Equal(configProfileID, key.ConfigurationProfileId);
20+
Assert.Equal(flagKey, key.FlagKey);
21+
Assert.Equal(attributeKey, key.AttributeKey);
22+
}
23+
24+
[Theory]
25+
[InlineData("", "env", "config")]
26+
[InlineData("app", "", "config")]
27+
[InlineData("app", "env", "")]
28+
[InlineData(null, "env", "config")]
29+
[InlineData("app", null, "config")]
30+
[InlineData("app", "env", null)]
31+
public void Constructor_WithInvalidParameters_ShouldThrowArgumentException(
32+
string application, string environment, string configuration)
33+
{
34+
// Act & Assert
35+
Assert.Throws<ArgumentNullException>(() =>
36+
new AppConfigKey(application, environment, configuration));
37+
}
38+
39+
[Theory]
40+
[InlineData("app1", "env1", "config1")]
41+
[InlineData("my-app", "my-env", "my-config")]
42+
[InlineData("APP", "ENV", "CONFIG")]
43+
public void ToString_ShouldReturnFormattedString(
44+
string configProfileId, string flagKey, string attributeKey)
45+
{
46+
// Arrange
47+
var key = new AppConfigKey(configProfileId, flagKey, attributeKey);
48+
49+
// Act
50+
var result = key.ToString();
51+
52+
// Assert
53+
Assert.Contains(configProfileId, result);
54+
Assert.Contains(flagKey, result);
55+
Assert.Contains(attributeKey, result);
56+
}
57+
58+
[Theory]
59+
[InlineData("app-123", "env-123", "config-123")]
60+
[InlineData("app_123", "env_123", "config_123")]
61+
[InlineData("app.123", "env.123", "config.123")]
62+
public void Constructor_WithSpecialCharacters_ShouldAcceptValidPatterns(
63+
string configProfileId, string flagKey, string attributeKey)
64+
{
65+
// Arrange & Act
66+
var key = new AppConfigKey(configProfileId, flagKey, attributeKey);
67+
68+
// Assert
69+
Assert.Equal(configProfileId, key.ConfigurationProfileId);
70+
Assert.Equal(flagKey, key.FlagKey);
71+
Assert.Equal(attributeKey, key.AttributeKey);
72+
}
73+
74+
[Theory]
75+
[InlineData("app$123", "env", "config")]
76+
[InlineData("app", "env#123", "config")]
77+
[InlineData("app", "env", "config@123")]
78+
public void Constructor_WithInvalidCharacters_ShouldThrowArgumentException(
79+
string application, string environment, string configuration)
80+
{
81+
// Act & Assert
82+
Assert.Throws<ArgumentException>(() =>
83+
new AppConfigKey(application, environment, configuration));
84+
}
85+
86+
[Fact]
87+
public void Constructor_WithWhitespaceValues_ShouldThrowArgumentException()
88+
{
89+
// Arrange
90+
var application = " ";
91+
var environment = "env";
92+
var configuration = "config";
93+
94+
// Act & Assert
95+
Assert.Throws<ArgumentException>(() =>
96+
new AppConfigKey(application, environment, configuration));
97+
}
98+
99+
[Theory]
100+
[InlineData("a", "env", "config")] // too short
101+
[InlineData("app", "e", "config")] // too short
102+
[InlineData("app", "env", "c")] // too short
103+
public void Constructor_WithTooShortValues_ShouldThrowArgumentException(
104+
string application, string environment, string configuration)
105+
{
106+
// Act & Assert
107+
Assert.Throws<ArgumentException>(() =>
108+
new AppConfigKey(application, environment, configuration));
109+
}
110+
}

test/OpenFeature.Contrib.Providers.AwsAppConfig.Test/Class1.cs

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
using Xunit;
2+
using OpenFeature.Contrib.Providers.AwsAppConfig;
3+
4+
public class FeatureFlagProfileTests
5+
{
6+
[Fact]
7+
public void Constructor_ShouldInitializeWithDefaultValues()
8+
{
9+
// Arrange & Act
10+
var profile = new FeatureFlagProfile();
11+
12+
// Assert
13+
Assert.NotNull(profile);
14+
// Add assertions for any default properties that should be initialized
15+
}
16+
17+
[Fact]
18+
public void PropertySetter_ShouldSetProperties()
19+
{
20+
// Arrange
21+
var appname = "TestApplication";
22+
var environment = "Test Environment";
23+
var configProfileId = "Test Configuration";
24+
25+
// Act
26+
var profile = new FeatureFlagProfile{
27+
ApplicationIdentifier = appname,
28+
EnvironmentIdentifier = environment,
29+
ConfigurationProfileIdentifier = configProfileId,
30+
31+
};
32+
33+
// Assert
34+
Assert.Equal(appname, profile.ApplicationIdentifier);
35+
Assert.Equal(environment, profile.EnvironmentIdentifier);
36+
Assert.Equal(configProfileId, profile.ConfigurationProfileIdentifier);
37+
}
38+
39+
[Theory]
40+
[InlineData("TestApplication", "TestEnvironment", "TestConfigProfileId")]
41+
[InlineData("Test2Application", "Test2Environment", "Test2ConfigProfileId")]
42+
public void ToString_ShouldReturnKeyString(string appName, string env, string configProfileId)
43+
{
44+
// Arrange
45+
var profile = new FeatureFlagProfile {
46+
ApplicationIdentifier = appName,
47+
EnvironmentIdentifier = env,
48+
ConfigurationProfileIdentifier = configProfileId,
49+
};
50+
51+
// Act
52+
var result = profile.ToString();
53+
54+
// Assert
55+
Assert.Equal($"{appName}_{env}_{configProfileId}", result);
56+
}
57+
58+
[Theory]
59+
[InlineData("TestApplication", "TestEnvironment", "TestConfigProfileId")]
60+
[InlineData("Test2Application", "Test2Environment", "Test2ConfigProfileId")]
61+
public void IsValid_ReturnTrue(string appName, string env, string configProfileId)
62+
{
63+
// Arrange
64+
var profile = new FeatureFlagProfile {
65+
ApplicationIdentifier = appName,
66+
EnvironmentIdentifier = env,
67+
ConfigurationProfileIdentifier = configProfileId,
68+
};
69+
70+
// Assert
71+
Assert.True(profile.IsValid);
72+
}
73+
74+
[Theory]
75+
[InlineData("", "TestEnvironment", "TestConfigProfileId")]
76+
[InlineData("TestApplication", "", "TestConfigProfileId")]
77+
[InlineData("TestApplication", "TestEnvironment", "")]
78+
[InlineData("", "", "")]
79+
public void IsValid_ReturnFalse(string appName, string env, string configProfileId)
80+
{
81+
// Arrange
82+
var profile = new FeatureFlagProfile {
83+
ApplicationIdentifier = appName,
84+
EnvironmentIdentifier = env,
85+
ConfigurationProfileIdentifier = configProfileId,
86+
};
87+
88+
// Assert
89+
Assert.False(profile.IsValid);
90+
}
91+
}
Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

3-
<ItemGroup>
4-
<ProjectReference Include="..\..\src\OpenFeature.Contrib.Providers.AwsAppConfig\OpenFeature.Contrib.Providers.AwsAppConfig.csproj" />
3+
<ItemGroup>
4+
<ProjectReference Include="..\..\src\OpenFeature.Contrib.Providers.AwsAppConfig\OpenFeature.Contrib.Providers.AwsAppConfig.csproj" />
55
</ItemGroup>
66

7-
<PropertyGroup>
8-
<TargetFramework>net8.0</TargetFramework>
9-
<ImplicitUsings>enable</ImplicitUsings>
10-
<Nullable>enable</Nullable>
7+
<PropertyGroup>
8+
<IsPackable>false</IsPackable>
9+
<IsTestProject>true</IsTestProject>
1110
</PropertyGroup>
1211

1312
</Project>

0 commit comments

Comments
 (0)