예제 #1
0
        public void Should_Handle_Space_After_NewLine()
        {
            var testData =
                " Id | StringField | \r\n " +
                " 1  | test        | \r\n " +
                "";

            var binder = new TemplateBinder()
                         .SetPropertyNameSpaceDelimiter("_");

            var faker = new AutoFaker <Parent>(binder);

            var result = faker.GenerateWithTemplate(testData);

            result.Should().HaveCount(1);
            result[0].StringField.Should().Be("test");
        }
예제 #2
0
        public void Should_Handle_Strings()
        {
            var testData =
                " StringField  \r\n" +
                " value1       \r\n" +
                "              \r\n" +
                " $empty$      \r\n" +
                "";

            var faker = new AutoFaker <Parent>();

            var result = faker.GenerateWithTemplate(testData);

            result.Should().HaveCount(3);
            result[0].StringField.Should().Be("value1");
            result[1].StringField.Should().BeNull();
            result[2].StringField.Should().BeEmpty();
        }
예제 #3
0
        public void Should_Handle_Dates()
        {
            var testData =
                " DateTimeField | NullableDateTimeField  \r\n" +
                " 2006-02-28    |                        \r\n" +
                " 2010-03-01    | 2011-04-08             \r\n" +
                "";

            var faker = new AutoFaker <Parent>();

            var result = faker.GenerateWithTemplate(testData);

            result.Should().HaveCount(2);
            result[0].DateTimeField.Should().Be(DateTime.Parse("2006-02-28"));
            result[0].NullableDateTimeField.Should().BeNull();
            result[1].DateTimeField.Should().Be(DateTime.Parse("2010-03-01"));
            result[1].NullableDateTimeField.Should().Be(DateTime.Parse("2011-04-08"));
        }
예제 #4
0
        public void Should_Treat_Missing_As_Empty_If_Specified()
        {
            var testData =
                " StringField  \r\n" +
                "        \r\n" +
                "";

            var binder = new TemplateBinder()
                         .TreatMissingAsEmpty()
                         .SetTypeConverter(ChildConverter());

            var faker = new AutoFaker <Parent>(binder);

            var result = faker.GenerateWithTemplate(testData);

            result.Should().HaveCount(1);
            result[0].StringField.Should().BeEmpty();
        }
예제 #5
0
        public void Should_AutoNumber_If_Specified()
        {
            var testData =
                " StringField  \r\n" +
                " value1       \r\n" +
                " value2       \r\n" +
                " value3       \r\n" +
                "";

            var faker = new AutoFaker <Parent>();

            faker.Identity(p => p.Id);

            var result = faker.GenerateWithTemplate(testData);

            result.Should().HaveCount(3);
            result[0].Id.Should().Be(0);
            result[1].Id.Should().Be(1);
            result[2].Id.Should().Be(2);
        }
예제 #6
0
        public void Should_Generate_Not_Specified_Fields()
        {
            var testData =
                " StringField  \r\n" +
                " value1       \r\n" +
                "";

            var faker = new AutoFaker <Parent>();

            faker.RuleFor(p => p.IntField, f => 999);

            var result = faker.GenerateWithTemplate(testData);

            result.Should().HaveCount(1);
            result[0].StringField.Should().Be("value1");
            result[0].IntField.Should().Be(999);

            //make sure child got generated
            result.Should().OnlyContain(r => r.Child != null);
        }
예제 #7
0
        public void Should_Handle_Int()
        {
            var testData =
                " IntField | NullableIntField  \r\n" +
                " 0        |                   \r\n" +
                " 1        | 0                 \r\n" +
                " 3        | 2                 \r\n" +
                "";

            var faker = new AutoFaker <Parent>();

            var result = faker.GenerateWithTemplate(testData);

            result.Should().HaveCount(3);
            result[0].IntField.Should().Be(0);
            result[0].NullableIntField.Should().BeNull();
            result[1].IntField.Should().Be(1);
            result[1].NullableIntField.Should().Be(0);
            result[2].IntField.Should().Be(3);
            result[2].NullableIntField.Should().Be(2);
        }
예제 #8
0
        public void Should_Translate_Space_In_Field_If_Specified()
        {
            var testData =
                " Space Field  | Date Space Field\r\n" +
                " test |  \r\n" +
                "   | 2002-09-08\r\n" +
                "";

            var binder = new TemplateBinder()
                         .SetPropertyNameSpaceDelimiter("_");

            var faker = new AutoFaker <Parent>(binder);

            var result = faker.GenerateWithTemplate(testData);

            result.Should().HaveCount(2);
            result[0].Space_Field.Should().Be("test");
            result[0].Date_Space_Field.Should().BeNull();
            result[1].Space_Field.Should().BeNull();
            result[1].Date_Space_Field.Should().Be(DateTime.Parse("2002-09-08"));
        }
예제 #9
0
        public void Should_Ignore_If_Specified()
        {
            var testData =
                " IntField  \r\n" +
                " 10       \r\n" +
                " 11       \r\n" +
                " 12       \r\n" +
                "";

            var faker = new AutoFaker <Parent>();

            faker.Ignore(p => p.StringField);

            var result = faker.GenerateWithTemplate(testData);

            result.Should().HaveCount(3);
            result.Should().OnlyContain(r => r.StringField == null);
            result[0].IntField.Should().Be(10);
            result[1].IntField.Should().Be(11);
            result[2].IntField.Should().Be(12);
        }
예제 #10
0
        public void Should_Handle_Decimal()
        {
            var testData =
                " DecimalField | NullableDecimalField  \r\n" +
                " 0            |                      \r\n" +
                " 1.23         | 0.01                 \r\n" +
                " 3.000354     | 2                    \r\n" +
                "";

            var faker = new AutoFaker <Parent>();

            var result = faker.GenerateWithTemplate(testData);

            result.Should().HaveCount(3);
            result[0].DecimalField.Should().Be(0);
            result[0].NullableDecimalField.Should().BeNull();
            result[1].DecimalField.Should().Be(1.23m);
            result[1].NullableDecimalField.Should().Be(0.01m);
            result[2].DecimalField.Should().Be(3.000354m);
            result[2].NullableDecimalField.Should().Be(2);
        }
예제 #11
0
        public void Should_Use_Type_Converter_If_Specified()
        {
            var testData =
                " Child  \r\n" +
                " Child1 \r\n" +
                " Child2 \r\n" +
                "        \r\n" +
                "";

            var binder = new TemplateBinder()
                         .SetTypeConverter(ChildConverter());

            var faker = new AutoFaker <Parent>(binder);

            var result = faker.GenerateWithTemplate(testData);

            result.Should().HaveCount(3);
            result[0].Child.Name.Should().Be("child1");
            result[1].Child.Name.Should().NotBe("child1"); //noting that in the converted for child2 we'd use a new faker instance
            result[1].Child.Name.Should().NotBeNull();
            result[2].Child.Should().BeNull();
        }