public void SystemScheduleWindow_ContainsThisComponentType()
        {
            var componentTypesInQuery1 = EntityQueryUtility.CollectComponentTypesFromSystemQuery(m_TestSystem1);
            var typesInQuery1          = componentTypesInQuery1 as string[] ?? componentTypesInQuery1.ToArray();

            Assert.That(typesInQuery1.Contains(nameof(SystemScheduleTestData1)));
            Assert.That(typesInQuery1.Contains(nameof(SystemScheduleTestData2)));

            var componentTypesInQuery2 = EntityQueryUtility.CollectComponentTypesFromSystemQuery(m_TestSystem2);
            var typesInQuery2          = componentTypesInQuery2 as string[] ?? componentTypesInQuery2.ToArray();

            Assert.That(!typesInQuery2.Contains(nameof(SystemScheduleTestData1)));
            Assert.That(!typesInQuery2.Contains(nameof(SystemScheduleTestData2)));
        }
        public void SystemScheduleWindow_ComponentTypeAccessMode()
        {
            using (var query = m_DefaultWorld.EntityManager.CreateEntityQuery(
                       ComponentType.ReadOnly <SystemScheduleTestData1>()
                       , ComponentType.Exclude <SystemScheduleTestData2>()))
            {
                using (var componentTypePooledList = query.GetQueryTypes().ToPooledList())
                    using (var readWriteQueryTypePooledList = query.GetReadAndWriteTypes().ToPooledList())
                    {
                        var componentTypeList      = componentTypePooledList.List;
                        var readWriteQueryTypeList = readWriteQueryTypePooledList.List;
                        componentTypeList.Sort(EntityQueryUtility.CompareTypes);

                        var index = 0;

                        foreach (var componentType in componentTypeList)
                        {
                            var componentManagedType = componentType.GetManagedType();
                            var componentName        = EntityQueryUtility.SpecifiedTypeName(componentManagedType);

                            switch (componentName)
                            {
                            case nameof(SystemScheduleTestData1):
                            {
                                var accessMode1 = SystemDetailsVisualElement.GetAccessMode(componentType, readWriteQueryTypeList);
                                Assert.That(EntityQueryUtility.StyleForAccessMode(accessMode1), Is.EqualTo(UssClasses.SystemScheduleWindow.Detail.ReadOnlyIcon));
                                break;
                            }

                            case nameof(SystemScheduleTestData2):
                            {
                                var accessMode2 = SystemDetailsVisualElement.GetAccessMode(componentType, readWriteQueryTypeList);
                                Assert.That(EntityQueryUtility.StyleForAccessMode(accessMode2), Is.EqualTo(UssClasses.SystemScheduleWindow.Detail.ExcludeIcon));
                                break;
                            }
                            }
                            index++;
                        }
                    }
            }
        }