public void SetUp()
 {
     autoBuilderConfiguration = new AutoBuilderConfiguration();
     dataAnnotationConventionMapper = new Mock<IDataAnnotationConventionMapper>();
     populateNullableDoubleService = new PopulateNullableDoubleService(dataAnnotationConventionMapper.Object);
     populateNullableDoubleService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
 }
 public void SetUp()
 {
     populateDictionaryService = new PopulateDictionaryService();
     autoBuilderConfiguration = new AutoBuilderConfiguration();
     autoBuilderConfiguration.DefaultCollectionItemCount = 1;
     populateDictionaryService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
 }
Пример #3
0
        public void SetUp()
        {
            autoBuilderConfiguration         = new AutoBuilderConfiguration();
            populateStringService            = new Mock <PopulateProperty <string> >();
            populateIntService               = new Mock <PopulateProperty <int> >();
            populateNullableIntService       = new Mock <PopulateProperty <int?> >();
            populateDoubleService            = new Mock <PopulateProperty <double> >();
            populateNullableDoubleService    = new Mock <PopulateProperty <double?> >();
            populateBoolService              = new Mock <PopulateProperty <bool> >();
            populateNullableBoolService      = new Mock <PopulateProperty <bool?> >();
            populateByteService              = new Mock <PopulateProperty <byte> >();
            populateNullableByteService      = new Mock <PopulateProperty <byte?> >();
            populateDateTimeService          = new Mock <PopulateProperty <DateTime> >();
            populateNullableDateTimeService  = new Mock <PopulateProperty <DateTime?> >();
            populateUriService               = new Mock <PopulateProperty <Uri> >();
            populateGuidService              = new Mock <PopulateProperty <Guid> >();
            populateLongService              = new Mock <PopulateProperty <long> >();
            populateNullableLongService      = new Mock <PopulateProperty <long?> >();
            populateShortService             = new Mock <PopulateProperty <short> >();
            populateCharService              = new Mock <PopulateProperty <char> >();
            populateNullableCharService      = new Mock <PopulateProperty <char?> >();
            populateDecimalService           = new Mock <PopulateProperty <decimal> >();
            populateNullableDecimalService   = new Mock <PopulateProperty <decimal?> >();
            populateEnumService              = new Mock <IPopulateEnumService>();
            buildConstructorParameterService = new Mock <IBuildConstructorParametersService>();
            populateComplexObjectService     = new Mock <IPopulateComplexObjectService>();
            populateListService              = new Mock <IPopulateListService>();
            populateDictionaryService        = new Mock <IPopulateDictionaryService>();
            populateArrayService             = new Mock <IPopulateArrayService>();

            propertyPopulationService = new PropertyPopulationService(
                populateStringService.Object,
                populateIntService.Object,
                populateNullableIntService.Object,
                populateDoubleService.Object,
                populateNullableDoubleService.Object,
                populateBoolService.Object,
                populateNullableBoolService.Object,
                populateByteService.Object,
                populateNullableByteService.Object,
                populateDateTimeService.Object,
                populateNullableDateTimeService.Object,
                populateUriService.Object,
                populateGuidService.Object,
                populateLongService.Object,
                populateNullableLongService.Object,
                populateShortService.Object,
                populateCharService.Object,
                populateNullableCharService.Object,
                populateDecimalService.Object,
                populateNullableDecimalService.Object,
                populateEnumService.Object,
                buildConstructorParameterService.Object,
                populateComplexObjectService.Object,
                populateListService.Object,
                populateDictionaryService.Object,
                populateArrayService.Object);

            propertyPopulationService.AddConfiguration(autoBuilderConfiguration);
        }
 public void SetUp()
 {
     autoBuilderConfiguration       = new AutoBuilderConfiguration();
     dataAnnotationConventionMapper = new Mock <IDataAnnotationConventionMapper>();
     populateDoubleService          = new PopulateDoubleService(dataAnnotationConventionMapper.Object);
     populateDoubleService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
 }
 public void SetUp()
 {
     populateDictionaryService = new PopulateDictionaryService();
     autoBuilderConfiguration  = new AutoBuilderConfiguration();
     autoBuilderConfiguration.DefaultCollectionItemCount = 1;
     populateDictionaryService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
 }
        public void SetUp()
        {
            autoBuilderConfiguration = new AutoBuilderConfiguration();
            populateStringService = new Mock<PopulateProperty<string>>();
            populateIntService = new Mock<PopulateProperty<int>>();
            populateNullableIntService = new Mock<PopulateProperty<int?>>();
            populateDoubleService = new Mock<PopulateProperty<double>>();
            populateNullableDoubleService = new Mock<PopulateProperty<double?>>();
            populateBoolService = new Mock<PopulateProperty<bool>>();
            populateNullableBoolService = new Mock<PopulateProperty<bool?>>();
            populateByteService = new Mock<PopulateProperty<byte>>();
            populateNullableByteService = new Mock<PopulateProperty<byte?>>();
            populateDateTimeService = new Mock<PopulateProperty<DateTime>>();
            populateNullableDateTimeService = new Mock<PopulateProperty<DateTime?>>();
            populateUriService = new Mock<PopulateProperty<Uri>>();
            populateGuidService = new Mock<PopulateProperty<Guid>>();
            populateLongService = new Mock<PopulateProperty<long>>();
            populateNullableLongService = new Mock<PopulateProperty<long?>>();
            populateShortService = new Mock<PopulateProperty<short>>();
            populateCharService = new Mock<PopulateProperty<char>>();
            populateNullableCharService = new Mock<PopulateProperty<char?>>();
            populateDecimalService = new Mock<PopulateProperty<decimal>>();
            populateNullableDecimalService = new Mock<PopulateProperty<decimal?>>();
            populateEnumService = new Mock<IPopulateEnumService>();
            buildConstructorParameterService = new Mock<IBuildConstructorParametersService>();
            populateComplexObjectService = new Mock<IPopulateComplexObjectService>();
            populateListService = new Mock<IPopulateListService>();
            populateDictionaryService = new Mock<IPopulateDictionaryService>();
            populateArrayService = new Mock<IPopulateArrayService>();

            propertyPopulationService = new PropertyPopulationService(
                populateStringService.Object,
                populateIntService.Object,
                populateNullableIntService.Object,
                populateDoubleService.Object,
                populateNullableDoubleService.Object,
                populateBoolService.Object,
                populateNullableBoolService.Object,
                populateByteService.Object,
                populateNullableByteService.Object,
                populateDateTimeService.Object,
                populateNullableDateTimeService.Object,
                populateUriService.Object,
                populateGuidService.Object,
                populateLongService.Object,
                populateNullableLongService.Object,
                populateShortService.Object,
                populateCharService.Object,
                populateNullableCharService.Object,
                populateDecimalService.Object,
                populateNullableDecimalService.Object,
                populateEnumService.Object,
                buildConstructorParameterService.Object,
                populateComplexObjectService.Object,
                populateListService.Object,
                populateDictionaryService.Object,
                populateArrayService.Object);

            propertyPopulationService.AddConfiguration(autoBuilderConfiguration);
        }
