Exemplo n.º 1
0
        public void TestPrimaryOutput()
        {
            var input = new RowsBuilder()
                        .Row("id", 1).Field("name", "one")
                        .Row("id", 2).Field("name", "two")
                        .Row("id", 3).Field("name", "three")
                        .ToOperation();

            var xml = @"<tfl><processes>
<add name='process'>
    <connections>
        <add name='input' provider='internal' />
        <add name='output' provider='internal' />
    </connections>
    <entities>
        <add name='entity'>
            <fields>
                <add name='id' type='int' primary-key='true' />
                <add name='name' />
            </fields>
        </add>
    </entities>
</add>
</processes></tfl>".Replace('\'', '"');

            var process = ProcessFactory.Create(xml, new TestLogger())[0];

            process.Entities[0].InputOperation = input;
            var output = process.Execute();

            Assert.IsInstanceOf <IEnumerable <Row> >(output);
            Assert.AreEqual(3, output.Count());
        }
Exemplo n.º 2
0
        public void RelativeDateTime()
        {
            var date          = DateTime.Now;
            var badDate       = DateTime.Now.AddDays(3);
            var badDateString = badDate.ToString("yyyy-MM-dd");

            var input = new RowsBuilder()
                        .Row("in", date).Field("out", string.Empty)
                        .Row("in", badDate).Field("out", string.Empty).ToOperation();

            var validator = new RelativeDateTimeValidatorOperation(
                "in",
                "out",
                -1,
                DateTimeUnit.Day,
                RangeBoundaryType.Inclusive,
                1,
                DateTimeUnit.Day,
                RangeBoundaryType.Inclusive,
                false
                );

            var output = TestOperation(input, validator);

            Assert.AreEqual(true, output[0]["out"]);
            Assert.AreEqual(false, output[1]["out"]);
        }
Exemplo n.º 3
0
        public void StartsWith()
        {
            var input      = new RowsBuilder().Row("f1", "test").Row("f1", "abcd").ToOperation();
            var startsWith = new StartsWithValidatorOperation("f1", "abc", "out", false);

            var output = TestOperation(input, startsWith);

            Assert.IsFalse((bool)output[0]["out"]);
            Assert.IsTrue((bool)output[1]["out"]);
        }
Exemplo n.º 4
0
        public void ParseJson()
        {
            var input = new RowsBuilder()
                        .Row().Field("f1", "{\"i\":\"am\", \"valid\":true}").Field("out", null)
                        .Row().Field("f1", "{\"i\":\"have\", \"a\":\"Prob\"lem\"}").Field("out", null).ToOperation();
            var isJson = new JsonValidatorOperation("f1", "out", false);

            var rows = TestOperation(input, isJson);

            Assert.AreEqual(true, rows[0]["out"]);
            Assert.AreEqual(false, rows[1]["out"]);
        }
Exemplo n.º 5
0
        public void IsEmpty()
        {
            var input = new RowsBuilder()
                        .Row("in", "789A").Field("out", "")
                        .Row("in", "").Field("out", "").ToOperation();

            var validator = new IsEmptyOperation("in", "out");

            var output = TestOperation(input, validator);

            Assert.AreEqual(false, output[0]["out"]);
            Assert.AreEqual(true, output[1]["out"]);
        }
Exemplo n.º 6
0
        public void Regex()
        {
            var input = new RowsBuilder()
                        .Row("in", "789A").Field("out", "")
                        .Row("in", "hjd7").Field("out", "").ToOperation();

            var validator = new RegexValidatorOperation("in", "out", @"^7[0-9]{2}A$", false);

            var output = TestOperation(input, validator);

            Assert.AreEqual(true, output[0]["out"]);
            Assert.AreEqual(false, output[1]["out"]);
        }
Exemplo n.º 7
0
        public void Range()
        {
            var input = new RowsBuilder()
                        .Row("in", 5).Field("out", "")
                        .Row("in", 2).Field("out", "").ToOperation();

            var validator = new RangeValidatorOperation("in", "out", 3, RangeBoundaryType.Inclusive, 9, RangeBoundaryType.Inclusive, false);

            var output = TestOperation(input, validator);

            Assert.AreEqual(true, output[0]["out"]);
            Assert.AreEqual(false, output[1]["out"]);
        }
Exemplo n.º 8
0
        public void PropertyComparisonGreaterThanNumbers()
        {
            var input = new RowsBuilder()
                        .Row("in1", 59).Field("in2", 57).Field("out", "")
                        .Row("in1", 47).Field("in2", 47).Field("out", "").ToOperation();

            var validator = new PropertyComparisonValidatorOperation("in1", "in2", "out", "GreaterThan", false);

            var output = TestOperation(input, validator);

            Assert.AreEqual(true, output[0]["out"]);
            Assert.AreEqual(false, output[1]["out"]);
        }
