Пример #1
0
 public void CastReturnTypeToInt32_returns_false_when_function_is_in_list_to_need_cast_but_return_type_does_not_match()
 {
     Assert.False(
         SqlFunctionCallHandler.CastReturnTypeToInt32(
             CreateMockSqlGenerator("nope").Object,
             CreateMockDbFunctionExpression("SqlServer.PATINDEX", PrimitiveTypeKind.Int32).Object));
 }
Пример #2
0
 public void CastReturnTypeToInt32_returns_true_when_function_is_in_list_to_need_cast()
 {
     Assert.True(
         SqlFunctionCallHandler.CastReturnTypeToInt32(
             CreateMockSqlGenerator("ntext").Object,
             CreateMockDbFunctionExpression("SqlServer.PATINDEX", PrimitiveTypeKind.Int32).Object));
 }
        private static string BuildSqlForDateTimeOffset(DateTimeOffset dateTimeOffset, SqlVersion sqlVersion)
        {
            var builder = new StringBuilder();

            var sqlGenerator = new SqlGenerator(sqlVersion);

            var functionExpression = EdmFunctions.CreateDateTimeOffset(
                DbExpression.FromInt32(dateTimeOffset.Year),
                DbExpression.FromInt32(dateTimeOffset.Month),
                DbExpression.FromInt32(dateTimeOffset.Day),
                DbExpression.FromInt32(dateTimeOffset.Hour),
                DbExpression.FromInt32(dateTimeOffset.Minute),
                DbExpression.FromInt32(dateTimeOffset.Second),
                DbExpression.FromInt32(Convert.ToInt32(dateTimeOffset.Offset.TotalMinutes)));

            var sqlFragment = SqlFunctionCallHandler.GenerateFunctionCallSql(
                sqlGenerator, functionExpression);

            using (var sqlWriter = new SqlWriter(builder))
            {
                sqlFragment.WriteSql(sqlWriter, sqlGenerator);
            }

            return(builder.ToString());
        }
Пример #4
0
 public void HandleDatepartDateFunction_throws_when_argument_does_not_contain_a_valid_date_part()
 {
     Assert.Equal(
         Strings.SqlGen_InvalidDatePartArgumentValue("mp4-27", "My", "Function"),
         Assert.Throws <InvalidOperationException>(
             () =>
             SqlFunctionCallHandler.HandleDatepartDateFunction(
                 null, CreateMockDbFunctionExpression("My.Function", PrimitiveTypeKind.String, "mp4-27").Object)).Message);
 }
Пример #5
0
 public void HandleDatepartDateFunction_throws_when_argument_is_not_a_string()
 {
     Assert.Equal(
         Strings.SqlGen_InvalidDatePartArgumentExpression("My", "Function"),
         Assert.Throws <InvalidOperationException>(
             () =>
             SqlFunctionCallHandler.HandleDatepartDateFunction(
                 null, CreateMockDbFunctionExpression("My.Function", PrimitiveTypeKind.String, 69).Object)).Message);
 }
Пример #6
0
            public void HandleDatepartDateFunction_throws_when_argument_is_not_a_constant()
            {
                var mockExpression = new Mock <DbFunctionExpression>();

                mockExpression.Setup(m => m.Function).Returns(CreateMockEdmFunction("My.Function").Object);
                mockExpression.Setup(m => m.Arguments).Returns(new[] { new Mock <DbExpression>().Object });

                Assert.Equal(
                    Strings.SqlGen_InvalidDatePartArgumentExpression("My", "Function"),
                    Assert.Throws <InvalidOperationException>(
                        () => SqlFunctionCallHandler.HandleDatepartDateFunction(null, mockExpression.Object)).Message);
            }
Пример #7
0
            public void HandleDatepartDateFunction_builds_SQL_for_the_given_date_part_with_arguments()
            {
                var builder = new StringBuilder();

                using (var writer = new SqlWriter(builder))
                {
                    SqlFunctionCallHandler.HandleDatepartDateFunction(
                        null, CreateMockDbFunctionExpression("My.Function", PrimitiveTypeKind.String, "iso_week", "One", "Two").Object)
                    .WriteSql(writer, null);

                    Assert.Equal("[My].[Function](iso_week, One, Two)", builder.ToString());
                }
            }
        private static string BuildSqlForTruncateTime(DateTimeOffset dateTimeOffset, SqlVersion sqlVersion)
        {
            var builder = new StringBuilder();

            var sqlGenerator = new SqlGenerator(sqlVersion);

            var functionExpression = EdmFunctions.TruncateTime(
                DbExpression.FromDateTimeOffset(dateTimeOffset));

            var sqlFragment = SqlFunctionCallHandler.GenerateFunctionCallSql(
                sqlGenerator, functionExpression);

            using (var sqlWriter = new SqlWriter(builder))
            {
                sqlFragment.WriteSql(sqlWriter, sqlGenerator);
            }

            return(builder.ToString());
        }
Пример #9
0
 public void CastReturnTypeToInt32_returns_false_when_function_is_not_in_list_that_needs_this_cast()
 {
     Assert.False(
         SqlFunctionCallHandler.CastReturnTypeToInt32(
             new SqlGenerator(), CreateMockDbFunctionExpression("Edm.NotOnYourNelly", PrimitiveTypeKind.Int32).Object));
 }
Пример #10
0
 public void CastReturnTypeToInt64_returns_true_when_function_is_in_list_to_need_cast()
 {
     Assert.True(
         SqlFunctionCallHandler.CastReturnTypeToInt64(
             CreateMockDbFunctionExpression("SqlServer.CHARINDEX", PrimitiveTypeKind.Int64).Object));
 }
Пример #11
0
 public void CastReturnTypeToSingle_returns_false_when_function_is_in_list_to_need_cast_but_return_type_does_not_match()
 {
     Assert.False(
         SqlFunctionCallHandler.CastReturnTypeToSingle(
             CreateMockDbFunctionExpression("Edm.Floor", PrimitiveTypeKind.Double).Object));
 }
Пример #12
0
 public void CastReturnTypeToSingle_returns_true_when_function_is_in_list_to_need_cast()
 {
     Assert.True(
         SqlFunctionCallHandler.CastReturnTypeToSingle(
             CreateMockDbFunctionExpression("Edm.Floor", PrimitiveTypeKind.Single).Object));
 }
Пример #13
0
 public void CastReturnTypeToSingle_returns_false_when_function_is_not_in_list_that_needs_this_cast()
 {
     Assert.False(
         SqlFunctionCallHandler.CastReturnTypeToSingle(
             CreateMockDbFunctionExpression("Edm.NotOnYourNelly", PrimitiveTypeKind.Single).Object));
 }