Пример #7
0
 public void AddConfiguration(AutoBuilderConfiguration autoBuilderConfiguration)
 {
     configuration = autoBuilderConfiguration;
     populateStringService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateIntService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateNullableIntProperty.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateDoubleService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateNullableDoubleService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateBoolService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateNullableBoolService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateByteService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateNullableByteService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateDateTimeService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateNullableDateTimeService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateUriService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateGuidService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateLongService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateNullableLongService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateShortService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateCharService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateNullableCharService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateDecimalService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateNullableDecimalService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateEnumService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateComplexObjectService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateListService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateDictionaryService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateArrayService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
 }
        private static string GenerateRandomStringFromDataAnnotations(PropertyInfo propertyInfo, AutoBuilderConfiguration autoBuilderConfiguration)
        {
            var minLength = autoBuilderConfiguration.StringMinLength;
            var maxLength = autoBuilderConfiguration.StringMaxLength;

            var minLengthAttribute = propertyInfo.GetCustomAttributes(typeof(MinLengthAttribute)).FirstOrDefault();
            if (minLengthAttribute != null)
            {
                minLength = ((MinLengthAttribute)minLengthAttribute).Length;
            }

            var maxLengthAttribute = propertyInfo.GetCustomAttributes(typeof(MaxLengthAttribute)).FirstOrDefault();
            if (maxLengthAttribute != null)
            {
                maxLength = ((MaxLengthAttribute)maxLengthAttribute).Length;
            }

            if (minLengthAttribute != null || maxLengthAttribute != null)
            {
                {
                    return NAuto.GetRandomString(
                        minLength,
                        maxLength,
                        autoBuilderConfiguration.DefaultStringCharacterSetType,
                        autoBuilderConfiguration.DefaultStringSpaces,
                        autoBuilderConfiguration.DefaultStringCasing,
                        autoBuilderConfiguration.DefaultLanguage);
                }
            }

            var stringLengthAttribute = propertyInfo.GetCustomAttributes(typeof(StringLengthAttribute)).FirstOrDefault();

            if (stringLengthAttribute != null)
            {
                var minStringLength = ((StringLengthAttribute)stringLengthAttribute).MinimumLength;
                var maxStringLength = ((StringLengthAttribute)stringLengthAttribute).MaximumLength;

                if (maxStringLength == 0)
                {
                    maxStringLength = minStringLength + 50;
                }

                if (maxStringLength < minStringLength)
                {
                    throw new ArgumentException("Property " + propertyInfo.Name + ": the minimum string length cannot be greater than the maximum string length...");
                }

                return NAuto.GetRandomString(
                        minStringLength,
                        maxStringLength,
                        autoBuilderConfiguration.DefaultStringCharacterSetType,
                        autoBuilderConfiguration.DefaultStringSpaces,
                        autoBuilderConfiguration.DefaultStringCasing,
                        autoBuilderConfiguration.DefaultLanguage);
            }

            return null;
        }
