Ejemplo n.º 1
0
        public void TestSkipTake()
        {
            foreach (IDataService dataService in DataServices)
            {
                //TODO: Fix OracleDataService error.
                if (dataService is OracleDataService)
                {
                    continue;
                }
                // Arrange.
                var ds = (SQLDataService)dataService;

                Порода породаДикая = new Порода()
                {
                    Название = "Дикая"
                };
                Порода породаПерсидская = new Порода()
                {
                    Название = "Персидская"
                };
                Порода породаБезПороды = new Порода()
                {
                    Название = "БезПороды"
                };
                Порода породаСибирская = new Порода()
                {
                    Название = "Сибирская"
                };
                Порода породаСиамская = new Порода()
                {
                    Название = "Сиамская"
                };
                Порода породаРусская = new Порода()
                {
                    Название = "Русская"
                };

                var obj = new ICSSoft.STORMNET.DataObject[] { породаДикая, породаПерсидская, породаБезПороды, породаСибирская, породаСиамская, породаРусская };

                ds.UpdateObjects(ref obj);

                var expected = ds.Query <Порода>(Порода.Views.ПородаE).Skip(0).ToArray();

                var actual1 = ds.Query <Порода>(Порода.Views.ПородаE).Skip(2).Take(3).Skip(2).ToArray();
                Assert.Equal(expected[4].__PrimaryKey, actual1[0].__PrimaryKey);

                var actual2 = ds.Query <Порода>(Порода.Views.ПородаE).Skip(2).Take(3).ToArray();
                Assert.Equal(expected[2].__PrimaryKey, actual2[0].__PrimaryKey);
                Assert.Equal(expected[3].__PrimaryKey, actual2[1].__PrimaryKey);
                Assert.Equal(expected[4].__PrimaryKey, actual2[2].__PrimaryKey);

                var actual3 = ds.Query <Порода>(Порода.Views.ПородаE).Take(3).Skip(1).ToArray();
                Assert.Equal(expected[1].__PrimaryKey, actual3[0].__PrimaryKey);
                Assert.Equal(expected[2].__PrimaryKey, actual3[1].__PrimaryKey);
            }
        }
Ejemplo n.º 2
0
        public void AgregatorPropertyAddToViewTest()
        {
            foreach (IDataService dataService in DataServices)
            {
                var ds = (SQLDataService)dataService;

                if (ds is OracleDataService)
                {
                    // TODO: Fix multithreading support for OracleDataService and Long names.
                    continue;
                }

                ds.OnGenerateSQLSelect -= ThreadTesting_OnGenerateSQLSelect;
                ds.OnGenerateSQLSelect += ThreadTesting_OnGenerateSQLSelect;
                output.WriteLine($"start {ds.GetType().Name}");

                Порода порода = new Порода()
                {
                    Название = "Беспородная"
                };
                Кошка кошка = new Кошка()
                {
                    Кличка = nameof(AgregatorPropertyAddToViewTest), Порода = порода, ДатаРождения = NullableDateTime.Now, Тип = ТипКошки.Дикая
                };
                кошка.Лапа.Add(new Лапа()
                {
                    Номер = 1
                });
                ds.UpdateObject(кошка);

                MultiThreadingTestTool multiThreadingTestTool = new MultiThreadingTestTool(MultiThreadMethod);
                multiThreadingTestTool.StartThreads(150, ds);

                var exception = multiThreadingTestTool.GetExceptions();

                if (exception != null)
                {
                    foreach (var item in exception.InnerExceptions)
                    {
                        output.WriteLine(item.Value.ToString());
                    }

                    throw exception.InnerException;
                }

                ds.OnGenerateSQLSelect -= ThreadTesting_OnGenerateSQLSelect;

                кошка.SetStatus(ObjectStatus.Deleted);
                порода.SetStatus(ObjectStatus.Deleted);
                DataObject[] dataObjsForDel = new DataObject[] { кошка, порода };
                ds.UpdateObjects(ref dataObjsForDel);
            }
        }
        public void GetLcsTestDataObjectWithDynamicView()
        {
            var порода       = new Порода();
            var testProvider = new TestLcsQueryProvider <Кошка>();

            new Query <Кошка>(testProvider).Where(o => порода.Equals(o.Порода)).ToArray();
            var queryExpression = testProvider.InnerExpression;
            var actual          = LinqToLcs.GetLcs(queryExpression, typeof(Кошка));

            Assert.NotNull(actual.View);
            Assert.Equal(1, actual.View.Properties.Count());
            Assert.Equal(Information.ExtractPropertyPath <Кошка>(x => x.Порода), actual.View.Properties[0].Name);
        }
        public void GetLcsTestDataObjectWithDynamicView2()
        {
            var порода = new Порода {
                Название = "тест"
            };
            var testProvider = new TestLcsQueryProvider <Кошка>();

            new Query <Кошка>(testProvider).Where(o => o.Порода.Название.Equals(порода.Название)).ToArray();
            var queryExpression = testProvider.InnerExpression;
            var actual          = LinqToLcs.GetLcs(queryExpression, typeof(Кошка));

            Assert.NotNull(actual.View);
            Assert.Equal(2, actual.View.Properties.Count());
            Assert.True(actual.View.Properties.Select(x => x.Name).Contains(Information.ExtractPropertyPath <Кошка>(x => x.Порода)));
            Assert.True(actual.View.Properties.Select(x => x.Name).Contains(Information.ExtractPropertyPath <Кошка>(x => x.Порода.Название)));
        }
