public void TestSkipTake() { foreach (IDataService dataService in DataServices) { //TODO: Fix OracleDataService error. if (dataService is OracleDataService) { continue; } // Arrange. var ds = (SQLDataService)dataService; Порода породаДикая = new Порода() { Название = "Дикая" }; Порода породаПерсидская = new Порода() { Название = "Персидская" }; Порода породаБезПороды = new Порода() { Название = "БезПороды" }; Порода породаСибирская = new Порода() { Название = "Сибирская" }; Порода породаСиамская = new Порода() { Название = "Сиамская" }; Порода породаРусская = new Порода() { Название = "Русская" }; var obj = new ICSSoft.STORMNET.DataObject[] { породаДикая, породаПерсидская, породаБезПороды, породаСибирская, породаСиамская, породаРусская }; ds.UpdateObjects(ref obj); var expected = ds.Query <Порода>(Порода.Views.ПородаE).Skip(0).ToArray(); var actual1 = ds.Query <Порода>(Порода.Views.ПородаE).Skip(2).Take(3).Skip(2).ToArray(); Assert.Equal(expected[4].__PrimaryKey, actual1[0].__PrimaryKey); var actual2 = ds.Query <Порода>(Порода.Views.ПородаE).Skip(2).Take(3).ToArray(); Assert.Equal(expected[2].__PrimaryKey, actual2[0].__PrimaryKey); Assert.Equal(expected[3].__PrimaryKey, actual2[1].__PrimaryKey); Assert.Equal(expected[4].__PrimaryKey, actual2[2].__PrimaryKey); var actual3 = ds.Query <Порода>(Порода.Views.ПородаE).Take(3).Skip(1).ToArray(); Assert.Equal(expected[1].__PrimaryKey, actual3[0].__PrimaryKey); Assert.Equal(expected[2].__PrimaryKey, actual3[1].__PrimaryKey); } }
public void AgregatorPropertyAddToViewTest() { foreach (IDataService dataService in DataServices) { var ds = (SQLDataService)dataService; if (ds is OracleDataService) { // TODO: Fix multithreading support for OracleDataService and Long names. continue; } ds.OnGenerateSQLSelect -= ThreadTesting_OnGenerateSQLSelect; ds.OnGenerateSQLSelect += ThreadTesting_OnGenerateSQLSelect; output.WriteLine($"start {ds.GetType().Name}"); Порода порода = new Порода() { Название = "Беспородная" }; Кошка кошка = new Кошка() { Кличка = nameof(AgregatorPropertyAddToViewTest), Порода = порода, ДатаРождения = NullableDateTime.Now, Тип = ТипКошки.Дикая }; кошка.Лапа.Add(new Лапа() { Номер = 1 }); ds.UpdateObject(кошка); MultiThreadingTestTool multiThreadingTestTool = new MultiThreadingTestTool(MultiThreadMethod); multiThreadingTestTool.StartThreads(150, ds); var exception = multiThreadingTestTool.GetExceptions(); if (exception != null) { foreach (var item in exception.InnerExceptions) { output.WriteLine(item.Value.ToString()); } throw exception.InnerException; } ds.OnGenerateSQLSelect -= ThreadTesting_OnGenerateSQLSelect; кошка.SetStatus(ObjectStatus.Deleted); порода.SetStatus(ObjectStatus.Deleted); DataObject[] dataObjsForDel = new DataObject[] { кошка, порода }; ds.UpdateObjects(ref dataObjsForDel); } }
public void GetLcsTestDataObjectWithDynamicView() { var порода = new Порода(); var testProvider = new TestLcsQueryProvider <Кошка>(); new Query <Кошка>(testProvider).Where(o => порода.Equals(o.Порода)).ToArray(); var queryExpression = testProvider.InnerExpression; var actual = LinqToLcs.GetLcs(queryExpression, typeof(Кошка)); Assert.NotNull(actual.View); Assert.Equal(1, actual.View.Properties.Count()); Assert.Equal(Information.ExtractPropertyPath <Кошка>(x => x.Порода), actual.View.Properties[0].Name); }
public void GetLcsTestDataObjectWithDynamicView2() { var порода = new Порода { Название = "тест" }; var testProvider = new TestLcsQueryProvider <Кошка>(); new Query <Кошка>(testProvider).Where(o => o.Порода.Название.Equals(порода.Название)).ToArray(); var queryExpression = testProvider.InnerExpression; var actual = LinqToLcs.GetLcs(queryExpression, typeof(Кошка)); Assert.NotNull(actual.View); Assert.Equal(2, actual.View.Properties.Count()); Assert.True(actual.View.Properties.Select(x => x.Name).Contains(Information.ExtractPropertyPath <Кошка>(x => x.Порода))); Assert.True(actual.View.Properties.Select(x => x.Name).Contains(Information.ExtractPropertyPath <Кошка>(x => x.Порода.Название))); }
public void GetLcsTestDataObject() { var порода = new Порода(); var testProvider = new TestLcsQueryProvider <Кошка>(); new Query <Кошка>(testProvider).Where(o => порода.Equals(o.Порода)).ToArray(); Expression queryExpression = testProvider.InnerExpression; var expected = new LoadingCustomizationStruct(null) { LimitFunction = ldef.GetFunction(ldef.funcEQ, порода, new VariableDef(ldef.DataObjectType, "Порода")) }; LoadingCustomizationStruct actual = LinqToLcs.GetLcs(queryExpression, Utils.GetDefaultView(typeof(Кошка))); Assert.True(Equals(expected, actual)); }
public void GetLcsMasterEqualsNull() { var guid = Guid.NewGuid(); var порода1 = new Порода() { __PrimaryKey = guid }; var testProvider = new TestLcsQueryProvider <Кошка>(); new Query <Кошка>(testProvider).Where(o => o.Порода.__PrimaryKey.Equals(null)).ToArray(); Expression queryExpression = testProvider.InnerExpression; LoadingCustomizationStruct actual = LinqToLcs.GetLcs(queryExpression, Utils.GetDefaultView(typeof(Кошка))); var expected = new LoadingCustomizationStruct(null) { LimitFunction = ldef.GetFunction(ldef.funcEQ, new VariableDef(ldef.GuidType, "Порода"), null) }; Assert.True(Equals(expected, actual)); }
public void GetLcsMasterMemberTest() { var порода = new Порода { Название = "тест" }; var testProvider = new TestLcsQueryProvider <Кошка>(); new Query <Кошка>(testProvider).Where(o => o.Порода.Название.Equals(порода.Название)).ToArray(); Expression queryExpression = testProvider.InnerExpression; var expected = new LoadingCustomizationStruct(null) { LimitFunction = ldef.GetFunction( ldef.funcEQ, new VariableDef(ldef.StringType, "Порода.Название"), порода.Название) }; LoadingCustomizationStruct actual = LinqToLcs.GetLcs(queryExpression, Utils.GetDefaultView(typeof(Кошка))); Assert.True(Equals(expected, actual)); }
public void DeleteUpdateAssociationTest() { foreach (IDataService dataService in DataServices) { // Arrange. SQLDataService ds = dataService as SQLDataService; //TODO: Fix OracleDataService error. if (dataService is OracleDataService) { continue; } var masterBreedType = new ТипПороды { Название = "тип породы1", ДатаРегистрации = DateTime.Now }; var innerMasterBreed = new Порода { Название = "порода1", ТипПороды = masterBreedType }; var innerMasterCat = new Кошка { Кличка = "кошка", ДатаРождения = (NullableDateTime)DateTime.Now, Тип = ТипКошки.Дикая, Порода = innerMasterBreed }; var innerKitten = new Котенок { КличкаКотенка = "котеночек", Кошка = innerMasterCat }; // Act ds.UpdateObject(innerKitten); LoadingCustomizationStruct lcsKitten = LoadingCustomizationStruct.GetSimpleStruct(typeof(Котенок), Котенок.Views.КотенокE); LoadingCustomizationStruct lcsCat = LoadingCustomizationStruct.GetSimpleStruct(typeof(Кошка), Кошка.Views.КошкаE); LoadingCustomizationStruct lcsBreed = LoadingCustomizationStruct.GetSimpleStruct(typeof(Порода), Порода.Views.ПородаE); LoadingCustomizationStruct lcsBreedType = LoadingCustomizationStruct.GetSimpleStruct(typeof(ТипПороды), ТипПороды.Views.ТипПородыE); DataObject[] dataObjectsKitten = ds.LoadObjects(lcsKitten); DataObject[] dataObjectsCats = ds.LoadObjects(lcsCat); DataObject[] dataObjectsBreed = ds.LoadObjects(lcsBreed); DataObject[] dataObjectsBreedTypes = ds.LoadObjects(lcsBreedType); int countKittenBefore = ds.GetObjectsCount(lcsKitten); int countCatBefore = ds.GetObjectsCount(lcsCat); int countBreedBefore = ds.GetObjectsCount(lcsBreed); int countBreedTypeBefore = ds.GetObjectsCount(lcsBreed); List <DataObject> objectsForUpdateList = new List <DataObject>(); foreach (Котенок котенок in dataObjectsKitten) { котенок.SetStatus(ObjectStatus.Deleted); objectsForUpdateList.Add(котенок); } foreach (Кошка кошка in dataObjectsCats) { кошка.SetStatus(ObjectStatus.Deleted); objectsForUpdateList.Add(кошка); } foreach (Порода порода in dataObjectsBreed) { порода.SetStatus(ObjectStatus.Deleted); objectsForUpdateList.Add(порода); } foreach (ТипПороды типПороды in dataObjectsBreedTypes) { типПороды.SetStatus(ObjectStatus.Deleted); objectsForUpdateList.Add(типПороды); } DataObject[] objectsForUpdate = objectsForUpdateList.ToArray(); ds.UpdateObjects(ref objectsForUpdate); int countKittenAfter = ds.GetObjectsCount(lcsKitten); int countCatAfter = ds.GetObjectsCount(lcsCat); int countBreedAfter = ds.GetObjectsCount(lcsBreed); int countBreedTypeAfter = ds.GetObjectsCount(lcsBreedType); // Assert Assert.Equal(1, countKittenBefore); Assert.Equal(1, countCatBefore); Assert.Equal(1, countBreedBefore); Assert.Equal(1, countBreedTypeBefore); Assert.Equal(0, countKittenAfter); Assert.Equal(0, countCatAfter); Assert.Equal(0, countBreedAfter); Assert.Equal(0, countBreedTypeAfter); } }
public void TestСhainWhere() { foreach (IDataService dataService in DataServices) { // Arrange. var ds = (SQLDataService)dataService; ТипПороды типПороды = new ТипПороды() { Название = "Простая", ДатаРегистрации = DateTime.Now }; Порода породаДикая = new Порода() { Название = "Дикая" }; Порода породаПерсидская = new Порода() { Название = "Персидская", ТипПороды = типПороды }; Порода породаБезПороды = new Порода() { Название = "БезПороды", Иерархия = породаДикая }; ds.UpdateObject(породаДикая); ds.UpdateObject(породаПерсидская); ds.UpdateObject(породаБезПороды); var вася = new Кошка { Кличка = "Вася", ДатаРождения = (NullableDateTime)DateTime.Now, Порода = породаПерсидская, Тип = ТипКошки.Домашняя, Агрессивная = false }; var кузя = new Кошка { Кличка = "Кузя", ДатаРождения = (NullableDateTime)DateTime.Now, Порода = породаПерсидская, Тип = ТипКошки.Дикая, Агрессивная = false }; ds.UpdateObject(вася); ds.UpdateObject(кузя); // Act. var iqueryable = ds.Query <Кошка>(Кошка.Views.КошкаE) .Where(к => к.Агрессивная) .Where(cat => cat.Порода.__PrimaryKey.Equals(породаПерсидская.__PrimaryKey)); Кошка агрессивнаяКошка = iqueryable.FirstOrDefault(); // Assert. // В тестовом наборе нет агрессивных кошек, следовательно FirstOrDefault должен вернуть null. Assert.Equal(null, агрессивнаяКошка); } }