예제 #1
0
        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());
        }
예제 #2
0
 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);
     }
 }
예제 #3
0
        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());
        }