Example #1
0
        public void ExpressionPropertyTests_StringExpression()
        {
            var data = new
            {
                test = "joe"
            };
            var str = new StringExpression("test");

            Assert.AreEqual("=`test`", str.ExpressionText);
            Assert.IsNull(str.Value);
            Assert.AreEqual(str.ToString(), JsonConvert.DeserializeObject <StringExpression>(JsonConvert.SerializeObject(str, settings: settings), settings: settings).ToString());
            var(result, error) = str.TryGetValue(data);
            Assert.AreEqual("test", result);
            Assert.IsNull(error);

            str = new StringExpression("=test");
            Assert.AreEqual("=test", str.ExpressionText);
            Assert.IsNull(str.Value);
            Assert.AreEqual(str.ToString(), JsonConvert.DeserializeObject <StringExpression>(JsonConvert.SerializeObject(str, settings: settings), settings: settings).ToString());
            (result, error) = str.TryGetValue(data);
            Assert.AreEqual("joe", result);
            Assert.IsNull(error);

            str = new StringExpression("Hello ${test}");
            Assert.AreEqual("=`Hello ${test}`", str.ExpressionText);
            Assert.IsNull(str.Value);
            Assert.AreEqual(str.ToString(), JsonConvert.DeserializeObject <StringExpression>(JsonConvert.SerializeObject(str, settings: settings), settings: settings).ToString());
            (result, error) = str.TryGetValue(data);
            Assert.AreEqual("Hello joe", result);
            Assert.IsNull(error);
        }
Example #2
0
        public void ExpressionPropertyTests_StringExpression()
        {
            var data = new
            {
                test = "joe"
            };
            var str = new StringExpression("test");

            Assert.Equal("=`test`", str.ExpressionText);
            Assert.Null(str.Value);
            Assert.Equal(str.ToString(), JsonConvert.DeserializeObject <StringExpression>(JsonConvert.SerializeObject(str, settings: settings), settings: settings).ToString());
            var(result, error) = str.TryGetValue(data);
            Assert.Equal("test", result);
            Assert.Null(error);

            str = new StringExpression("=test");
            Assert.Equal("=test", str.ExpressionText);
            Assert.Null(str.Value);
            Assert.Equal(str.ToString(), JsonConvert.DeserializeObject <StringExpression>(JsonConvert.SerializeObject(str, settings: settings), settings: settings).ToString());
            (result, error) = str.TryGetValue(data);
            Assert.Equal("joe", result);
            Assert.Null(error);

            str = new StringExpression("Hello ${test}");
            Assert.Equal("=`Hello ${test}`", str.ExpressionText);
            Assert.Null(str.Value);
            Assert.Equal(str.ToString(), JsonConvert.DeserializeObject <StringExpression>(JsonConvert.SerializeObject(str, settings: settings), settings: settings).ToString());
            (result, error) = str.TryGetValue(data);
            Assert.Equal("Hello joe", result);
            Assert.Null(error);

            // slashes are the chars
            str             = new StringExpression("c:\\test\\test\\test");
            (result, error) = str.TryGetValue(data);
            Assert.Equal("c:\\test\\test\\test", result);
            Assert.Null(error);

            // tabs are the chars
            str             = new StringExpression("c:\test\test\test");
            (result, error) = str.TryGetValue(data);
            Assert.Equal("c:\test\test\test", result);
            Assert.Null(error);

            // test backtick in stringExpression
            str = new StringExpression("test `name");
            Assert.Equal("test `name", str.TryGetValue(data).Value);

            str = new StringExpression("test //`name");
            Assert.Equal("test //`name", str.TryGetValue(data).Value);
        }
Example #3
0
        internal static string GetValueOrNull(this StringExpression expression, DialogStateManager state)
        {
            if (expression != null)
            {
                var(value, valueError) = expression.TryGetValue(state);
                if (valueError != null)
                {
                    throw new InvalidOperationException($"Expression evaluation resulted in an error. Expression: {expression.ExpressionText}. Error: {valueError}");
                }

                return(value as string);
            }

            return(null);
        }
        private string GetValueOrNull(DialogContext dc, StringExpression stringExpression)
        {
            if (stringExpression != null)
            {
                var(value, valueError) = stringExpression.TryGetValue(dc.State);
                if (valueError != null)
                {
                    throw new Exception($"Expression evaluation resulted in an error. Expression: {stringExpression.ExpressionText}. Error: {valueError}");
                }

                return(value as string);
            }

            return(null);
        }