Ejemplo n.º 1
0
        public void DeleteAgregatorWithoutDetailsThroughUpdateObjectsOrderedMethodTest()
        {
            foreach (IDataService dataService in DataServices)
            {
                SQLDataService ds = dataService as SQLDataService;

                // Создаем агрегатор без детейлов (медведя без берлог), но с бизнес-сервером привязанным к детейлам (к берлогам привязан бизнес-сервер).
                Медведь bear = new Медведь {
                    ЦветГлаз = "Карие", Вес = 50
                };
                DataObject[] dataObjectsForUpdate = new DataObject[]
                {
                    bear
                };

                // Сохраняем созданный агрегатор без детейлов.
                ds.UpdateObjects(ref dataObjectsForUpdate);

                // Помечаем сохраненный агрегатор на удаление.
                bear.SetStatus(ObjectStatus.Deleted);

                Exception updateException = null;
                try
                {
                    // Пытаемся удалить агрегатор через метод UpdateObjectsOrdered.
                    ds.UpdateObjectsOrdered(ref dataObjectsForUpdate);
                }
                catch (Exception ex)
                {
                    updateException = ex;
                }

                // Проверяем, что при удалении не возникло исключений.
                Assert.True(updateException == null, "При удалении через UpdateObjectsOrdered не возникло исключений");

                // Пытаемся загрузить удаленный объект из БД.
                Exception loadException = null;
                try
                {
                    Медведь loadedBear = new Медведь();
                    loadedBear.SetExistObjectPrimaryKey(bear.__PrimaryKey);
                    ds.LoadObject(loadedBear);
                }
                catch (Exception ex)
                {
                    loadException = ex;
                }

                // Проверяем, что удаленный объект действительно удалился.
                Assert.True(loadException is CantFindDataObjectException, "Объект удаленный через UpdateObjectsOrdered действительно больше не существует");
            }
        }