You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.5 KiB
C#
80 lines
2.5 KiB
C#
/*
|
|
Priority low test
|
|
Custom functions implementation
|
|
*/
|
|
|
|
using System;
|
|
using System.Linq;
|
|
using EFCore.Jet.Integration.Test.Model02;
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
|
|
namespace EFCore.Jet.Integration.Test
|
|
{
|
|
[TestClass]
|
|
public class BuiltInFunctionsTest
|
|
{
|
|
private const string MYSTRINGVALUE = " My current string with leading and trailing spaces ";
|
|
private const double MYDOUBLEVALUE = -123.456789;
|
|
|
|
[TestInitialize]
|
|
public void Initialize()
|
|
{
|
|
|
|
Context context = new Context(SetUpCodeFirst.Connection);
|
|
|
|
for (int i = 0; i < 30; i++)
|
|
{
|
|
TableWithSeveralFieldsType table = new TableWithSeveralFieldsType()
|
|
{
|
|
MyInt = new Random().Next(300),
|
|
MyDouble = MYDOUBLEVALUE,
|
|
MyString = MYSTRINGVALUE,
|
|
MyDateTime = new DateTime(1969, 09, 15, 20, 03, 19)
|
|
};
|
|
context.TableWithSeveralFieldsTypes.Add(table);
|
|
context.SaveChanges();
|
|
}
|
|
|
|
context.Dispose();
|
|
}
|
|
|
|
[TestMethod]
|
|
public void GroupByFunctions()
|
|
{
|
|
|
|
Context context = new Context(SetUpCodeFirst.Connection);
|
|
|
|
var myGroupBy1 = context.TableWithSeveralFieldsTypes
|
|
.GroupBy(g => g.MyString, r => r.MyInt)
|
|
.Select(g => new { Group = g.Key, MyFirstInt = g.JetFirst() }).First();
|
|
Console.WriteLine("{0} {1}", myGroupBy1.Group, myGroupBy1.MyFirstInt);
|
|
|
|
var myGroupBy2 = context.TableWithSeveralFieldsTypes
|
|
.GroupBy(g => g.MyString, r => r.MyInt)
|
|
.Select(g => new { Group = g.Key, MyLastInt = JetFunctions.JetLast(g) }).First();
|
|
Console.WriteLine("{0} {1}", myGroupBy2.Group, myGroupBy2.MyLastInt);
|
|
|
|
context.Dispose();
|
|
|
|
}
|
|
|
|
[TestMethod]
|
|
public void StringFunctions()
|
|
{
|
|
|
|
Context context = new Context(SetUpCodeFirst.Connection);
|
|
|
|
var myGroupBy2 = context.TableWithSeveralFieldsTypes
|
|
.GroupBy(g => g.MyString, r => r.MyInt)
|
|
.Select(g => new { Group = JetFunctions.LCase(g.Key), MyLastInt = JetFunctions.JetLast(g) }).First();
|
|
Console.WriteLine("{0} {1}", myGroupBy2.Group, myGroupBy2.MyLastInt);
|
|
Assert.AreEqual(myGroupBy2.Group, myGroupBy2.Group.ToLower());
|
|
|
|
context.Dispose();
|
|
|
|
}
|
|
|
|
|
|
}
|
|
}
|