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(тестовыйМедведь); }
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."); } }