public void GetLcsSecondLevelTest() { var breedType = new ТипПороды() { Название = "Чеширский Улыбчивый" }; var testProvider = new TestLcsQueryProvider <Кошка>(); new Query <Кошка>(testProvider).Where(o => o.Порода.ТипПороды == breedType).ToArray(); Expression queryExpression = testProvider.InnerExpression; var expected = new LoadingCustomizationStruct(null) { LimitFunction = ldef.GetFunction( ldef.funcEQ, new VariableDef(ldef.DataObjectType, Information.ExtractPropertyPath <Кошка>(x => x.Порода.ТипПороды)), breedType) }; 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, агрессивнаяКошка); } }