public object Create(object request, ISpecimenContext context) { if (request is not ParameterInfo p) { return(new NoSpecimen()); } if (p.Name == null) { return(new NoSpecimen()); } if (!typeof(IEnumerable <ModPath>).IsAssignableFrom(p.ParameterType)) { return(new NoSpecimen()); } if (p.Name.ContainsInsensitive("exist")) { var ret = SplitEnumerableIntoSubtypes.Split <ModPath>(context, p.ParameterType); if (ret is IEnumerable <ModPath> enumer) { foreach (var mk in enumer) { MakeModExist.MakeExist(mk, context); } } return(ret); } return(new NoSpecimen()); }
public void ExistsReturnsEnumerableModKeys( ISpecimenContext context, SplitEnumerableIntoSubtypes sut) { context.MockToReturn <IEnumerable <string> >(); foreach (var method in typeof(Queries).Methods()) { var param = method.GetParameters().First(); var ret = sut.Split <string>(context, param.ParameterType); ret.GetType().Should().BeAssignableTo(param.ParameterType); } }
public void Customize(IFixture fixture) { fixture.Customizations.Add(new ModKeyBuilder()); var makeModExist = new MakeModExist( new MakeFileExist()); var split = new SplitEnumerableIntoSubtypes(); fixture.Customizations.Add(new ModKeyParameterBuilder(makeModExist)); fixture.Customizations.Add(new ModKeyMultipleBuilder()); fixture.Customizations.Add(new ModKeyMultipleParameterBuilder( split, makeModExist)); fixture.Customizations.Add(new ModPathParameterBuilder(makeModExist)); fixture.Customizations.Add(new ModPathMultipleBuilder()); fixture.Customizations.Add(new ModListingBuilder()); fixture.Customizations.Add(new ModPathBuilder()); fixture.Customizations.Add(new OrderBuilder()); }