public void AzResourceTypeProvider_can_deserialize_all_types_without_throwing()
        {
            var resourceTypeProvider = new AzResourceTypeProvider();
            var availableTypes       = resourceTypeProvider.GetAvailableTypes();

            // sanity check - we know there should be a lot of types available
            var expectedTypeCount = 3000;

            availableTypes.Should().HaveCountGreaterThan(expectedTypeCount);

            foreach (var availableType in availableTypes)
            {
                resourceTypeProvider.HasType(availableType).Should().BeTrue();
                var resourceType         = resourceTypeProvider.GetType(availableType, false);
                var resourceTypeExisting = resourceTypeProvider.GetType(availableType, true);

                try
                {
                    var visited = new HashSet <TypeSymbol>();
                    VisitAllReachableTypes(resourceType, visited);
                    VisitAllReachableTypes(resourceTypeExisting, visited);
                }
                catch (Exception exception)
                {
                    throw new InvalidOperationException($"Deserializing type {availableType.FormatName()} failed", exception);
                }
            }
        }
Esempio n. 2
0
        public void AzResourceTypeProvider_can_deserialize_all_types_without_throwing()
        {
            var resourceTypeProvider = new AzResourceTypeProvider();

            var knownTypes = GetAllKnownTypes().ToImmutableArray();

            // sanity check - we know there should be a lot of types available
            knownTypes.Should().HaveCountGreaterThan(500);

            foreach (var knownType in knownTypes)
            {
                resourceTypeProvider.HasType(knownType).Should().BeTrue();
                var knownResourceType = resourceTypeProvider.GetType(knownType);

                try
                {
                    var visited = new HashSet <TypeSymbol>();
                    VisitAllReachableTypes(knownResourceType, visited);
                }
                catch (Exception exception)
                {
                    throw new InvalidOperationException($"Deserializing type {knownType.FormatName()} failed", exception);
                }
            }
        }