Ejemplo n.º 5
0
        public void GetLcsTestDataObject()
        {
            var порода       = new Порода();
            var testProvider = new TestLcsQueryProvider <Кошка>();

            new Query <Кошка>(testProvider).Where(o => порода.Equals(o.Порода)).ToArray();
            Expression queryExpression = testProvider.InnerExpression;

            var expected = new LoadingCustomizationStruct(null)
            {
                LimitFunction = ldef.GetFunction(ldef.funcEQ, порода, new VariableDef(ldef.DataObjectType, "Порода"))
            };

            LoadingCustomizationStruct actual = LinqToLcs.GetLcs(queryExpression, Utils.GetDefaultView(typeof(Кошка)));

            Assert.True(Equals(expected, actual));
        }
Ejemplo n.º 6
0
        public void GetLcsMasterEqualsNull()
        {
            var guid    = Guid.NewGuid();
            var порода1 = new Порода()
            {
                __PrimaryKey = guid
            };
            var testProvider = new TestLcsQueryProvider <Кошка>();

            new Query <Кошка>(testProvider).Where(o => o.Порода.__PrimaryKey.Equals(null)).ToArray();
            Expression queryExpression        = testProvider.InnerExpression;
            LoadingCustomizationStruct actual = LinqToLcs.GetLcs(queryExpression, Utils.GetDefaultView(typeof(Кошка)));

            var expected = new LoadingCustomizationStruct(null)
            {
                LimitFunction =
                    ldef.GetFunction(ldef.funcEQ, new VariableDef(ldef.GuidType, "Порода"), null)
            };


            Assert.True(Equals(expected, actual));
        }
Ejemplo n.º 7
0
        public void GetLcsMasterMemberTest()
        {
            var порода = new Порода
            {
                Название = "тест"
            };


            var testProvider = new TestLcsQueryProvider <Кошка>();

            new Query <Кошка>(testProvider).Where(o => o.Порода.Название.Equals(порода.Название)).ToArray();
            Expression queryExpression = testProvider.InnerExpression;

            var expected = new LoadingCustomizationStruct(null)
            {
                LimitFunction =
                    ldef.GetFunction(
                        ldef.funcEQ, new VariableDef(ldef.StringType, "Порода.Название"), порода.Название)
            };

            LoadingCustomizationStruct actual = LinqToLcs.GetLcs(queryExpression, Utils.GetDefaultView(typeof(Кошка)));

            Assert.True(Equals(expected, actual));
        }