Пример #9
0
        public void Should_Return_Email_Type_Base_On_Property_Name()
        {
            var autoTestBuilderConfiguration = new AutoBuilderConfiguration();
            var conventionsTestModel         = NAuto.AutoBuild <ConventionsModel>(autoTestBuilderConfiguration)
                                               .Configure(x => x.DefaultLanguage = Language.Russian)
                                               .Construct()
                                               .Build();

            conventionsTestModel.Email.ShouldContain("@");
        }
Пример #10
0
        public void Should_Generate_List_With_Specified_Number_Of_Arguments()
        {
            var config = new AutoBuilderConfiguration(defaultLanguage: Language.Chinese);

            var testModel = NAuto.AutoBuild <TestModel>(config)
                            .Configure(x => x.DefaultLanguage = Language.Chinese)
                            .Construct()
                            .With(x => x.FavouriteStringList = NAuto.GetRandomList <string>(5, autoBuilderConfiguration: config))
                            .Build();

            testModel.ShouldNotBeNull();
        }
Пример #11
0
        public void Should_Override_Property_With_Custom_Convention()
        {
            var autoTestBuilderConfiguration = new AutoBuilderConfiguration();

            autoTestBuilderConfiguration.Conventions.Add(new ConventionMap(ConventionFilterType.Contains, "PetName", typeof(string), config => "Rex"));

            var conventionsTestModel = NAuto.AutoBuild <ConventionsModel>(autoTestBuilderConfiguration)
                                       .Construct()
                                       .Build();

            // Assert
            conventionsTestModel.PetName.ShouldEqual("Rex");
            conventionsTestModel.SubConventionsModel.PetName.ShouldEqual("Rex");
        }
        private static double GenerateRandomDoubleFromDataAnnotations(PropertyInfo propertyInfo, AutoBuilderConfiguration autoBuilderConfiguration)
        {
            var min = autoBuilderConfiguration.DoubleMinimum;
            var max = autoBuilderConfiguration.DoubleMaximum;

            var rangeAttribute = propertyInfo.GetCustomAttributes(typeof(RangeAttribute), false).FirstOrDefault();
            if (rangeAttribute != null)
            {
                min = double.Parse(((RangeAttribute)rangeAttribute).Minimum.ToString());
                max = double.Parse(((RangeAttribute)rangeAttribute).Maximum.ToString());
            }

            return NAuto.GetRandomDouble(min, max);
        }
        private static int GenerateRandomIntFromDataAnnotations(PropertyInfo propertyInfo, AutoBuilderConfiguration autoBuilderConfiguration)
        {
            var min = autoBuilderConfiguration.IntMinimum;
            var max = autoBuilderConfiguration.IntMaximum;

            var rangeAttribute = propertyInfo.GetCustomAttributes(typeof(RangeAttribute), false).FirstOrDefault();
            if (rangeAttribute != null)
            {
                min = (int)((RangeAttribute)rangeAttribute).Minimum;
                max = (int)((RangeAttribute)rangeAttribute).Maximum;
            }

            return NAuto.GetRandomInteger(min, max);
        }