Exemplo n.º 9
0
        public void PropertyComparison()
        {
            var input = new RowsBuilder()
                        .Row("in1", "77").Field("in2", null).Field("out", "")
                        .Row("in1", "78").Field("in2", "78").Field("out", "").ToOperation();

            var validator = new PropertyComparisonValidatorOperation("in1", "in2", "out", "Equal", false);

            var output = TestOperation(input, validator);

            Assert.AreEqual(false, output[0]["out"]);
            Assert.AreEqual(true, output[1]["out"]);
        }
Exemplo n.º 10
0
        public void NotNull()
        {
            var input = new RowsBuilder()
                        .Row("in", "x").Field("out", null)
                        .Row("in", null).Field("out", null).ToOperation();

            var notNullOperation = new NotNullValidatorOperation("in", "out", false);

            var output = TestOperation(input, notNullOperation);

            Assert.AreEqual(true, output[0]["out"]);
            Assert.AreEqual(false, output[1]["out"]);
        }
Exemplo n.º 11
0
        public void StringLength()
        {
            var input = new RowsBuilder()
                        .Row("in", "something").Field("out", string.Empty)
                        .Row("in", "some").Field("out", string.Empty).ToOperation();

            var validator = new StringLengthValidatorOperation("in", "out", 5, RangeBoundaryType.Inclusive, 10, RangeBoundaryType.Inclusive, false);

            var output = TestOperation(input, validator);

            Assert.AreEqual(true, output[0]["out"]);
            Assert.AreEqual(false, output[1]["out"]);
        }
Exemplo n.º 12
0
        public void Domain()
        {
            var input = new RowsBuilder()
                        .Row("in", "2").Field("out", null)
                        .Row("in", "4").Field("out", null).ToOperation();

            var domainOperation = new DomainValidatorOperation("in", "out", new[] { "1", "2", "3" }, false);

            var output = TestOperation(input, domainOperation);

            Assert.AreEqual(true, output[0]["out"]);
            Assert.AreEqual(false, output[1]["out"]);
        }
Exemplo n.º 13
0
        public void ContainsCharacters()
        {
            var input = new RowsBuilder()
                        .Row("f1", "test")
                        .Row("f1", "abcd").ToOperation();

            var containsCharacters = new ContainsCharactersValidatorOperation("f1", "o1", "abc", Libs.EnterpriseLibrary.Validation.Validators.ContainsCharacters.All, false);

            var output = TestOperation(input, containsCharacters);

            Assert.AreEqual(false, output[0]["o1"]);
            Assert.AreEqual(true, output[1]["o1"]);
        }
Exemplo n.º 14
0
        public void ParseJson2()
        {
            const string goodJson = "{\"updated\": \"Thu, 10 Sep 2009 08:45:12 +0000\", \"links\": [{\"href\": \"http://www.designvitality.com/blog/2007/09/photoshop-text-effect-tutorial/\", \"type\": \"text/html\", \"rel\": \"alternate\"}], \"title\": \"Photoshop Text Effects\", \"author\": \"hotpants1\", \"comments\": \"http://delicious.com/url/90c1b26e451a090452df8b947d6298cb\", \"guidislink\": false, \"title_detail\": {\"base\": \"http://feeds.delicious.com/v2/rss/recent?min=1&count=100\", \"type\": \"text/plain\", \"language\": null, \"value\": \"Photoshop Text Effects\"}, \"link\": \"http://www.designvitality.com/blog/2007/09/photoshop-text-effect-tutorial/\", \"source\": {}, \"wfw_commentrss\": \"http://feeds.delicious.com/v2/rss/url/90c1b26e451a090452df8b947d6298cb\", \"id\": \"http://delicious.com/url/90c1b26e451a090452df8b947d6298cb#hotpants1\", \"tags\": [{\"term\": \"photoshop\", \"scheme\": \"http://delicious.com/hotpants1/\", \"label\": null}]}";
            const string badJson  = "{\"updated\": \"Thu, 10 Sep 2009 08:45:12 +0000\", \"links\": [{\"href\": \"http://www.designvitality.com/blog/2007/09/photoshop-text-effect-tutorial/\", \"type\": \"text/html\", \"rel\": \"alternate\"}], \"title\": \"Photoshop Text Effects\", \"author\": \"hotpants1\", \"comments\": \"http://delicious.com/url/90c1b26e451a090452df8b947d6298cb\", \"guidislink\": false, \"title_detail\": {\"base\": \"http://feeds.delicious.com/v2/rss/recent?min=1&count=100\", \"type\": \"text/plain\", \"language\": null, \"value\": \"Photoshop Text Effects\"}, \"link\": \"http://www.designvitality.com/blog/2007/09/photoshop-text-effect-tutorial/\", \"source\": {}, \"wfw_commentrss\": \"http://feeds.delicious.com/v2/rss/url/90c1b26e451a090452df8b947d6298cb\", \"id\": \"http://delicious.com/url/90c1b26e451a090452df8b947d6298cb#hotpants1\", \"tags\": [{\"term\": \"photoshop\", scheme\": \"http://delicious.com/hotpants1/\", \"label\": null}]}";

            var input  = new RowsBuilder().Row().Field("f1", goodJson).Field("o1", "").Row().Field("f1", badJson).Field("o1", "").ToOperation();
            var isJson = new JsonValidatorOperation("f1", "out", false);

            var rows = TestOperation(input, isJson);

            Assert.AreEqual(true, rows[0]["out"]);
            Assert.AreEqual(false, rows[1]["out"]);
        }
