public void DeleteAggregatorWithManyDetailsTest() { foreach (IDataService dataService in DataServices) { // Arrange. SQLDataService ds = dataService as SQLDataService; //TODO: Fix OracleDataService error. if (dataService is OracleDataService) { continue; } var masterCl = new Пользователь { ФИО = "фио" }; var aggregator = new Конкурс { Название = "название", Организатор = masterCl }; var detailOne = new КритерийОценки { ПорядковыйНомер = 4 }; var detailTwo = new ДокументацияККонкурсу { Файл = new WebFile() }; aggregator.КритерииОценки.Add(detailOne); aggregator.Документы.Add(detailTwo); ds.UpdateObject(aggregator); // Act LoadingCustomizationStruct lcsAggregator = LoadingCustomizationStruct.GetSimpleStruct(typeof(Конкурс), Конкурс.Views.КонкурсE); LoadingCustomizationStruct lcsDetailOne = LoadingCustomizationStruct.GetSimpleStruct(typeof(КритерийОценки), КритерийОценки.Views.КритерийОценкиE); LoadingCustomizationStruct lcsDetailTwo = LoadingCustomizationStruct.GetSimpleStruct(typeof(ДокументацияККонкурсу), ДокументацияККонкурсу.Views.ДокументацияККонкурсуE); DataObject[] dataObjectsAggregator = ds.LoadObjects(lcsAggregator); DataObject[] dataObjectsDetailOne = ds.LoadObjects(lcsDetailOne); DataObject[] dataObjectsDetailTwo = ds.LoadObjects(lcsDetailTwo); int countAggregatorBefore = ds.GetObjectsCount(lcsAggregator); int countDetailOneBefore = ds.GetObjectsCount(lcsDetailOne); int countDetailTwoBefore = ds.GetObjectsCount(lcsDetailTwo); List <DataObject> objectsForUpdateList = new List <DataObject>(); foreach (Конкурс конкурс in dataObjectsAggregator) { конкурс.SetStatus(ObjectStatus.Deleted); objectsForUpdateList.Add(конкурс); } foreach (КритерийОценки критерий in dataObjectsDetailOne) { критерий.SetStatus(ObjectStatus.Deleted); objectsForUpdateList.Add(критерий); } foreach (ДокументацияККонкурсу документ in dataObjectsDetailTwo) { документ.SetStatus(ObjectStatus.Deleted); objectsForUpdateList.Add(документ); } DataObject[] objectsForUpdate = objectsForUpdateList.ToArray(); ds.UpdateObjects(ref objectsForUpdate); int countAggregatorAfter = ds.GetObjectsCount(lcsAggregator); int countDetailOneAfter = ds.GetObjectsCount(lcsDetailOne); int countDetailTwoAfter = ds.GetObjectsCount(lcsDetailTwo); // Assert Assert.Equal(1, countAggregatorBefore); Assert.Equal(1, countDetailOneBefore); Assert.Equal(1, countDetailTwoBefore); Assert.Equal(0, countAggregatorAfter); Assert.Equal(0, countDetailOneAfter); Assert.Equal(0, countDetailTwoAfter); } }
public void DeleteAggregatorWithManyDetailsAndAssociationTest() { foreach (IDataService dataService in DataServices) { // Arrange. SQLDataService ds = dataService as SQLDataService; //TODO: Fix OracleDataService error. if (dataService is OracleDataService) { continue; } var пользователь = new Пользователь { ФИО = "фио" }; var критерийОценки = new КритерийОценки { ПорядковыйНомер = 4 }; var конкурс = new Конкурс { Название = "название", Организатор = пользователь }; конкурс.КритерииОценки.Add(критерийОценки); var aggregatorIdea = new Идея { Заголовок = "агрегатор1", Автор = пользователь, Конкурс = конкурс }; aggregatorIdea.Файлы.Add(new ФайлИдеи { Владелец = пользователь }); var masterAndDetail = new ЗначениеКритерия { Значение = "значение1", Критерий = критерийОценки }; aggregatorIdea.ОценкиЭкспертов.Add(new ОценкаЭксперта { ЗначениеОценки = 2, ЗначениеКритерия = masterAndDetail, Эксперт = пользователь }); aggregatorIdea.ЗначенияКритериев.Add(masterAndDetail); ds.UpdateObject(aggregatorIdea); // Act & Assert. LoadingCustomizationStruct lcsAggregator = LoadingCustomizationStruct.GetSimpleStruct(typeof(Идея), Идея.Views.ИдеяE); LoadingCustomizationStruct lcsDetail1 = LoadingCustomizationStruct.GetSimpleStruct(typeof(ФайлИдеи), ФайлИдеи.Views.ФайлE); LoadingCustomizationStruct lcsDetail2 = LoadingCustomizationStruct.GetSimpleStruct(typeof(ОценкаЭксперта), ОценкаЭксперта.Views.ОценкаЭкспертаE); LoadingCustomizationStruct lcsDetail3 = LoadingCustomizationStruct.GetSimpleStruct(typeof(ЗначениеКритерия), ЗначениеКритерия.Views.ЗначениеКритерияE); DataObject[] dataObjectsAggregator = ds.LoadObjects(lcsAggregator); DataObject[] dataObjectsDetail1 = ds.LoadObjects(lcsDetail1); DataObject[] dataObjectsDetail2 = ds.LoadObjects(lcsDetail2); DataObject[] dataObjectsDetail3 = ds.LoadObjects(lcsDetail3); // Act int countAggregatorBefore = ds.GetObjectsCount(lcsAggregator); int countDetail1Before = ds.GetObjectsCount(lcsDetail1); int countDetail2Before = ds.GetObjectsCount(lcsDetail2); int countDetail3Before = ds.GetObjectsCount(lcsDetail3); List <DataObject> objectsForUpdateList = new List <DataObject>(); foreach (Идея идея in dataObjectsAggregator) { идея.SetStatus(ObjectStatus.Deleted); objectsForUpdateList.Add(идея); } foreach (ФайлИдеи файл in dataObjectsDetail1) { файл.SetStatus(ObjectStatus.Deleted); objectsForUpdateList.Add(файл); } foreach (ОценкаЭксперта оценка in dataObjectsDetail2) { оценка.SetStatus(ObjectStatus.Deleted); objectsForUpdateList.Add(оценка); } foreach (ЗначениеКритерия критерий in dataObjectsDetail3) { критерий.SetStatus(ObjectStatus.Deleted); objectsForUpdateList.Add(критерий); } DataObject[] objectsForUpdate = objectsForUpdateList.ToArray(); ds.UpdateObjects(ref objectsForUpdate); int countAggregatorAfter = ds.GetObjectsCount(lcsAggregator); int countDetail1After = ds.GetObjectsCount(lcsDetail1); int countDetail2After = ds.GetObjectsCount(lcsDetail2); int countDetail3After = ds.GetObjectsCount(lcsDetail3); // Assert Assert.Equal(1, countAggregatorBefore); Assert.Equal(1, countDetail1Before); Assert.Equal(1, countDetail2Before); Assert.Equal(1, countDetail3Before); Assert.Equal(0, countAggregatorAfter); Assert.Equal(0, countDetail1After); Assert.Equal(0, countDetail2After); Assert.Equal(0, countDetail3After); } }