Skip to content

Commit

Permalink
Compare user type in query test
Browse files Browse the repository at this point in the history
  • Loading branch information
INaidanov authored and INaidanov committed Mar 11, 2020
1 parent 9957cda commit af380da
Show file tree
Hide file tree
Showing 6 changed files with 253 additions and 141 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
namespace NewPlatform.Flexberry.ORM.ODataService.Tests.CRUD.Read
{
using System.Linq;
using ICSSoft.STORMNET;
using ICSSoft.STORMNET.Business.LINQProvider;
using Xunit;

/// <summary>
/// Сравнение пользовательского типа в Query
/// </summary>
public class CompareUserTypeInQueryTest : BaseODataServiceIntegratedTest
{
/// <summary>
/// ok.
/// </summary>
[Fact]
public void RunTest()
{
ActODataService(args =>
{
var type = new TypeSavedAsString { Text = "hello world" };
Автор автор = new Автор { Имя = "Паша", CustomSerializedType = type };
Библиотека библиотека = new Библиотека { Адрес = "Магнитогорск" };
var журнал = new Журнал { Автор2 = автор, Библиотека2 = библиотека };
var объекты = new DataObject[] { автор, библиотека, журнал };
args.DataService.UpdateObjects(ref объекты);
var жур = args.DataService.Query<Журнал>("Dжурнал")
.Where(x => x.Автор2.CustomSerializedType != null)
.FirstOrDefault();
Assert.NotNull(жур);
Assert.Equal("hello world", жур.Автор2.CustomSerializedType.Text);
});
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,7 @@
<Compile Include="CRUD\Read\Excel\SpreadsheetCustomizer.cs" />
<Compile Include="CRUD\Read\FilterByMasterDetailFieldTest.cs" />
<Compile Include="CRUD\Read\FilterByPseudoDetailFieldTest.cs" />
<Compile Include="CRUD\Read\CompareUserTypeInQueryTest.cs" />
<Compile Include="CRUD\Read\ReferenceToMasterTest.cs" />
<Compile Include="CRUD\Read\UtfRequestsTest.cs" />
<Compile Include="CRUD\Update\BusinessServersTest.cs" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -359,6 +359,8 @@ CREATE TABLE Автор (

Имя VARCHAR(255) NULL,

CustomSerializedType VARCHAR(255) NULL,

PRIMARY KEY (primaryKey));


Expand Down Expand Up @@ -647,78 +649,78 @@ CREATE TABLE STORMAuField (



ALTER TABLE Лес ADD CONSTRAINT FK094f14931ec7428783d5475d5b19706a FOREIGN KEY (Страна) REFERENCES Страна;
CREATE INDEX Index963b8263f4c24768b26844bdf0444550 on Лес (Страна);
ALTER TABLE Лес ADD CONSTRAINT FK094f14931ec7428783d5475d5b19706a FOREIGN KEY (Страна) REFERENCES Страна;
CREATE INDEX Index963b8263f4c24768b26844bdf0444550 on Лес (Страна);

ALTER TABLE TestDetailWithCicle ADD CONSTRAINT FKde826e643fc549c0b9e1ada3b9e244e8 FOREIGN KEY (Parent) REFERENCES TestDetailWithCicle;
CREATE INDEX Index6a339d61880d428689a569e3ccc6647b on TestDetailWithCicle (Parent);
ALTER TABLE TestDetailWithCicle ADD CONSTRAINT FKde826e643fc549c0b9e1ada3b9e244e8 FOREIGN KEY (Parent) REFERENCES TestDetailWithCicle;
CREATE INDEX Index6a339d61880d428689a569e3ccc6647b on TestDetailWithCicle (Parent);

ALTER TABLE TestDetailWithCicle ADD CONSTRAINT FKd011ab4a131d47f7994be6fab422aabb FOREIGN KEY (TestMaster) REFERENCES TestMaster;
CREATE INDEX Indexd3225499a90749a2abcde92a5c6ee541 on TestDetailWithCicle (TestMaster);
ALTER TABLE TestDetailWithCicle ADD CONSTRAINT FKd011ab4a131d47f7994be6fab422aabb FOREIGN KEY (TestMaster) REFERENCES TestMaster;
CREATE INDEX Indexd3225499a90749a2abcde92a5c6ee541 on TestDetailWithCicle (TestMaster);

ALTER TABLE Медведь ADD CONSTRAINT FKbe5292b5039144e8afeff77556c4ea48 FOREIGN KEY (Страна) REFERENCES Страна;
CREATE INDEX Index7305e10e34444ef3a009261241139c44 on Медведь (Страна);
ALTER TABLE Медведь ADD CONSTRAINT FKbe5292b5039144e8afeff77556c4ea48 FOREIGN KEY (Страна) REFERENCES Страна;
CREATE INDEX Index7305e10e34444ef3a009261241139c44 on Медведь (Страна);

ALTER TABLE Медведь ADD CONSTRAINT FKee1efbd3144744119a5a60bb1dc5a059 FOREIGN KEY (ЛесОбитания) REFERENCES Лес;
CREATE INDEX Index63b2d2125df445ffa1d3ca62e7f5734f on Медведь (ЛесОбитания);
ALTER TABLE Медведь ADD CONSTRAINT FKee1efbd3144744119a5a60bb1dc5a059 FOREIGN KEY (ЛесОбитания) REFERENCES Лес;
CREATE INDEX Index63b2d2125df445ffa1d3ca62e7f5734f on Медведь (ЛесОбитания);

ALTER TABLE Медведь ADD CONSTRAINT FK2c1ceb4421294e239e66182b305e681b FOREIGN KEY (Мама) REFERENCES Медведь;
CREATE INDEX Indexdcbb2008ea5645929f534a51e97668a5 on Медведь (Мама);
ALTER TABLE Медведь ADD CONSTRAINT FK2c1ceb4421294e239e66182b305e681b FOREIGN KEY (Мама) REFERENCES Медведь;
CREATE INDEX Indexdcbb2008ea5645929f534a51e97668a5 on Медведь (Мама);

ALTER TABLE Медведь ADD CONSTRAINT FK293cfde1ed0d4206ba21813343f4f275 FOREIGN KEY (Папа) REFERENCES Медведь;
CREATE INDEX Index6b616f1c901741c3ba918dd3dc57d2da on Медведь (Папа);
ALTER TABLE Медведь ADD CONSTRAINT FK293cfde1ed0d4206ba21813343f4f275 FOREIGN KEY (Папа) REFERENCES Медведь;
CREATE INDEX Index6b616f1c901741c3ba918dd3dc57d2da on Медведь (Папа);

ALTER TABLE Детейл ADD CONSTRAINT FKf5ef9351c63947b1a45728e6f5d55d4a FOREIGN KEY (БазовыйКласс_m0) REFERENCES БазовыйКласс;
CREATE INDEX Index1af1375941f64d83ac96e8283acbd15b on Детейл (БазовыйКласс_m0);
ALTER TABLE Детейл ADD CONSTRAINT FKf5ef9351c63947b1a45728e6f5d55d4a FOREIGN KEY (БазовыйКласс_m0) REFERENCES БазовыйКласс;
CREATE INDEX Index1af1375941f64d83ac96e8283acbd15b on Детейл (БазовыйКласс_m0);

ALTER TABLE Детейл ADD CONSTRAINT FK1fe324971cd344f18a41ae8fd9cd8ecc FOREIGN KEY (БазовыйКласс_m1) REFERENCES Наследник;
CREATE INDEX Index3be594275cbe49a4b7df07457e006cdf on Детейл (БазовыйКласс_m1);
ALTER TABLE Детейл ADD CONSTRAINT FK1fe324971cd344f18a41ae8fd9cd8ecc FOREIGN KEY (БазовыйКласс_m1) REFERENCES Наследник;
CREATE INDEX Index3be594275cbe49a4b7df07457e006cdf on Детейл (БазовыйКласс_m1);

ALTER TABLE Книга ADD CONSTRAINT FK38426884f99045938a4357df0d058cdd FOREIGN KEY (Автор1) REFERENCES Автор;
CREATE INDEX Index9703c34d25554de0b089f585f1d1fa11 on Книга (Автор1);
ALTER TABLE Книга ADD CONSTRAINT FK38426884f99045938a4357df0d058cdd FOREIGN KEY (Автор1) REFERENCES Автор;
CREATE INDEX Index9703c34d25554de0b089f585f1d1fa11 on Книга (Автор1);

ALTER TABLE Книга ADD CONSTRAINT FK3c751483a96b479892c5853d7dcc1de7 FOREIGN KEY (Библиотека1) REFERENCES Библиотека;
CREATE INDEX Indexf980823a740d44fb9bb05a1f3e5654f6 on Книга (Библиотека1);
ALTER TABLE Книга ADD CONSTRAINT FK3c751483a96b479892c5853d7dcc1de7 FOREIGN KEY (Библиотека1) REFERENCES Библиотека;
CREATE INDEX Indexf980823a740d44fb9bb05a1f3e5654f6 on Книга (Библиотека1);

ALTER TABLE Наследник ADD CONSTRAINT FK472b1f35ae0d44669f819735962ac2fd FOREIGN KEY (Мастер) REFERENCES Мастер;
CREATE INDEX Indexedb1da9d9968401f80696f441966ccc0 on Наследник (Мастер);
ALTER TABLE Наследник ADD CONSTRAINT FK472b1f35ae0d44669f819735962ac2fd FOREIGN KEY (Мастер) REFERENCES Мастер;
CREATE INDEX Indexedb1da9d9968401f80696f441966ccc0 on Наследник (Мастер);

ALTER TABLE Наследник ADD CONSTRAINT FK47a819e26ef64b8eb7aad34a7e99c83e FOREIGN KEY (Master) REFERENCES Master;
CREATE INDEX Index71c1d3372d464829b20fb4440ecabde1 on Наследник (Master);
ALTER TABLE Наследник ADD CONSTRAINT FK47a819e26ef64b8eb7aad34a7e99c83e FOREIGN KEY (Master) REFERENCES Master;
CREATE INDEX Index71c1d3372d464829b20fb4440ecabde1 on Наследник (Master);

ALTER TABLE Car ADD CONSTRAINT FKbf9c26b65082485080f9c96ccbef3794 FOREIGN KEY (driver) REFERENCES Driver;
CREATE INDEX Indexd2c5a72584564755a8afb789ec32c744 on Car (driver);
ALTER TABLE Car ADD CONSTRAINT FKbf9c26b65082485080f9c96ccbef3794 FOREIGN KEY (driver) REFERENCES Driver;
CREATE INDEX Indexd2c5a72584564755a8afb789ec32c744 on Car (driver);

ALTER TABLE Мастер ADD CONSTRAINT FKa1eb7e89e22e4db7a9a31781ad50a276 FOREIGN KEY (Мастер2) REFERENCES Мастер2;
CREATE INDEX Index59e297eb836b4190935596de39f6a960 on Мастер (Мастер2);
ALTER TABLE Мастер ADD CONSTRAINT FKa1eb7e89e22e4db7a9a31781ad50a276 FOREIGN KEY (Мастер2) REFERENCES Мастер2;
CREATE INDEX Index59e297eb836b4190935596de39f6a960 on Мастер (Мастер2);

ALTER TABLE Блоха ADD CONSTRAINT FK40cf43b39b444a6bb5001d072c3a1e62 FOREIGN KEY (МедведьОбитания) REFERENCES Медведь;
CREATE INDEX Index82410edac1594c4ea12e81d020a9dfd6 on Блоха (МедведьОбитания);
ALTER TABLE Блоха ADD CONSTRAINT FK40cf43b39b444a6bb5001d072c3a1e62 FOREIGN KEY (МедведьОбитания) REFERENCES Медведь;
CREATE INDEX Index82410edac1594c4ea12e81d020a9dfd6 on Блоха (МедведьОбитания);

ALTER TABLE Берлога ADD CONSTRAINT FKbe0b722a54e34341af64fd5bc08e1c41 FOREIGN KEY (ЛесРасположения) REFERENCES Лес;
CREATE INDEX Index129d1c63f3a147e988c398e463f0a188 on Берлога (ЛесРасположения);
ALTER TABLE Берлога ADD CONSTRAINT FKbe0b722a54e34341af64fd5bc08e1c41 FOREIGN KEY (ЛесРасположения) REFERENCES Лес;
CREATE INDEX Index129d1c63f3a147e988c398e463f0a188 on Берлога (ЛесРасположения);

ALTER TABLE Берлога ADD CONSTRAINT FK10031cfb1a9e40df9ccdde48fd4f8e11 FOREIGN KEY (Медведь) REFERENCES Медведь;
CREATE INDEX Index50b4c3bedd7f4cbeb0a4e6ddd64bbd58 on Берлога (Медведь);
ALTER TABLE Берлога ADD CONSTRAINT FK10031cfb1a9e40df9ccdde48fd4f8e11 FOREIGN KEY (Медведь) REFERENCES Медведь;
CREATE INDEX Index50b4c3bedd7f4cbeb0a4e6ddd64bbd58 on Берлога (Медведь);

ALTER TABLE Детейл2 ADD CONSTRAINT FK079e0acf499a455da69bfb55eeaa99e2 FOREIGN KEY (Детейл) REFERENCES Детейл;
CREATE INDEX Indexf7d230117c8c4961811ac0317aa49e8d on Детейл2 (Детейл);
ALTER TABLE Детейл2 ADD CONSTRAINT FK079e0acf499a455da69bfb55eeaa99e2 FOREIGN KEY (Детейл) REFERENCES Детейл;
CREATE INDEX Indexf7d230117c8c4961811ac0317aa49e8d on Детейл2 (Детейл);

ALTER TABLE Журнал ADD CONSTRAINT FK827498636ea241feb2fa4831d7cb42a9 FOREIGN KEY (Автор2) REFERENCES Автор;
CREATE INDEX Index9b09ac76193d43aabe23e83564af3b5d on Журнал (Автор2);
ALTER TABLE Журнал ADD CONSTRAINT FK827498636ea241feb2fa4831d7cb42a9 FOREIGN KEY (Автор2) REFERENCES Автор;
CREATE INDEX Index9b09ac76193d43aabe23e83564af3b5d on Журнал (Автор2);

ALTER TABLE Журнал ADD CONSTRAINT FK4c1d362e3fbd4363a7ad75482ba0b0b8 FOREIGN KEY (Библиотека2) REFERENCES Библиотека;
CREATE INDEX Index19aa4f0281974bd3be6db919cede1771 on Журнал (Библиотека2);
ALTER TABLE Журнал ADD CONSTRAINT FK4c1d362e3fbd4363a7ad75482ba0b0b8 FOREIGN KEY (Библиотека2) REFERENCES Библиотека;
CREATE INDEX Index19aa4f0281974bd3be6db919cede1771 on Журнал (Библиотека2);

ALTER TABLE STORMWEBSEARCH ADD CONSTRAINT FK1e1da8abc8da4bb29d7c841cfcfba676 FOREIGN KEY (FilterSetting_m0) REFERENCES STORMFILTERSETTING;
ALTER TABLE STORMWEBSEARCH ADD CONSTRAINT FK1e1da8abc8da4bb29d7c841cfcfba676 FOREIGN KEY (FilterSetting_m0) REFERENCES STORMFILTERSETTING;

ALTER TABLE STORMFILTERDETAIL ADD CONSTRAINT FK14e2d8cfb3284fafa0887904c95ac153 FOREIGN KEY (FilterSetting_m0) REFERENCES STORMFILTERSETTING;
ALTER TABLE STORMFILTERDETAIL ADD CONSTRAINT FK14e2d8cfb3284fafa0887904c95ac153 FOREIGN KEY (FilterSetting_m0) REFERENCES STORMFILTERSETTING;

ALTER TABLE STORMFILTERLOOKUP ADD CONSTRAINT FKc7d1f0f598e345ceb100f7dda48765a5 FOREIGN KEY (FilterSetting_m0) REFERENCES STORMFILTERSETTING;
ALTER TABLE STORMFILTERLOOKUP ADD CONSTRAINT FKc7d1f0f598e345ceb100f7dda48765a5 FOREIGN KEY (FilterSetting_m0) REFERENCES STORMFILTERSETTING;

ALTER TABLE STORMAuEntity ADD CONSTRAINT FKa44be23f60824d138fd52117435a5220 FOREIGN KEY (ObjectType_m0) REFERENCES STORMAuObjType;
ALTER TABLE STORMAuEntity ADD CONSTRAINT FKa44be23f60824d138fd52117435a5220 FOREIGN KEY (ObjectType_m0) REFERENCES STORMAuObjType;

ALTER TABLE STORMAuField ADD CONSTRAINT FKcedf1bc5c5e046668b24a543ac64c39c FOREIGN KEY (MainChange_m0) REFERENCES STORMAuField;
ALTER TABLE STORMAuField ADD CONSTRAINT FKcedf1bc5c5e046668b24a543ac64c39c FOREIGN KEY (MainChange_m0) REFERENCES STORMAuField;

ALTER TABLE STORMAuField ADD CONSTRAINT FK96361c5fcb8b41569bda60960c843807 FOREIGN KEY (AuditEntity_m0) REFERENCES STORMAuEntity;
ALTER TABLE STORMAuField ADD CONSTRAINT FK96361c5fcb8b41569bda60960c843807 FOREIGN KEY (AuditEntity_m0) REFERENCES STORMAuEntity;

Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@
<ItemGroup>
<Compile Include="AssemblyInfo.cs" />
<Compile Include="Car.cs" />
<Compile Include="TypeSavedAsString.cs" />
<Compile Include="Driver.cs" />
<Compile Include="GUIDToStringGenerator.cs" />
<Compile Include="Master.cs" />
Expand Down
44 changes: 44 additions & 0 deletions Tests/Objects/TypeSavedAsString.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
namespace NewPlatform.Flexberry.ORM.ODataService.Tests
{
using System;
using ICSSoft.STORMNET;

/// <summary>
/// Пользовательский тип, сериализующийся в строку
/// </summary>
[StoreInstancesInType(typeof(ICSSoft.STORMNET.Business.SQLDataService), typeof(string))]
[Serializable]
public class TypeSavedAsString : IComparableType
{
public string Text { get; set; }

public static explicit operator string(TypeSavedAsString value)
{
return string.Concat(value.Text, "|Serialized");
}

public static explicit operator TypeSavedAsString(string value)
{
return new TypeSavedAsString
{
Text = value.Split('|')[0]
};
}

public static bool operator !=(TypeSavedAsString l, TypeSavedAsString r)
{
return !(l == r);
}

public static bool operator ==(TypeSavedAsString l, TypeSavedAsString r)
{
return ((string)l).Equals((string)r);
}

public int Compare(object x)
{
var obj = (TypeSavedAsString)x;
return this.Text == obj.Text ? 0 : 1;
}
}
}
Loading

0 comments on commit af380da

Please sign in to comment.