Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }