Class AchievementSdkInspectorTests
EditMode tests for AchievementSdkInspector: that every point of the install-then-define transaction is reported for what it is, that a define set without its SDK is called out as the compile-breaking state it is, and that the doctor cannot fetch anything.
Inherited Members
Namespace: Serenity.UnityAchievements.Tests.Editor
Assembly: Tests.Editor.dll
Syntax
public class AchievementSdkInspectorTests
Remarks
No storefront SDK is installed in this repository and none ever will be, so both lookups are supplied as functions. That is the whole reason the inspector takes them: the states that only occur on a machine with an SDK would otherwise be unreachable, and the one state that breaks a project is among them. Nothing here writes a real scripting define — flipping one would trigger a domain reload mid-run and change the project the suite is measuring.
Constructors
AchievementSdkInspectorTests()
Declaration
public AchievementSdkInspectorTests()
Methods
ALicenseeOnlySdkThatIsAbsent_IsReportedAsSuppliedByTheLicensee()
Declaration
public void ALicenseeOnlySdkThatIsAbsent_IsReportedAsSuppliedByTheLicensee()
ALicenseeOnlySdkThatWasInstalled_CanStillBeEnabled()
Declaration
public void ALicenseeOnlySdkThatWasInstalled_CanStillBeEnabled()
APlatformDefineOwnedByUnity_IsNeverOfferedForEditing()
Declaration
public void APlatformDefineOwnedByUnity_IsNeverOfferedForEditing()
APlatformDefineOwnedByUnity_IsTrustedWhenUnitySetIt()
Declaration
public void APlatformDefineOwnedByUnity_IsTrustedWhenUnitySetIt()
AnUnverifiablePlatform_SaysSoInsteadOfClaimingSomethingIsMissing()
Declaration
public void AnUnverifiablePlatform_SaysSoInsteadOfClaimingSomethingIsMissing()
DefineSetWithoutTheSdk_IsAnErrorThatNamesBothWaysOut()
Declaration
public void DefineSetWithoutTheSdk_IsAnErrorThatNamesBothWaysOut()
InspectAll_AProbeThatThrowsForOneStorefront_StillInspectsTheOthers()
One storefront that cannot be measured must cost only itself. The probe reaches into whatever the project loaded, so a half-loaded assembly or a broken package can throw — and a window that showed no rows at all would hide three healthy storefronts behind one broken question.
Declaration
public void InspectAll_AProbeThatThrowsForOneStorefront_StillInspectsTheOthers()
InspectAll_ReportsEveryShippedStorefrontOnce()
Declaration
public void InspectAll_ReportsEveryShippedStorefrontOnce()
InspectAll_WithoutLookups_RefusesRatherThanReportingFourUnknowns()
Declaration
public void InspectAll_WithoutLookups_RefusesRatherThanReportingFourUnknowns()
Inspect_WithoutLookups_RefusesRatherThanGuessing()
Declaration
public void Inspect_WithoutLookups_RefusesRatherThanGuessing()
MarkerTypeAbsentAndDefineUnset_IsNotInstalled()
Declaration
public void MarkerTypeAbsentAndDefineUnset_IsNotInstalled()
MarkerTypePresentAndDefineSet_IsReady()
Declaration
public void MarkerTypePresentAndDefineSet_IsReady()
MarkerTypePresentAndDefineUnset_IsInstalledDefineMissing()
Declaration
public void MarkerTypePresentAndDefineUnset_IsInstalledDefineMissing()
TheDoctorAssembly_CannotReachTheNetwork()
The doctor's promise, guarded where it can actually be broken: its assembly cannot reach a network type at all. A window that grew a downloader would be writing executable code from a remote URL into someone's project, which is the one thing this tool must not do — and there is no way to assert the absence of a behaviour by running it.
Declaration
public void TheDoctorAssembly_CannotReachTheNetwork()
TheDoctor_NamesNoMemberAfterFetchingSomething()
Secondary guard, kept because a downloader can be written with nothing but
System.IO and a socket the reference check would not name: a member CALLED
Download is the shape a future edit would take.
Declaration
public void TheDoctor_NamesNoMemberAfterFetchingSomething()