Esempio n. 1
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);
                }
            }
        }
        public void AzResourceTypeProvider_can_deserialize_all_types_without_throwing(ResourceScope scopeType)
        {
            var resourceTypeProvider = new AzResourceTypeProvider();
            var availableTypes       = resourceTypeProvider.GetAvailableTypes(scopeType);

            // sanity check - we know there should be a lot of types available
            var expectedTypeCount = scopeType == ResourceScope.ResourceGroup ? 2000 : 100;

            availableTypes.Should().HaveCountGreaterThan(expectedTypeCount);

            foreach (var availableType in availableTypes)
            {
                resourceTypeProvider.HasType(scopeType, availableType).Should().BeTrue();
                var knownResourceType = resourceTypeProvider.GetType(scopeType, availableType);

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