Skip to content

Commit e8dd0c9

Browse files
test(audience-sdk): extend TestFixtures with more scenario values
Adds: - Track properties: CustomPropKeyRecipeId, CraftingRecipeIronSword - Distribution platform fixture: ProviderValue - IdentityType fallback fixture: UnknownProvider - Identity persistence fixtures: PreExistingId, PreExistingIdFromLastLaunch - ConsentStore corruption fixture: NotAnInt - Stress test userId: UserRaceStress - DeleteData generic userId: SomeUser - Templated prefix for GzipTests $"anon-{i}": AnonIdPrefix - Minimal placeholders for MessageBuilder Identify / Alias arg slots (GenericUserId, GenericFromId, GenericToId, GenericFromType, GenericToType) Migrates inline references in: - DeleteDataTests - ImmutableAudienceTests (Track props, race-stress userId, provider value) - Core/IdentityTests (pre-existing-id fixtures) - IdentityTypeTests (TestCase attribute now references the const) - Core/ConsentStoreTests (corrupt-file fixture) - Utility/GzipTests (anon-{i} templated prefix) - Events/MessageBuilderTests (Identify / Alias placeholder slots) Per the user's "everything random goes in a constant" stance. Follow-up to SDK-272 (centralisation of duplicated literals).
1 parent 7af4913 commit e8dd0c9

8 files changed

Lines changed: 49 additions & 16 deletions

File tree

src/Packages/Audience/Tests/Runtime/Core/ConsentStoreTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public void Load_MalformedFile_ReturnsNull()
5050
// A garbage value that isn't a valid enum int.
5151
var dir = AudiencePaths.AudienceDir(_testDir);
5252
Directory.CreateDirectory(dir);
53-
File.WriteAllText(AudiencePaths.ConsentFile(_testDir), "not-an-int");
53+
File.WriteAllText(AudiencePaths.ConsentFile(_testDir), TestFixtures.NotAnInt);
5454

5555
Assert.IsNull(ConsentStore.Load(_testDir));
5656
}

