logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    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.

    Inheritance
    object
    FoundationReferenceCompletenessRatchetTests
    Inherited Members
    object.ToString()
    object.Equals(object)
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    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()
    In this article
    © 2026 Serenity. All Rights Reserved