Пример #14
0
        public static List <TModel> Get <TModel>(int numberOfItems = 2, AutoBuilderConfiguration configuration = null, Language language = Language.English) where TModel : class
        {
            var autoBuilder = configuration != null?NAuto.AutoBuild <List <TModel> >(configuration) : NAuto.AutoBuild <List <TModel> >();

            if (language == Language.English && configuration != null)
            {
                language = configuration.DefaultLanguage;
            }

            return(autoBuilder
                   .Configure(x => x.DefaultCollectionItemCount = numberOfItems)
                   .Configure(x => x.DefaultLanguage = language)
                   .Construct()
                   .Build());
        }
Пример #15
0
        public void Should_Override_Properties_Data_Generation()
        {
            // Arrange
            const int minLength = 5;
            const int maxLength = 50;
            var       config    = new AutoBuilderConfiguration(stringMinLength: minLength, stringMaxLength: maxLength);

            // Act
            var testModel = NAuto.AutoBuild <TestModel>(config)
                            .Construct()
                            .Build();

            // Assert
            testModel.SubTestModel.SubString.Length.ShouldBeGreaterThanOrEqualTo(minLength);
            testModel.SubTestModel.SubString.Length.ShouldBeLessThanOrEqualTo(maxLength);
        }
        public object TryGetValue(Type type, PropertyInfo propertyInfo, AutoBuilderConfiguration autoBuilderConfiguration)
        {
            if (propertyInfo != null)
            {
                var dataTypeAttribute = propertyInfo.GetCustomAttributes(typeof(DataTypeAttribute), true).FirstOrDefault();
                if (dataTypeAttribute != null)
                {
                    var dataType = ((DataTypeAttribute)dataTypeAttribute).DataType;
                    if (type == typeof(string))
                    {
                        if (dataType == DataType.EmailAddress)
                        {
                            return NAuto.GetRandomPropertyType(PropertyType.Email);
                        }

                        if (dataType == DataType.PhoneNumber)
                        {
                            return NAuto.GetRandomPropertyType(PropertyType.TelephoneNumber);
                        }

                        if (dataType == DataType.Url)
                        {
                            return NAuto.GetRandomPropertyType(PropertyType.Url);
                        }
                    }
                }

                if (type == typeof(string))
                {
                    return GenerateRandomStringFromDataAnnotations(propertyInfo, autoBuilderConfiguration);
                }

                if (type == typeof(int))
                {
                    return GenerateRandomIntFromDataAnnotations(propertyInfo, autoBuilderConfiguration);
                }

                if (type == typeof(double))
                {
                    return GenerateRandomDoubleFromDataAnnotations(propertyInfo, autoBuilderConfiguration);
                }
            }

            return null;
        }
