public void LoadingObjectLoadObjectsTest()
        {
            // TODO: Обработать после выполнения задачи 4009

            var dataService = new MSSQLDataService();

            dataService.CustomizationString = ConfigurationManager.ConnectionStrings["TestAppNormal"]
                                              .ConnectionString;

            // Создание тестовой записи.
            var тестовыйМедведь = new Медведь()
            {
                ПорядковыйНомер = 15, Вес = 39
            };

            dataService.UpdateObject(тестовыйМедведь);

            var view = new View {
                DefineClassType = typeof(Медведь)
            };

            view.AddProperties(
                new string[1]
            {
                "ВычислимоеПоле"
            });

            // Загрузка объектов.
            IQueryable <Медведь> dataМедведи =
                dataService.Query <Медведь>(view).Where(w => w.__PrimaryKey == тестовыйМедведь.__PrimaryKey);


            var lcs = LinqToLcs.GetLcs(dataМедведи.Expression, view);

            lcs.View         = view;
            lcs.LoadingTypes = new[] { typeof(Медведь) };
            lcs.ReturnType   = LcsReturnType.Objects;

            // Загрузка данных без создания объктов.
            var медведи = dataService.LoadObjects(lcs);

            Assert.True(1 == медведи.Length, "Запись должна быть одна.");
            foreach (var stringDataView in медведи)
            {
                int fieldSum = ((Медведь)stringDataView).ВычислимоеПоле;
                Assert.True(54 == fieldSum, "ВычислимоеПоле");
            }

            Assert.True(1 == dataМедведи.Count(), "Запись должна быть одна.");
            foreach (var медведь in dataМедведи)
            {
                Assert.True(1 == медведь.ВычислимоеПоле, "ВычислимоеПоле");
            }

            // Удаление тестовой записи.
            тестовыйМедведь.SetStatus(ObjectStatus.Deleted);
            dataService.UpdateObject(тестовыйМедведь);
        }
        public void LoadingObjectLoadStringedObjectViewTest()
        {
            // TODO: Обработать после выполнения задачи 4009

            var dataService = new MSSQLDataService();

            dataService.CustomizationString = "SERVER=rtc-storm;Trusted_connection=yes;DATABASE=dochitka_test;";

            // Cоздание тестовой записи.
            var тестовыйМедведь = new Медведь()
            {
                ПорядковыйНомер = 15, Вес = 39
            };

            dataService.UpdateObject(тестовыйМедведь);

            var view = new View {
                DefineClassType = typeof(Медведь)
            };

            view.AddProperties(
                new string[1]
            {
                "ВычислимоеПоле"
            });

            // Загрузка объектов.
            IQueryable <Медведь> dataМедведи =
                dataService.Query <Медведь>(view).Where(w => w.__PrimaryKey == тестовыйМедведь.__PrimaryKey);


            var lcs = LinqToLcs.GetLcs(dataМедведи.Expression, view);

            lcs.View         = view;
            lcs.LoadingTypes = new[] { typeof(Медведь) };
            lcs.ReturnType   = LcsReturnType.Objects;

            // Загрузка данных без создания объктов.
            var медведи = dataService.LoadStringedObjectView('\t', lcs);

            Assert.True(1 == медведи.Length, "Запись должна быть одна.");
            foreach (var stringDataView in медведи)
            {
                int fieldSum = Int32.Parse(stringDataView.ObjectedData[0].ToString());
                Assert.True(54 == fieldSum, "ВычислимоеПоле");
            }

            Assert.True(1 == dataМедведи.Count(), "Запись должна быть одна.");
            foreach (var медведь in dataМедведи)
            {
                Assert.True(54 == медведь.ВычислимоеПоле, "ВычислимоеПоле");
            }

            // Удаление тестовой записи.
            тестовыйМедведь.SetStatus(ObjectStatus.Deleted);
            dataService.UpdateObject(тестовыйМедведь);
        }
Exemple #3
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 действительно больше не существует");
            }
        }
        public void InsertSelectUpdateDeleteSpeedTest()
        {
            foreach (IDataService dataService in DataServices)
            {
                var ds = (SQLDataService)dataService;

                var createdBear1 = new Медведь();
                createdBear1.ЦветГлаз = "Косолапый Мишка 1";
                ds.UpdateObject(createdBear1);

                Random random = new Random();

                Stopwatch stopwatch = new Stopwatch();

                int i = 0;

                stopwatch.Start();

                do
                {
                    // Чтобы медведь в БД точно был, создадим его.
                    var createdBear = new Медведь();
                    createdBear.ЦветГлаз = "Косолапый Мишка " + random.Next(101);
                    ds.UpdateObject(createdBear);

                    // Теперь грузим его из БД.
                    var медведь = new Медведь();
                    медведь.SetExistObjectPrimaryKey(createdBear.__PrimaryKey);
                    ds.LoadObject(медведь, false, false);

                    медведь.ЦветГлаз = "Топтыгин " + random.Next(101);

                    ds.UpdateObject(медведь);

                    медведь.SetStatus(ObjectStatus.Deleted);
                    ds.UpdateObject(медведь);
                    i++;
                } while (stopwatch.ElapsedMilliseconds < 1000);

                stopwatch.Stop();
                Console.WriteLine(i + " instances.");
            }
        }