Skip to content

Commit 1a99c0f

Browse files
committed
Improved tests of string operations' compilers
Also moved String members compiler tests from Linq.SelectTest to proper class
1 parent f8b6cc5 commit 1a99c0f

2 files changed

Lines changed: 499 additions & 144 deletions

File tree

Orm/Xtensive.Orm.Tests/Linq/SelectTest.cs

Lines changed: 0 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -768,118 +768,6 @@ where invoice.InvoiceId > 0 && invoice.InvoiceId < 50
768768
}
769769
}
770770

771-
[Test]
772-
public void SelectStringIndexerTest()
773-
{
774-
var result =
775-
Session.Query.All<Customer>()
776-
.Select(c => new {
777-
String = c.CustomerId,
778-
Char0 = c.Email[0],
779-
Char1 = c.Email[1],
780-
Char2 = c.Email[2],
781-
Char3 = c.Email[3],
782-
Char4 = c.Email[4],
783-
})
784-
.ToArray()
785-
.OrderBy(item => item.String)
786-
.ToArray();
787-
var expected = Customers
788-
.Select(c => new {
789-
String = c.CustomerId,
790-
Char0 = c.Email[0],
791-
Char1 = c.Email[1],
792-
Char2 = c.Email[2],
793-
Char3 = c.Email[3],
794-
Char4 = c.Email[4],
795-
})
796-
.OrderBy(item => item.String)
797-
.ToArray();
798-
Assert.AreEqual(expected.Length, result.Length);
799-
for (var i = 0; i < expected.Length; i++) {
800-
Assert.AreEqual(expected[0].String, result[0].String);
801-
Assert.AreEqual(expected[0].Char0, result[0].Char0);
802-
Assert.AreEqual(expected[0].Char1, result[0].Char1);
803-
Assert.AreEqual(expected[0].Char2, result[0].Char2);
804-
Assert.AreEqual(expected[0].Char3, result[0].Char3);
805-
Assert.AreEqual(expected[0].Char4, result[0].Char4);
806-
}
807-
}
808-
809-
[Test]
810-
public void SelectIndexOfTest()
811-
{
812-
var _char = 'A';
813-
var result =
814-
Session.Query.All<Customer>()
815-
.Select(c => new {
816-
String = c.FirstName,
817-
IndexOfChar = c.FirstName.IndexOf(_char),
818-
IndexOfCharStart = c.FirstName.IndexOf(_char, 1),
819-
IndexOfCharStartCount = c.FirstName.IndexOf(_char, 1, 1),
820-
IndexOfString = c.FirstName.IndexOf(_char.ToString()),
821-
IndexOfStringStart = c.FirstName.IndexOf(_char.ToString(), 1),
822-
IndexOfStringStartCount = c.FirstName.IndexOf(_char.ToString(), 1, 1)
823-
})
824-
.ToArray()
825-
.OrderBy(item => item.String)
826-
.ToArray();
827-
var expected = Customers
828-
.Select(c => new {
829-
String = c.FirstName,
830-
IndexOfChar = c.FirstName.IndexOf(_char),
831-
IndexOfCharStart = c.FirstName.IndexOf(_char, 1),
832-
IndexOfCharStartCount = c.FirstName.IndexOf(_char, 1, 1),
833-
IndexOfString = c.FirstName.IndexOf(_char.ToString()),
834-
IndexOfStringStart = c.FirstName.IndexOf(_char.ToString(), 1),
835-
IndexOfStringStartCount = c.FirstName.IndexOf(_char.ToString(), 1, 1)
836-
})
837-
.OrderBy(item => item.String)
838-
.ToArray();
839-
Assert.AreEqual(expected.Length, result.Length);
840-
for (var i = 0; i < expected.Length; i++) {
841-
Assert.AreEqual(expected[i].String, result[i].String);
842-
Assert.AreEqual(expected[i].IndexOfChar, result[i].IndexOfChar);
843-
Assert.AreEqual(expected[i].IndexOfCharStart, result[i].IndexOfCharStart);
844-
Assert.AreEqual(expected[i].IndexOfCharStartCount, result[i].IndexOfCharStartCount);
845-
Assert.AreEqual(expected[i].IndexOfString, result[i].IndexOfString);
846-
Assert.AreEqual(expected[i].IndexOfStringStart, result[i].IndexOfStringStart);
847-
Assert.AreEqual(expected[i].IndexOfStringStartCount, result[i].IndexOfStringStartCount);
848-
}
849-
}
850-
851-
[Test]
852-
public void SelectStringContainsTest1()
853-
{
854-
Require.ProviderIs(StorageProvider.Sqlite | StorageProvider.SqlServer | StorageProvider.MySql);
855-
var result =
856-
Session.Query.All<Customer>()
857-
.Where(c => c.FirstName.Contains('L'))
858-
.OrderBy(c => c.CustomerId)
859-
.ToArray();
860-
var expected = Customers
861-
.Where(c => c.FirstName.Contains('L') || c.FirstName.Contains('l'))
862-
.OrderBy(c => c.CustomerId)
863-
.ToArray();
864-
Assert.IsTrue(expected.SequenceEqual(result));
865-
}
866-
867-
[Test]
868-
public void SelectStringContainsTest2()
869-
{
870-
Require.ProviderIsNot(StorageProvider.Sqlite | StorageProvider.SqlServer | StorageProvider.MySql);
871-
var result =
872-
Session.Query.All<Customer>()
873-
.Where(c => c.FirstName.Contains('L'))
874-
.OrderBy(c => c.CustomerId)
875-
.ToArray();
876-
var expected = Customers
877-
.Where(c => c.FirstName.Contains('L'))
878-
.OrderBy(c => c.CustomerId)
879-
.ToArray();
880-
Assert.IsTrue(expected.SequenceEqual(result));
881-
}
882-
883771
[Test]
884772
public void SelectDateTimeTimeSpanTest()
885773
{

0 commit comments

Comments
 (0)