public override Property Check(World value, Model model) { return(PropertyUtility.All(Tests())); IEnumerable <(bool test, string label)> Tests() { var components = value.Components(); yield return(components.Get(_entity, States.Disabled).OfType(_type).None(), "Components.Get(Disabled).None()"); yield return(components.TryGet(_entity, _type, out _, States.Disabled).Not(), "Components.TryGet(Type, Disabled).Not()"); yield return(components.Has(_entity, _type, States.Disabled).Not(), "Components.Has(Type, Disabled).Not()"); yield return(_onEnable.All(message => message.Entity == _entity && message.Component.Type.Is(_type)), "onEnable.All()"); if (_success) { yield return(components.State(_entity).HasAny(States.Enabled), "Components.State()"); yield return(components.State(_entity, _type).HasAny(States.Enabled), "Components.State()"); yield return(components.Has(States.Enabled), "Components.Has<T>(Enabled)"); yield return(components.Has(), "Components.Has<T>()"); yield return(components.Has(_type, States.Enabled), "Components.Has(type, Enabled)"); yield return(components.Has(_type), "Components.Has(type)"); yield return(components.Has(_entity, _type, States.Enabled), "Components.Has(entity, Type, Enabled)"); yield return(components.Has(_entity, _type), "Components.Has(entity, Type)"); yield return(components.Count(States.Enabled) > 0, "Components.Count(Enabled)"); yield return(components.Count() > 0, "Components.Count()"); yield return(components.Count(_type) > 0, "Components.Count(type)"); yield return(components.Count(_type, States.Enabled) > 0, "Components.Count(type, Enabled)"); yield return(components.Count(_entity, States.Enabled) > 0, "Components.Count(entity, Enabled)"); yield return(components.Count(_entity) > 0, "Components.Count(entity)"); yield return(components.Get().OfType(_type).Any(), "Components.Get().Any()"); yield return(components.Get(States.Enabled).OfType(_type).Any(), "Components.Get(Enabled).Any()"); yield return(components.Get(_entity, States.Enabled).OfType(_type).Any(), "Components.Get(entity, Enabled).Any()"); yield return(components.Get(_entity).OfType(_type).Any(), "Components.Get(entity).Any()"); yield return(components.TryGet(_entity, _type, out _), "Components.TryGet()"); yield return(components.TryGet(_entity, _type, out _, States.Enabled), "Components.TryGet(Enabled)"); yield return(_onEnable.Length > 0, "onEnable.Length > 0"); } else { yield return(_onEnable.Length == 0, "onEnable.Length == 0"); } yield return(components.Enable(_entity, _type).Not(), "Components.Enable(Type).Not()"); } }