public IConcern create_concern_from(Type type_with_concern, IObservationSpecification obseration_specification, IObservationReport observations) { return new Concern(type_with_concern.concern().concerned_with, type_with_concern.concern().story_key, type_with_concern.Name.as_bdd_style_name(), type_with_concern.all_members_that_meet(obseration_specification).as_observations(type_with_concern.Name,observations) ); }
public IEnumerable<IStoryReport> all_concern_groups_found_using(IReportOptions options, IObservationReport observations) { var concerns = options.assembly_to_scan .all_types_with_a_concern_attribute() .Select(x => concern_factory.create_concern_from(x, options.observation_specification,observations)) .Cast<IConcern>(); var stories = concerns .GroupBy(x => x.story_key) .Select(x=> StoryFactory.create_from_concerns(x)) .Cast<IStoryReport>(); return stories; }
public IConcernReport create_using(IReportOptions options, IObservationReport observations) { return new ConcernReport(StoryRepository.all_concern_groups_found_using(options,observations)); }
static public IEnumerable<IConcernObservation> as_observations(this IEnumerable<MemberInfo> methods, string concern, IObservationReport observations) { return methods.Select(x => x.as_observation(concern, observations)); }
static public IConcernObservation as_observation(this MemberInfo method, string concern, IObservationReport observations) { return new ConcernObservation(method.Name.as_bdd_style_name(), observations.from_full_name(concern + "." + method.Name).success); }