// Creating a copy of the lookup and populating table values func PopulateConceptDynamicParams(concept *gauge.Step, dataTableLookup *gauge.ArgLookup) { //If it is a top level concept if concept.Parent == nil { lookup := concept.Lookup.GetCopy() for key, _ := range lookup.ParamIndexMap { conceptLookupArg := lookup.GetArg(key) if conceptLookupArg.ArgType == gauge.Dynamic { resolvedArg := dataTableLookup.GetArg(conceptLookupArg.Value) lookup.AddArgValue(key, resolvedArg) } } concept.Lookup = *lookup } //Updating values inside the concept step as well newArgs := make([]*gauge.StepArg, 0) for _, arg := range concept.Args { if arg.ArgType == gauge.Dynamic { if concept.Parent != nil { newArgs = append(newArgs, concept.Parent.GetArg(arg.Value)) } else { newArgs = append(newArgs, dataTableLookup.GetArg(arg.Value)) } } else { newArgs = append(newArgs, arg) } } concept.Args = newArgs concept.PopulateFragments() }