Exemplo n.º 15
0
        public void TypeConversion()
        {
            var input = new RowsBuilder()
                        .Row("in", "9999-12-31").Field("out", string.Empty)
                        .Row("in", "10/32/2001").Field("out", string.Empty).ToOperation();

            var type = Common.ToSystemType("datetime");

            var validator = new TypeConversionValidatorOperation("in", "out", type, false, false);

            var output = TestOperation(input, validator);

            Assert.AreEqual(true, output[0]["out"]);
            Assert.AreEqual(false, output[1]["out"]);
        }
Exemplo n.º 16
0
        public void TestSecondaryOutputs()
        {
            var file1 = Path.GetTempFileName();
            var file2 = Path.GetTempFileName();

            var input = new RowsBuilder()
                        .Row("id", 1).Field("name", "one")
                        .Row("id", 2).Field("name", "two")
                        .Row("id", 3).Field("name", "three")
                        .ToOperation();

            var xml = string.Format(@"<tfl><processes>
<add name='process'>
    <connections>
        <add name='input' provider='internal' />
        <add name='output' provider='internal' />
        <add name='c1' provider='file' file='{0}' />
        <add name='c2' provider='file' file='{1}' />
    </connections>
    <entities>
        <add name='name'>
            <output>
                <add name='o1' connection='c1' run-field='name' run-value='two' />
                <add name='o2' connection='c2' run-field='id' run-operator='GreaterThan' run-type='int' run-value='1' />
            </output>
            <fields>
                <add name='id' type='int' primary-key='true' />
                <add name='name' />
            </fields>
        </add>
    </entities>
</add>
</processes></tfl>", file1, file2).Replace('\'', '"');

            var process = ProcessFactory.Create(xml, new TestLogger())[0];

            process.Entities[0].InputOperation = input;
            var rows = process.Execute();

            Assert.IsNotNull(rows);

            Assert.AreEqual(3, rows.Count());
            const int header = 1;

            Assert.AreEqual(1, File.ReadAllLines(file1).Length - header);
            Assert.AreEqual(2, File.ReadAllLines(file2).Length - header);
        }
Exemplo n.º 17
0
        public void DateTimeRange()
        {
            var goodDate  = new DateTime(2013, 6, 2);
            var badDate   = new DateTime(2011, 1, 13);
            var startDate = new DateTime(2013, 1, 1, 0, 0, 0, 001);
            var endDate   = new DateTime(2013, 12, 31, 23, 59, 59, 998);

            var input = new RowsBuilder()
                        .Row("f1", goodDate)
                        .Row("f1", badDate).ToOperation();
            var dateTimeRange = new DateTimeRangeValidatorOperation("f1", "o1", startDate, RangeBoundaryType.Inclusive, endDate, RangeBoundaryType.Inclusive, false);

            var output = TestOperation(input, dateTimeRange);

            Assert.AreEqual(true, output[0]["o1"]);
            Assert.AreEqual(false, output[1]["o1"]);
        }
Exemplo n.º 18
0
        public void EqualsAValue()
        {
            var rows = new RowsBuilder()
                       .Row("in", "789A")
                       .Row("in", "x").ToOperation();

            var parameters = new ParametersBuilder()
                             .Parameter("other", new Parameter("other", "789A")
            {
                SimpleType = "string"
            })
                             .ToParameters();

            var validator = new EqualsOperation("in", parameters);

            var output = TestOperation(rows, validator);

            Assert.AreEqual(true, output[0]["in"]);
            Assert.AreEqual(false, output[1]["in"]);
        }
Exemplo n.º 19
0
        public void DomainReturningIsValid()
        {
            var input = new RowsBuilder()
                        .Row("in", 2)
                        .Row("in", 4).ToOperation();

            var xml = @"
<cfg>
    <processes>
        <add name='process'>
            <connections>
                <add name='input' provider='internal' />
                <add name='output' provider='internal' />
            </connections>
            <entities>
                <add name='entity'>
                    <fields>
                        <add name='in' type='int' />
                    </fields>
                    <calculated-fields>
                        <add name='out' type='bool'>
                            <transforms>
                                <add method='domain' domain='1,2,3' parameter='in' />
                            </transforms>
                        </add>
                    </calculated-fields>
                </add>
            </entities>
        </add>
    </processes>    
</cfg>
".Replace('\'', '"');

            var process = ProcessFactory.Create(xml, new TestLogger())[0];

            process.Entities[0].InputOperation = input;
            var output = process.Execute().ToArray();

            Assert.AreEqual(true, output[0]["out"]);
            Assert.AreEqual(false, output[1]["out"]);
        }