Class FoundationReferenceCompletenessRatchetTests
The proof that the declared Id/Guid reference statement is complete enough to be acted on without guessing: it loads every shipped foundation asset (ScriptableObjects and prefab components), builds the set of every shipped Id and Guid, and walks every serialized string of every one of them. A string that equals another shipped asset's Id or Guid must be a DECLARED reference (the walker reports it) or be listed in Serenity.UnityValidation.Tests.Editor.FoundationReferenceCompletenessRatchetTests.NotAReference with its reason. A new reference field that nobody declared fails here, naming the owner type and the property path.
Inherited Members
Namespace: Serenity.UnityValidation.Tests.Editor
Assembly: Serenity.UnityValidation.Tests.Editor.dll
Syntax
public class FoundationReferenceCompletenessRatchetTests
Constructors
FoundationReferenceCompletenessRatchetTests()
Declaration
public FoundationReferenceCompletenessRatchetTests()
Methods
EveryNotAReferenceEntry_HasAReasonAndStillMatchesAShippedIdentity()
Declaration
public void EveryNotAReferenceEntry_HasAReasonAndStillMatchesAShippedIdentity()
EveryNotAReferenceFieldsEntry_HasAReasonAndStillNamesAnUndeclaredField()
Declaration
public void EveryNotAReferenceFieldsEntry_HasAReasonAndStillNamesAnUndeclaredField()
EveryReferenceDeclaration_SitsOnAStringTheGraphCanRead()
Declaration
public void EveryReferenceDeclaration_SitsOnAStringTheGraphCanRead()
EveryReferenceShapedStringField_IsADeclaredReferenceOrAJustifiedNonReference()
The same question asked of the TYPES rather than the shipped values: a string field whose name says it holds an id, a guid or a key must either be declared or be justified here, so a new reference field fails this test the day it is added — before any shipped asset happens to fill it.
Declaration
public void EveryReferenceShapedStringField_IsADeclaredReferenceOrAJustifiedNonReference()
EveryShippedStringThatEqualsAnotherShippedIdentity_IsADeclaredReferenceOrAJustifiedNonReference()
Declaration
public void EveryShippedStringThatEqualsAnotherShippedIdentity_IsADeclaredReferenceOrAJustifiedNonReference()
NotAReferenceFields_DoesNotGrowWithoutADeliberateBump()
Declaration
public void NotAReferenceFields_DoesNotGrowWithoutADeliberateBump()
NotAReference_DoesNotGrowWithoutADeliberateBump()
Declaration
public void NotAReference_DoesNotGrowWithoutADeliberateBump()