Пример #17
0
        public object TryGetValue(Type type, PropertyInfo propertyInfo, AutoBuilderConfiguration autoBuilderConfiguration)
        {
            if (propertyInfo != null)
            {
                var dataTypeAttribute = propertyInfo.GetCustomAttributes(typeof(DataTypeAttribute), true).FirstOrDefault();
                if (dataTypeAttribute != null)
                {
                    var dataType = ((DataTypeAttribute)dataTypeAttribute).DataType;
                    if (type == typeof(string))
                    {
                        if (dataType == DataType.EmailAddress)
                        {
                            return(NAuto.GetRandomPropertyType(PropertyType.Email));
                        }

                        if (dataType == DataType.PhoneNumber)
                        {
                            return(NAuto.GetRandomPropertyType(PropertyType.TelephoneNumber));
                        }

                        if (dataType == DataType.Url)
                        {
                            return(NAuto.GetRandomPropertyType(PropertyType.Url));
                        }
                    }
                }

                if (type == typeof(string))
                {
                    return(GenerateRandomStringFromDataAnnotations(propertyInfo, autoBuilderConfiguration));
                }

                if (type == typeof(int))
                {
                    return(GenerateRandomIntFromDataAnnotations(propertyInfo, autoBuilderConfiguration));
                }

                if (type == typeof(double))
                {
                    return(GenerateRandomDoubleFromDataAnnotations(propertyInfo, autoBuilderConfiguration));
                }
            }

            return(null);
        }
 public void SetUp()
 {
     autoBuilderConfiguration    = new AutoBuilderConfiguration();
     populateNullableCharService = new PopulateNullableCharService();
     populateNullableCharService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
 }
 public void SetUp()
 {
     autoBuilderConfiguration = new AutoBuilderConfiguration();
     dataAnnotationConventionMapper = new DataAnnotationConventionMapper();
 }
 public void AddConfiguration(AutoBuilderConfiguration autoBuilderConfiguration)
 {
     configuration = autoBuilderConfiguration;
     populateStringService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateIntService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateNullableIntProperty.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateDoubleService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateNullableDoubleService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateBoolService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateNullableBoolService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateByteService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateNullableByteService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateDateTimeService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateNullableDateTimeService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateUriService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateGuidService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateLongService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateNullableLongService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateShortService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateCharService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateNullableCharService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateDecimalService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateNullableDecimalService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateEnumService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateComplexObjectService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateListService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateDictionaryService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
     populateArrayService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
 }
Пример #21
0
 public void SetUp()
 {
     populateListService      = new PopulateListService();
     autoBuilderConfiguration = new AutoBuilderConfiguration();
     populateListService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
 }
Пример #22
0
        public void Should_Return_Email_Type_Base_On_Property_Name()
        {
            var autoTestBuilderConfiguration = new AutoBuilderConfiguration();
            var conventionsTestModel = NAuto.AutoBuild<ConventionsModel>(autoTestBuilderConfiguration)
                .Configure(x => x.DefaultLanguage = Language.Russian)
                .Construct()
                .Build();

            conventionsTestModel.Email.ShouldContain("@");
        }
Пример #23
0
        public void Should_Override_Properties_Data_Generation()
        {
            // Arrange
            const int minLength = 5;
            const int maxLength = 50;
            var config = new AutoBuilderConfiguration(stringMinLength:minLength, stringMaxLength:maxLength);

            // Act
            var testModel = NAuto.AutoBuild<TestModel>(config)
                .Construct()
                .Build();

            // Assert
            testModel.SubTestModel.SubString.Length.ShouldBeGreaterThanOrEqualTo(minLength);
            testModel.SubTestModel.SubString.Length.ShouldBeLessThanOrEqualTo(maxLength);
        }
 public void SetUp()
 {
     autoBuilderConfiguration       = new AutoBuilderConfiguration();
     dataAnnotationConventionMapper = new DataAnnotationConventionMapper();
 }
 public void SetAutoBuilderConfiguration(AutoBuilderConfiguration autoBuilderConfiguration)
 {
     AutoBuilderConfiguration = autoBuilderConfiguration;
 }
Пример #26
0
        private static int GenerateRandomIntFromDataAnnotations(PropertyInfo propertyInfo, AutoBuilderConfiguration autoBuilderConfiguration)
        {
            var min = autoBuilderConfiguration.IntMinimum;
            var max = autoBuilderConfiguration.IntMaximum;

            var rangeAttribute = propertyInfo.GetCustomAttributes(typeof(RangeAttribute), false).FirstOrDefault();

            if (rangeAttribute != null)
            {
                min = (int)((RangeAttribute)rangeAttribute).Minimum;
                max = (int)((RangeAttribute)rangeAttribute).Maximum;
            }

            return(NAuto.GetRandomInteger(min, max));
        }
Пример #27
0
 public void SetUp()
 {
     autoBuilderConfiguration = new AutoBuilderConfiguration();
     populateByteService = new PopulateByteService();
     populateByteService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
 }
 public void SetUp()
 {
     autoBuilderConfiguration = new AutoBuilderConfiguration();
     populateNullableDecimalService = new PopulateNullableDecimalService();
     populateNullableDecimalService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
 }
