func getCoverage()

in azurerm/coverage/coverage.go [46:77]


func getCoverage(props []string, operation, idPattern string) ([]string, []string) {
	for _, r := range cov {
		if r.Operation != operation {
			continue
		}
		if !strings.EqualFold(idPattern, r.IdPattern) {
			continue
		}
		propsSet := make(map[string]bool)
		propsSet["name"] = true
		for _, prop := range r.Properties {
			parts := strings.Split(prop.Name, "/")
			for i := range parts {
				if index := strings.Index(parts[i], "{"); index != -1 {
					parts[i] = parts[i][0:index]
				}
			}
			propsSet[strings.Join(parts, ".")] = true
		}
		covered := make([]string, 0)
		uncovered := make([]string, 0)
		for _, prop := range props {
			if propsSet[prop] {
				covered = append(covered, prop)
			} else {
				uncovered = append(uncovered, prop)
			}
		}
		return covered, uncovered
	}
	return []string{}, props
}