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); } } }