Exemplo n.º 1
0
        public void Javascript() {
            const int expected = 12;

            var input = new RowsBuilder().Row("x", 3).Field("y", 4).ToOperation();
            var scripts = new Dictionary<string, Script>() { { "script", new Script("script", "function multiply(x,y) { return x*y; }", "") } };
            var parameters = new ParametersBuilder().Parameters("x", "y").ToParameters();
            var javascript = new JavascriptOperation("o1", "multiply(x,y)", scripts, parameters, new TestLogger());
            var output = TestOperation(input, javascript);

            Assert.AreEqual(expected, output[0]["o1"]);
        }
Exemplo n.º 2
0
        public void JavascriptWithDates() {
            const string minuteDiff = @"
                function minuteDiff(orderStatus, start, end) {
                    if (orderStatus == 'Completed' || orderStatus == 'Problematic') {

                        var answer = 0;
                        if (start.getFullYear() != 9999 && end.getFullYear() != 9999) {
                            var ms = Math.abs(start - end);
                            answer = Math.round((ms / 1000) / 60);
                        }

                        return answer > 60 ? 60 : answer;

                    } else {
                        return 0;
                    }
                }";

            var input = new RowsBuilder()
                .Row("OrderStatus", "Completed")
                    .Field("StartDate", DateTime.Now.AddMinutes(-30.0))
                    .Field("EndDate", DateTime.Now)
                .Row("OrderStatus", "Problematic")
                    .Field("StartDate", DateTime.Now.AddMinutes(-29.0))
                    .Field("EndDate", DateTime.Now)
                .Row("OrderStatus", "Problematic")
                    .Field("StartDate", DateTime.Now.AddMinutes(-78.0))
                    .Field("EndDate", DateTime.Now)
                .Row("OrderStatus", "x")
                    .Field("StartDate", DateTime.Now.AddMinutes(-20.0))
                    .Field("EndDate", DateTime.Now)
                .ToOperation();

            var scripts = new Dictionary<string, Script>() { { "script", new Script("script", minuteDiff, "") } };
            var parameters = new ParametersBuilder().Parameters("OrderStatus", "StartDate", "EndDate").ToParameters();
            var javascript = new JavascriptOperation("o1", "minuteDiff(OrderStatus,StartDate,EndDate);", scripts, parameters, new TestLogger());
            var output = TestOperation(input, javascript);

            Assert.AreEqual(30, output[0]["o1"]);
            Assert.AreEqual(29, output[1]["o1"]);
            Assert.AreEqual(60, output[2]["o1"]);
            Assert.AreEqual(0, output[3]["o1"]);
        }
Exemplo n.º 3
0
        public void JsonWithJavascript() {
            var input = new RowsBuilder()
                .Row("x", "[{\"value\":false},{\"value\":true}]")
                .ToOperation();
            var parameters = new ParametersBuilder()
                .Parameter("x")
                .ToParameters();
            var js = new JavascriptOperation("out", @"
                JSON.parse(x)[1].value",
                new Dictionary<string, Script>(),
                parameters,
                new TestLogger()
            );
            var output = TestOperation(input, js);

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