in coverage/report.go [24:61]
func (c *CoverageReport) AddCoverageFromState(resourceId, resourceType string, jsonBody map[string]interface{}, swaggerPath string) error {
apiVersion := strings.Split(resourceType, "@")[1]
var swaggerModel *SwaggerModel
if swaggerPath != "" {
swaggerModelFromLocal, err := GetModelInfoFromLocalDir(resourceId, swaggerPath, "PUT")
if err != nil {
logrus.Warnf("error find the path for %s from local dir: %+v", resourceId, err)
}
swaggerModel = swaggerModelFromLocal
}
if swaggerModel == nil {
swaggerModelFromIndex, err := GetModelInfoFromIndex(resourceId, apiVersion, "PUT", "")
if err != nil {
return fmt.Errorf("error find the path for %s from index: %+v", resourceId, err)
}
swaggerModel = swaggerModelFromIndex
}
logrus.Infof("matched API path: %s; modelSwawggerPath: %s\n", swaggerModel.ApiPath, swaggerModel.SwaggerPath)
if _, ok := c.Coverages[swaggerModel.ApiPath]; !ok {
expanded, err := Expand(swaggerModel.ModelName, swaggerModel.SwaggerPath)
if err != nil {
return fmt.Errorf("error expand model %s property: %+v", swaggerModel.ModelName, err)
}
c.Coverages[swaggerModel.ApiPath] = &CoverageItem{
ApiPath: swaggerModel.ApiPath,
DisplayName: resourceType,
Model: expanded,
}
}
c.Coverages[swaggerModel.ApiPath].Model.MarkCovered(jsonBody)
c.Coverages[swaggerModel.ApiPath].Model.CountCoverage()
return nil
}