Пример #29
0
        public static List <TModel> Get <TModel>(Expression <Func <TModel, int> > identityProperty, int numberOfItems = 2, int seed = 1, int increment = 1, AutoBuilderConfiguration configuration = null, Language language = Language.English) where TModel : class
        {
            var autoBuilder = configuration != null?NAuto.AutoBuild <List <TModel> >(configuration) : NAuto.AutoBuild <List <TModel> >();

            if (language == Language.English && configuration != null)
            {
                language = configuration.DefaultLanguage;
            }

            var list = autoBuilder
                       .Configure(x => x.DefaultCollectionItemCount = numberOfItems)
                       .Configure(x => x.DefaultLanguage            = language)
                       .Construct()
                       .Build();

            var id = seed;

            foreach (var model in list)
            {
                var memberExpression = (MemberExpression)identityProperty.Body;
                var property         = memberExpression.Member as PropertyInfo;
                var instanceToUpdate = model;
                if (property != null)
                {
                    property.SetValue(instanceToUpdate, id, null);
                }

                id += increment;
            }

            return(list);
        }
 public void SetAutoBuilderConfiguration(AutoBuilderConfiguration autoBuilderConfiguration)
 {
     AutoBuilderConfiguration = autoBuilderConfiguration;
 }
 public void SetUp()
 {
     autoBuilderConfiguration = new AutoBuilderConfiguration();
     populateComplexObjectService = new PopulateComplexObjectService();
     populateComplexObjectService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
 }
Пример #32
0
 /// <summary>
 /// Automatically build an instance of the passed in model type.
 /// </summary>
 /// <typeparam name="TModel">The type of the model.</typeparam>
 /// <param name="autoBuilderConfiguration">The configuration.</param>
 /// <returns>Autobuilder instance.</returns>
 public static IAutoBuilder <TModel> AutoBuild <TModel>(AutoBuilderConfiguration autoBuilderConfiguration)
     where TModel : class
 {
     return(new AutoBuilder <TModel>(Container.Resolve <IPropertyPopulationService>(), autoBuilderConfiguration));
 }
Пример #33
0
        public void Should_Override_Property_With_Custom_Convention()
        {
            var autoTestBuilderConfiguration = new AutoBuilderConfiguration();

            autoTestBuilderConfiguration.Conventions.Add(new ConventionMap(ConventionFilterType.Contains, "PetName", typeof(string), config => "Rex"));

            var conventionsTestModel = NAuto.AutoBuild<ConventionsModel>(autoTestBuilderConfiguration)
                .Construct()
                .Build();

            // Assert
            conventionsTestModel.PetName.ShouldEqual("Rex");
            conventionsTestModel.SubConventionsModel.PetName.ShouldEqual("Rex");
        }
Пример #34
0
 /// <summary>
 /// Gets the random list with a sequenced column.
 /// </summary>
 /// <typeparam name="TModel">
 /// The type of the model.
 /// </typeparam>
 /// <param name="identityProperty">
 /// The identity property.
 /// </param>
 /// <param name="numberOfItems">
 /// The number of items.
 /// </param>
 /// <param name="seed">
 /// The seed.
 /// </param>
 /// <param name="increment">
 /// The increment.
 /// </param>
 /// <param name="autoBuilderConfiguration">
 /// The auto Builder Configuration.
 /// </param>
 /// <param name="language">
 /// The language.
 /// </param>
 /// <returns>
 /// Random list.
 /// </returns>
 public static List <TModel> GetRandomList <TModel>(Expression <Func <TModel, int> > identityProperty, int numberOfItems = 2, int seed = 1, int increment = 1, AutoBuilderConfiguration autoBuilderConfiguration = null, Language language = Language.English) where TModel : class
 {
     return(RandomListGenerator.Get(identityProperty, numberOfItems, seed, increment, autoBuilderConfiguration, language));
 }