Ejemplo n.º 8
0
        public void DeleteUpdateAssociationTest()
        {
            foreach (IDataService dataService in DataServices)
            {
                // Arrange.
                SQLDataService ds = dataService as SQLDataService;

                //TODO: Fix OracleDataService error.
                if (dataService is OracleDataService)
                {
                    continue;
                }
                var masterBreedType = new ТипПороды {
                    Название = "тип породы1", ДатаРегистрации = DateTime.Now
                };
                var innerMasterBreed = new Порода {
                    Название = "порода1", ТипПороды = masterBreedType
                };
                var innerMasterCat = new Кошка
                {
                    Кличка       = "кошка",
                    ДатаРождения = (NullableDateTime)DateTime.Now,
                    Тип          = ТипКошки.Дикая,
                    Порода       = innerMasterBreed
                };
                var innerKitten = new Котенок {
                    КличкаКотенка = "котеночек", Кошка = innerMasterCat
                };

                // Act
                ds.UpdateObject(innerKitten);

                LoadingCustomizationStruct lcsKitten    = LoadingCustomizationStruct.GetSimpleStruct(typeof(Котенок), Котенок.Views.КотенокE);
                LoadingCustomizationStruct lcsCat       = LoadingCustomizationStruct.GetSimpleStruct(typeof(Кошка), Кошка.Views.КошкаE);
                LoadingCustomizationStruct lcsBreed     = LoadingCustomizationStruct.GetSimpleStruct(typeof(Порода), Порода.Views.ПородаE);
                LoadingCustomizationStruct lcsBreedType = LoadingCustomizationStruct.GetSimpleStruct(typeof(ТипПороды), ТипПороды.Views.ТипПородыE);

                DataObject[] dataObjectsKitten     = ds.LoadObjects(lcsKitten);
                DataObject[] dataObjectsCats       = ds.LoadObjects(lcsCat);
                DataObject[] dataObjectsBreed      = ds.LoadObjects(lcsBreed);
                DataObject[] dataObjectsBreedTypes = ds.LoadObjects(lcsBreedType);

                int countKittenBefore    = ds.GetObjectsCount(lcsKitten);
                int countCatBefore       = ds.GetObjectsCount(lcsCat);
                int countBreedBefore     = ds.GetObjectsCount(lcsBreed);
                int countBreedTypeBefore = ds.GetObjectsCount(lcsBreed);

                List <DataObject> objectsForUpdateList = new List <DataObject>();

                foreach (Котенок котенок in dataObjectsKitten)
                {
                    котенок.SetStatus(ObjectStatus.Deleted);
                    objectsForUpdateList.Add(котенок);
                }

                foreach (Кошка кошка in dataObjectsCats)
                {
                    кошка.SetStatus(ObjectStatus.Deleted);
                    objectsForUpdateList.Add(кошка);
                }

                foreach (Порода порода in dataObjectsBreed)
                {
                    порода.SetStatus(ObjectStatus.Deleted);
                    objectsForUpdateList.Add(порода);
                }

                foreach (ТипПороды типПороды in dataObjectsBreedTypes)
                {
                    типПороды.SetStatus(ObjectStatus.Deleted);
                    objectsForUpdateList.Add(типПороды);
                }

                DataObject[] objectsForUpdate = objectsForUpdateList.ToArray();

                ds.UpdateObjects(ref objectsForUpdate);

                int countKittenAfter    = ds.GetObjectsCount(lcsKitten);
                int countCatAfter       = ds.GetObjectsCount(lcsCat);
                int countBreedAfter     = ds.GetObjectsCount(lcsBreed);
                int countBreedTypeAfter = ds.GetObjectsCount(lcsBreedType);

                // Assert
                Assert.Equal(1, countKittenBefore);
                Assert.Equal(1, countCatBefore);
                Assert.Equal(1, countBreedBefore);
                Assert.Equal(1, countBreedTypeBefore);

                Assert.Equal(0, countKittenAfter);
                Assert.Equal(0, countCatAfter);
                Assert.Equal(0, countBreedAfter);
                Assert.Equal(0, countBreedTypeAfter);
            }
        }
        public void TestСhainWhere()
        {
            foreach (IDataService dataService in DataServices)
            {
                // Arrange.
                var ds = (SQLDataService)dataService;

                ТипПороды типПороды = new ТипПороды()
                {
                    Название = "Простая", ДатаРегистрации = DateTime.Now
                };

                Порода породаДикая = new Порода()
                {
                    Название = "Дикая"
                };
                Порода породаПерсидская = new Порода()
                {
                    Название = "Персидская", ТипПороды = типПороды
                };
                Порода породаБезПороды = new Порода()
                {
                    Название = "БезПороды", Иерархия = породаДикая
                };

                ds.UpdateObject(породаДикая);
                ds.UpdateObject(породаПерсидская);
                ds.UpdateObject(породаБезПороды);

                var вася = new Кошка
                {
                    Кличка       = "Вася",
                    ДатаРождения = (NullableDateTime)DateTime.Now,
                    Порода       = породаПерсидская,
                    Тип          = ТипКошки.Домашняя,
                    Агрессивная  = false
                };
                var кузя = new Кошка
                {
                    Кличка       = "Кузя",
                    ДатаРождения = (NullableDateTime)DateTime.Now,
                    Порода       = породаПерсидская,
                    Тип          = ТипКошки.Дикая,
                    Агрессивная  = false
                };

                ds.UpdateObject(вася);
                ds.UpdateObject(кузя);

                // Act.
                var iqueryable =
                    ds.Query <Кошка>(Кошка.Views.КошкаE)
                    .Where(к => к.Агрессивная)
                    .Where(cat => cat.Порода.__PrimaryKey.Equals(породаПерсидская.__PrimaryKey));
                Кошка агрессивнаяКошка = iqueryable.FirstOrDefault();

                // Assert.
                // В тестовом наборе нет агрессивных кошек, следовательно FirstOrDefault должен вернуть null.
                Assert.Equal(null, агрессивнаяКошка);
            }
        }