src/Packages/Audience/Tests/Runtime/Core/IdentityTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public void NewDirectory_GeneratesNonEmptyId_AndWritesFile()
3939
public void ExistingFile_ReturnsPreviousId_WithoutGeneratingNew()
4040
{
4141
// Simulate a returning player by pre-writing an identity file (as a previous launch would have done).
42-
var expectedId = "pre-existing-id-from-last-launch";
42+
var expectedId = TestFixtures.PreExistingIdFromLastLaunch;
4343
var dir = AudiencePaths.AudienceDir(_testDir);
4444
Directory.CreateDirectory(dir);
4545
File.WriteAllText(AudiencePaths.IdentityFile(_testDir), expectedId);
@@ -93,7 +93,7 @@ public void Get_NoExistingFile_ReturnsNull_AndDoesNotCreate()
9393
[Test]
9494
public void Get_ExistingFile_ReturnsPersistedId()
9595
{
96-
var expectedId = "pre-existing-id";
96+
var expectedId = TestFixtures.PreExistingId;
9797
var dir = AudiencePaths.AudienceDir(_testDir);
9898
Directory.CreateDirectory(dir);
9999
File.WriteAllText(AudiencePaths.IdentityFile(_testDir), expectedId);

src/Packages/Audience/Tests/Runtime/DeleteDataTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ public void DeleteData_DoesNotCreateAnonymousIdFile()
136136
var handler = new CapturingHandler();
137137
ImmutableAudience.Init(MakeConfig(handler, ConsentLevel.None));
138138

139-
ImmutableAudience.DeleteData(userId: "some-user");
139+
ImmutableAudience.DeleteData(userId: TestFixtures.SomeUser);
140140
// Even with a userId request, the anonymousId file must not materialise.
141141
Thread.Sleep(250);
142142

src/Packages/Audience/Tests/Runtime/Events/MessageBuilderTests.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ public void Alias_AllFourFieldsPresent()
8080
public void AllMessages_ContextContainsLibraryAndLibraryVersion()
8181
{
8282
var track = MessageBuilder.Track(TestEventNames.PlaceholderEvt, null, null, PackageVersion);
83-
var identify = MessageBuilder.Identify(null, "u1", IdentityType.Steam.ToLowercaseString(), PackageVersion);
84-
var alias = MessageBuilder.Alias("f", "t1", "t", "t2", PackageVersion);
83+
var identify = MessageBuilder.Identify(null, TestFixtures.GenericUserId, IdentityType.Steam.ToLowercaseString(), PackageVersion);
84+
var alias = MessageBuilder.Alias(TestFixtures.GenericFromId, TestFixtures.GenericFromType, TestFixtures.GenericToId, TestFixtures.GenericToType, PackageVersion);
8585

8686
foreach (var msg in new[] { track, identify, alias })
8787
{
@@ -95,8 +95,8 @@ public void AllMessages_ContextContainsLibraryAndLibraryVersion()
9595
public void AllMessages_SurfaceIsUnity()
9696
{
9797
var track = MessageBuilder.Track(TestEventNames.PlaceholderEvt, null, null, PackageVersion);
98-
var identify = MessageBuilder.Identify(null, "u1", IdentityType.Steam.ToLowercaseString(), PackageVersion);
99-
var alias = MessageBuilder.Alias("f", "t1", "t", "t2", PackageVersion);
98+
var identify = MessageBuilder.Identify(null, TestFixtures.GenericUserId, IdentityType.Steam.ToLowercaseString(), PackageVersion);
99+
var alias = MessageBuilder.Alias(TestFixtures.GenericFromId, TestFixtures.GenericFromType, TestFixtures.GenericToId, TestFixtures.GenericToType, PackageVersion);
100100

101101
Assert.AreEqual(Constants.Surface, track[MessageFields.Surface]);
102102
Assert.AreEqual(Constants.Surface, identify[MessageFields.Surface]);
@@ -162,8 +162,8 @@ public void AllMessages_Context_LibraryAndLibraryVersionAreNonEmptyStrings()
162162
private static IEnumerable<Dictionary<string, object>> EveryMessageType()
163163
{
164164
yield return MessageBuilder.Track(TestEventNames.PlaceholderEvt, null, null, PackageVersion);
165-
yield return MessageBuilder.Identify(null, "u1", IdentityType.Steam.ToLowercaseString(), PackageVersion);
166-
yield return MessageBuilder.Alias("f", "t1", "t", "t2", PackageVersion);
165+
yield return MessageBuilder.Identify(null, TestFixtures.GenericUserId, IdentityType.Steam.ToLowercaseString(), PackageVersion);
166+
yield return MessageBuilder.Alias(TestFixtures.GenericFromId, TestFixtures.GenericFromType, TestFixtures.GenericToId, TestFixtures.GenericToType, PackageVersion);
167167
}
168168
}
169169
}

src/Packages/Audience/Tests/Runtime/IdentityTypeTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public void ParseLowercaseString_AcceptsMixedCase(string wire, IdentityType expe
4242

4343
[TestCase(null)]
4444
[TestCase("")]
45-
[TestCase("unknown_provider")]
45+
[TestCase(TestFixtures.UnknownProvider)]
4646
[TestCase("steamX")]
4747
public void ParseLowercaseString_FallsBackToCustomForUnknownOrEmpty(string? wire)
4848
{

src/Packages/Audience/Tests/Runtime/ImmutableAudienceTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,7 @@ public void Track_CustomEvent_WritesEventToDisk()
490490

491491
ImmutableAudience.Track(TestEventNames.CraftingStarted, new Dictionary<string, object>
492492
{
493-
{ "recipe_id", "iron_sword" }
493+
{ TestFixtures.CustomPropKeyRecipeId, TestFixtures.CraftingRecipeIronSword }
494494
});
495495

496496
// Flush memory → disk
@@ -968,7 +968,7 @@ public void SetConsent_DowngradeToAnonymous_StressTest_NoUserIdLeak()
968968
// EnqueueTrack and this test leaks reproducibly.
969969
const int iterations = 200;
970970
const int trackersPerIteration = 4;
971-
const string testUserId = "user_race_stress";
971+
const string testUserId = TestFixtures.UserRaceStress;
972972

973973
for (int iter = 0; iter < iterations; iter++)
974974
{
@@ -1224,7 +1224,7 @@ public void Init_GameLaunch_ConfigDistributionPlatformOverridesProvider()
12241224
{
12251225
ImmutableAudience.LaunchContextProvider = () => new Dictionary<string, object>
12261226
{
1227-
[GameLaunchPropertyKeys.DistributionPlatform] = "provider_value",
1227+
[GameLaunchPropertyKeys.DistributionPlatform] = TestFixtures.ProviderValue,
12281228
};
12291229

12301230
var config = MakeConfig();
@@ -1237,7 +1237,7 @@ public void Init_GameLaunch_ConfigDistributionPlatformOverridesProvider()
12371237
.Select(File.ReadAllText)
12381238
.First(c => c.Contains($"\"{EventNames.GameLaunch}\""));
12391239
StringAssert.Contains($"\"{GameLaunchPropertyKeys.DistributionPlatform}\":\"{DistributionPlatforms.Steam}\"", launchFile);
1240-
Assert.IsFalse(launchFile.Contains("provider_value"),
1240+
Assert.IsFalse(launchFile.Contains(TestFixtures.ProviderValue),
12411241
"config.DistributionPlatform should win over the provider's value");
12421242
}
12431243

src/Packages/Audience/Tests/Runtime/TestFixtures.cs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,38 @@ internal static class TestFixtures
3333

3434
// MilestoneReached event payload values
3535
internal const string MilestoneName = "first_boss_defeated";
36+
37+
// Track properties scenario data
38+
internal const string CustomPropKeyRecipeId = "recipe_id";
39+
internal const string CraftingRecipeIronSword = "iron_sword";
40+
41+
// Distribution platform fixture for the "platform from outside SDK" path.
42+
internal const string ProviderValue = "provider_value";
43+
44+
// IdentityTypeExtensions.ParseLowercaseString fallback fixture.
45+
internal const string UnknownProvider = "unknown_provider";
46+
47+
// Identity persistence fixtures (id read back from disk on next launch).
48+
internal const string PreExistingId = "pre-existing-id";
49+
internal const string PreExistingIdFromLastLaunch = "pre-existing-id-from-last-launch";
50+
51+
// ConsentStore corruption fixture (non-integer file content).
52+
internal const string NotAnInt = "not-an-int";
53+
54+
// ThreadSafetyStressTests userId for race-stress scenarios.
55+
internal const string UserRaceStress = "user_race_stress";
56+
57+
// DeleteDataTests generic userId.
58+
internal const string SomeUser = "some-user";
59+
60+
// Prefix for GzipTests' $"anon-{i}" loop (per-message anonymous IDs).
61+
internal const string AnonIdPrefix = "anon-";
62+
63+
// Placeholders for fixture slots where the value itself is not under test.
64+
internal const string GenericUserId = "u1";
65+
internal const string GenericFromId = "f";
66+
internal const string GenericToId = "t";
67+
internal const string GenericFromType = "t1";
68+
internal const string GenericToType = "t2";
3669
}
3770
}

src/Packages/Audience/Tests/Runtime/Utility/GzipTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public void Compress_OutputIsSmallerThanInput_ForRealisticPayload()
3535
if (i > 0) sb.Append(',');
3636
sb.Append(WireFixture.Track(
3737
(MessageFields.EventName, TestEventNames.LevelComplete),
38-
(MessageFields.AnonymousId, $"anon-{i}")));
38+
(MessageFields.AnonymousId, $"{TestFixtures.AnonIdPrefix}{i}")));
3939
}
4040

4141
sb.Append("]}");

0 commit comments

Comments
 (0)