Пример #35
0
        private static string GenerateRandomStringFromDataAnnotations(PropertyInfo propertyInfo, AutoBuilderConfiguration autoBuilderConfiguration)
        {
            var minLength = autoBuilderConfiguration.StringMinLength;
            var maxLength = autoBuilderConfiguration.StringMaxLength;

            //var minLengthAttribute = propertyInfo.GetCustomAttributes(typeof(MinLengthAttribute), false).FirstOrDefault();
            //if (minLengthAttribute != null)
            //{
            //    minLength = ((MinLengthAttribute)minLengthAttribute).Length;
            //}

            //var maxLengthAttribute = propertyInfo.GetCustomAttributes(typeof(MaxLengthAttribute), false).FirstOrDefault();
            //if (maxLengthAttribute != null)
            //{
            //    maxLength = ((MaxLengthAttribute)maxLengthAttribute).Length;
            //}

            //if (minLengthAttribute != null || maxLengthAttribute != null)
            //{
            //    {
            //        return NAuto.GetRandomString(
            //            minLength,
            //            maxLength,
            //            autoBuilderConfiguration.DefaultStringCharacterSetType,
            //            autoBuilderConfiguration.DefaultStringSpaces,
            //            autoBuilderConfiguration.DefaultStringCasing,
            //            autoBuilderConfiguration.DefaultLanguage);
            //    }
            //}

            var stringLengthAttribute = propertyInfo.GetCustomAttributes(typeof(StringLengthAttribute), false).FirstOrDefault();

            if (stringLengthAttribute != null)
            {
                var minStringLength = ((StringLengthAttribute)stringLengthAttribute).MinimumLength;
                var maxStringLength = ((StringLengthAttribute)stringLengthAttribute).MaximumLength;

                if (maxStringLength == 0)
                {
                    maxStringLength = minStringLength + 50;
                }

                if (maxStringLength < minStringLength)
                {
                    throw new ArgumentException("Property " + propertyInfo.Name + ": the minimum string length cannot be greater than the maximum string length...");
                }

                return(NAuto.GetRandomString(
                           minStringLength,
                           maxStringLength,
                           autoBuilderConfiguration.DefaultStringCharacterSetType,
                           autoBuilderConfiguration.DefaultStringSpaces,
                           autoBuilderConfiguration.DefaultStringCasing,
                           autoBuilderConfiguration.DefaultLanguage));
            }

            return(null);
        }
Пример #36
0
 /// <summary>
 /// Gets the random list.
 /// </summary>
 /// <typeparam name="TModel">
 /// The type of the model.
 /// </typeparam>
 /// <param name="numberOfItems">
 /// The number of items.
 /// </param>
 /// <param name="autoBuilderConfiguration">
 /// The auto Builder Configuration.
 /// </param>
 /// <param name="language">
 /// The language.
 /// </param>
 /// <returns>
 /// Random list.
 /// </returns>
 public static List <TModel> GetRandomList <TModel>(int numberOfItems = 2, AutoBuilderConfiguration autoBuilderConfiguration = null, Language language = Language.English) where TModel : class
 {
     return(RandomListGenerator.Get <TModel>(numberOfItems, autoBuilderConfiguration, language));
 }
Пример #37
0
 public void SetUp()
 {
     autoBuilderConfiguration = new AutoBuilderConfiguration();
     populateDecimalService   = new PopulateDecimalService();
     populateDecimalService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
 }
Пример #38
0
        public void Should_Generate_List_With_Specified_Number_Of_Arguments()
        {
            var config = new AutoBuilderConfiguration(defaultLanguage: Language.Chinese);

            var testModel = NAuto.AutoBuild<TestModel>(config)
                .Configure(x => x.DefaultLanguage = Language.Chinese)
                .Construct()
                .With(x => x.FavouriteStringList = NAuto.GetRandomList<string>(5, autoBuilderConfiguration: config))
                .Build();

            testModel.ShouldNotBeNull();
        }
Пример #39
0
 public void SetUp()
 {
     autoBuilderConfiguration     = new AutoBuilderConfiguration();
     populateComplexObjectService = new PopulateComplexObjectService();
     populateComplexObjectService.SetAutoBuilderConfiguration(autoBuilderConfiguration);
 }
Пример #40
0
        private static double GenerateRandomDoubleFromDataAnnotations(PropertyInfo propertyInfo, AutoBuilderConfiguration autoBuilderConfiguration)
        {
            var min = autoBuilderConfiguration.DoubleMinimum;
            var max = autoBuilderConfiguration.DoubleMaximum;

            var rangeAttribute = propertyInfo.GetCustomAttributes(typeof(RangeAttribute), false).FirstOrDefault();

            if (rangeAttribute != null)
            {
                min = double.Parse(((RangeAttribute)rangeAttribute).Minimum.ToString());
                max = double.Parse(((RangeAttribute)rangeAttribute).Maximum.ToString());
            }

            return(NAuto.GetRandomDouble(min, max));
        }