private ScenarioBuilder AddScenario(Method method, string scenarioName, string featureName, string areaName) { if (scenarioName == null && method != null) scenarioName = method.Name.AddSpacesToSentence(true); if (featureName == null && method != null) featureName = method.GetClassName().AddSpacesToSentence(true); if (areaName == null && method != null) areaName = method.GetNameSpace(); var area = areaCache.GetOrCreate(TestRun, areaName); var feature = featureCache.GetOrCreate(area, featureName, method); return factory.CreateScenarioBuilder(scenarioName, feature); }
internal Feature GetOrCreate(Area area, string name, Method method) { var feature = features.Where(x => x.Name == name && x.Area == area).FirstOrDefault(); if(feature == null) { feature = factory.CreateFeature(name, area); if(method != null) { feature.Actor = method.GetFeatureActorName(); feature.Capability = method.GetFeatureActorAction(); feature.Value = method.GetFeatureActorValue(); } features.Add(feature); } return feature; }