Skip to content

Commit fed2c4e

Browse files
committed
Merge branch '7.0' into 7.1
# Conflicts: # Orm/Xtensive.Orm.Firebird/Sql.Drivers.Firebird/v2_5/ServerInfoProvider.cs # Orm/Xtensive.Orm.MySql/Sql.Drivers.MySql/DriverFactory.cs # Orm/Xtensive.Orm.MySql/Sql.Drivers.MySql/v5_0/Extractor.cs # Orm/Xtensive.Orm.MySql/Sql.Drivers.MySql/v5_0/Translator.cs # Orm/Xtensive.Orm.MySql/Sql.Drivers.MySql/v5_6/ServerInfoProvider.cs # Orm/Xtensive.Orm.MySql/Sql.Drivers.MySql/v5_6/Translator.cs # Orm/Xtensive.Orm.MySql/Sql.Drivers.MySql/v5_7/Compiler.cs # Orm/Xtensive.Orm.MySql/Sql.Drivers.MySql/v5_7/Driver.cs # Orm/Xtensive.Orm.MySql/Sql.Drivers.MySql/v5_7/Translator.cs # Orm/Xtensive.Orm.Tests.Framework/Orm.config # Orm/Xtensive.Orm.Tests.Framework/StorageProviderVersion.cs # Orm/Xtensive.Orm.Tests.Framework/TestHelper.cs # Orm/Xtensive.Orm.Tests.Sql/CompilerTest.cs # Orm/Xtensive.Orm.Tests.Sql/DateTimeIntervalTest.cs # Orm/Xtensive.Orm.Tests.Sql/MySQL/Sakila.cs # Orm/Xtensive.Orm.Tests.Sql/SqlServer/AdventureWorks.cs # Orm/Xtensive.Orm.Tests.Sql/SqlServer/MSSQLTests.cs # Orm/Xtensive.Orm.Tests.Sql/SqlServer/MiscTests.cs # Orm/Xtensive.Orm.Tests.Sql/SqlTest.cs # Orm/Xtensive.Orm.Tests.Sql/Sqlite/Chinook.cs # Orm/Xtensive.Orm.Tests.Sql/Sqlite/ChinookTest.cs # Orm/Xtensive.Orm.Tests.Sql/Sqlite/MiscTests.cs # Orm/Xtensive.Orm.Tests/Issues/IssueJira0187_TypeCastInContain.cs # Orm/Xtensive.Orm.Tests/Issues/IssueJira0537_DropDefaultConstraintBugTest.cs # Orm/Xtensive.Orm.Tests/Issues/IssueJira0761_ReadingAverageByDecimalField.cs # Orm/Xtensive.Orm.Tests/Issues/IssueJira0786_SqlServerAggregatesProblem/AggregatesProblemTestBase.cs # Orm/Xtensive.Orm.Tests/Issues/Issue_0694_SchemaUpgradeBug/UpgradeTest.cs # Orm/Xtensive.Orm.Tests/Linq/ContainsTableTest.cs # Orm/Xtensive.Orm.Tests/Linq/ConvariantQueriesTest.cs # Orm/Xtensive.Orm.Tests/Linq/DateTimeAndDateTimeOffset/BaseTest.cs # Orm/Xtensive.Orm.Tests/Linq/DateTimeAndDateTimeOffset/DateTime/OperationsTest.cs # Orm/Xtensive.Orm.Tests/Linq/DateTimeAndDateTimeOffset/DateTime/PartsExtractionTest.cs # Orm/Xtensive.Orm.Tests/Linq/FreeTextTest.cs # Orm/Xtensive.Orm.Tests/Linq/SelectManyTest.cs # Orm/Xtensive.Orm.Tests/Linq/WhereByEnumTest.cs # Orm/Xtensive.Orm.Tests/Storage/IgnoreRulesValidateTest.cs # Orm/Xtensive.Orm.Tests/Storage/Prefetch/PrefetchManagerBasicTest.cs # Orm/Xtensive.Orm.Tests/Storage/SerializationTest.cs # Orm/Xtensive.Orm.Tests/Storage/TypeCompatibilityTest.cs # Orm/Xtensive.Orm.Tests/Storage/VersionBehaviorTest.cs # Orm/Xtensive.Orm.Tests/Upgrade/EntitySetUpgrade/UpgradeTest.cs # Orm/Xtensive.Orm/Strings.resx
2 parents ee52e53 + b1447b6 commit fed2c4e

540 files changed

Lines changed: 3442 additions & 2040 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Extensions/Xtensive.Orm.BulkOperations.Tests/Issues/JoinedTableAsSourceForDelete.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
using System.Linq;
22
using NUnit.Framework;
33
using Xtensive.Orm.BulkOperations.Tests.Issues.WrongAliassesIssue;
4+
using Xtensive.Orm.Tests;
45

56
namespace Xtensive.Orm.BulkOperations.Tests.Issues
67
{
78
public class JoinedTableAsSourceForOperationsCauseWrongAliases : BulkOperationBaseTest
89
{
10+
protected override void CheckRequirements() => Require.ProviderIsNot(StorageProvider.MySql);
11+
912
[Test]
1013
public void CustomerCase()
1114
{

Extensions/Xtensive.Orm.BulkOperations/Internals/SetOperation.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,9 @@ private void AddComputedStaticExpression(AddValueContext addContext)
105105
QueryTranslationResult request = parent.GetRequest(parent.QueryProvider.CreateQuery<T>(selectExpression));
106106
var sqlSelect = request.Query;
107107
SqlExpression ex = sqlSelect.OrderBy[0].Expression;
108+
if (ex is SqlCast sqlCast) {
109+
ex = sqlCast.Operand;
110+
}
108111
var placeholder = ex as SqlPlaceholder;
109112
if (placeholder == null)
110113
{

Extensions/Xtensive.Orm.Localization.Tests/AccessToLocalizationOnUpgrade.cs

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
using Xtensive.Orm.Upgrade;
66
using Xtensive.Orm.Localization.Tests.Model.Upgrader;
77
using Xtensive.Orm.Tests;
8+
using English = Xtensive.Orm.Localization.Tests.WellKnownCultures.English;
9+
using Spanish = Xtensive.Orm.Localization.Tests.WellKnownCultures.Spanish;
810

911
namespace Xtensive.Orm.Localization.Tests.Model.Upgrader
1012
{
@@ -27,30 +29,23 @@ namespace Xtensive.Orm.Localization.Tests
2729
[TestFixture]
2830
public class AccessToLocalizationOnUpgrade
2931
{
30-
public static CultureInfo EnglishCulture = new CultureInfo("en-US");
31-
public static string EnglishTitle = "Welcome!";
32-
public static string EnglishContent = "My dear guests, welcome to my birthday party!";
33-
34-
public static CultureInfo SpanishCulture = new CultureInfo("es-ES");
35-
public static string SpanishTitle = "Bienvenido!";
36-
public static string SpanishContent = "Mis amigos mejores! Bienvenido a mi cumpleanos!";
37-
3832
[OneTimeSetUp]
3933
public void TestFixtureSetup()
4034
{
4135
var configuration = DomainConfigurationFactory.Create();
4236
configuration.Types.Register(typeof(ILocalizable<>).Assembly);
43-
configuration.Types.Register(typeof(LocalizationBaseTest).Assembly, typeof(LocalizationBaseTest).Namespace);
37+
configuration.Types.Register(typeof(Page).Assembly, typeof(Page).Namespace);
38+
configuration.UpgradeMode = DomainUpgradeMode.Recreate;
4439

4540
using (var domain = Domain.Build(configuration))
4641
using (var session = domain.OpenSession())
4742
using (var transaction = session.OpenTransaction()) {
4843
// populating database
4944
var welcomePage = new Page(session);
50-
welcomePage.Localizations[EnglishCulture].Title = EnglishTitle;
51-
welcomePage.Localizations[EnglishCulture].Content = EnglishContent;
52-
welcomePage.Localizations[SpanishCulture].Title = SpanishTitle;
53-
welcomePage.Localizations[SpanishCulture].Content = SpanishContent;
45+
welcomePage.Localizations[English.Culture].Title = English.Title;
46+
welcomePage.Localizations[English.Culture].Content = English.Content;
47+
welcomePage.Localizations[Spanish.Culture].Title = Spanish.Title;
48+
welcomePage.Localizations[Spanish.Culture].Content = Spanish.Content;
5449

5550
transaction.Complete();
5651
}
@@ -61,14 +56,14 @@ public void MainTest()
6156
{
6257
var configuration = DomainConfigurationFactory.Create();
6358
configuration.Types.Register(typeof (ILocalizable<>).Assembly);
64-
configuration.Types.Register(typeof (LocalizationBaseTest).Assembly, typeof (LocalizationBaseTest).Namespace);
59+
configuration.Types.Register(typeof (Page).Assembly, typeof (Page).Namespace);
6560
configuration.Types.Register(typeof (CustomUpgradeHandler));
6661
configuration.UpgradeMode = DomainUpgradeMode.PerformSafely;
6762

6863
using (var domain = Domain.Build(configuration))
6964
using (var session = domain.OpenSession())
7065
using (var transaction = session.OpenTransaction()) {
71-
_ = session.Query.All<Page>().FirstOrDefault(x => x.Title==EnglishTitle);
66+
_ = session.Query.All<Page>().FirstOrDefault(x => x.Title==English.Title);
7267
}
7368
}
7469
}

Extensions/Xtensive.Orm.Localization.Tests/CurrentThreadTest.cs

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
using System.Threading;
33
using NUnit.Framework;
44
using Xtensive.Orm.Localization.Tests.Model;
5+
using English = Xtensive.Orm.Localization.Tests.WellKnownCultures.English;
6+
using Spanish = Xtensive.Orm.Localization.Tests.WellKnownCultures.Spanish;
57

68
namespace Xtensive.Orm.Localization.Tests
79
{
@@ -16,14 +18,14 @@ public void MainTest()
1618
var welcomePage = new Page(session);
1719

1820
// Editing localizable properties through CurrentThread.CurrentCulture
19-
Thread.CurrentThread.CurrentCulture = EnglishCulture;
20-
welcomePage.Title = EnglishTitle;
21-
welcomePage.Content = EnglishContent;
21+
Thread.CurrentThread.CurrentCulture = English.Culture;
22+
welcomePage.Title = English.Title;
23+
welcomePage.Content = English.Content;
2224

2325
// The same entity, the same properties, but another culture
24-
Thread.CurrentThread.CurrentCulture = SpanishCulture;
25-
welcomePage.Title = SpanishTitle;
26-
welcomePage.Content = SpanishContent;
26+
Thread.CurrentThread.CurrentCulture = Spanish.Culture;
27+
welcomePage.Title = Spanish.Title;
28+
welcomePage.Content = Spanish.Content;
2729

2830
ts.Complete();
2931
}
@@ -37,13 +39,13 @@ public void MainTest()
3739
Assert.AreEqual(2, session.Query.All<PageLocalization>().Count());
3840

3941
var page = session.Query.All<Page>().First();
40-
Thread.CurrentThread.CurrentCulture = EnglishCulture;
41-
Assert.AreEqual(EnglishTitle, page.Title);
42-
Assert.AreEqual(EnglishContent, page.Content);
42+
Thread.CurrentThread.CurrentCulture = English.Culture;
43+
Assert.AreEqual(English.Title, page.Title);
44+
Assert.AreEqual(English.Content, page.Content);
4345

44-
Thread.CurrentThread.CurrentCulture = SpanishCulture;
45-
Assert.AreEqual(SpanishTitle, page.Title);
46-
Assert.AreEqual(SpanishContent, page.Content);
46+
Thread.CurrentThread.CurrentCulture = Spanish.Culture;
47+
Assert.AreEqual(Spanish.Title, page.Title);
48+
Assert.AreEqual(Spanish.Content, page.Content);
4749

4850
ts.Complete();
4951
}

Extensions/Xtensive.Orm.Localization.Tests/DirectEditTest.cs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
using System.Linq;
22
using NUnit.Framework;
33
using Xtensive.Orm.Localization.Tests.Model;
4+
using English = Xtensive.Orm.Localization.Tests.WellKnownCultures.English;
5+
using Spanish = Xtensive.Orm.Localization.Tests.WellKnownCultures.Spanish;
46

57
namespace Xtensive.Orm.Localization.Tests
68
{
@@ -15,10 +17,10 @@ public void MainTest()
1517
var welcomePage = new Page(session);
1618

1719
// Editing localizations directly
18-
welcomePage.Localizations[EnglishCulture].Title = EnglishTitle;
19-
welcomePage.Localizations[EnglishCulture].Content = EnglishContent;
20-
welcomePage.Localizations[SpanishCulture].Title = SpanishTitle;
21-
welcomePage.Localizations[SpanishCulture].Content = SpanishContent;
20+
welcomePage.Localizations[English.Culture].Title = English.Title;
21+
welcomePage.Localizations[English.Culture].Content = English.Content;
22+
welcomePage.Localizations[Spanish.Culture].Title = Spanish.Title;
23+
welcomePage.Localizations[Spanish.Culture].Content = Spanish.Content;
2224

2325
ts.Complete();
2426
}
@@ -31,11 +33,11 @@ public void MainTest()
3133
Assert.AreEqual(2, session.Query.All<PageLocalization>().Count());
3234

3335
var page = session.Query.All<Page>().First();
34-
Assert.AreEqual(EnglishTitle, page.Localizations[EnglishCulture].Title);
35-
Assert.AreEqual(EnglishContent, page.Localizations[EnglishCulture].Content);
36+
Assert.AreEqual(English.Title, page.Localizations[English.Culture].Title);
37+
Assert.AreEqual(English.Content, page.Localizations[English.Culture].Content);
3638

37-
Assert.AreEqual(SpanishTitle, page.Localizations[SpanishCulture].Title);
38-
Assert.AreEqual(SpanishContent, page.Localizations[SpanishCulture].Content);
39+
Assert.AreEqual(Spanish.Title, page.Localizations[Spanish.Culture].Title);
40+
Assert.AreEqual(Spanish.Content, page.Localizations[Spanish.Culture].Content);
3941

4042
ts.Complete();
4143
}

Extensions/Xtensive.Orm.Localization.Tests/LocalizationBaseTest.cs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,18 @@
22
using NUnit.Framework;
33
using Xtensive.Orm.Configuration;
44
using Xtensive.Orm.Tests;
5+
using Xtensive.Orm.Localization.Tests.Model;
56

67
namespace Xtensive.Orm.Localization.Tests
78
{
89
[TestFixture]
910
public abstract class LocalizationBaseTest : AutoBuildTest
1011
{
11-
public static CultureInfo EnglishCulture = new CultureInfo("en-US");
12-
public static string EnglishTitle = "Welcome!";
13-
public static string EnglishContent = "My dear guests, welcome to my birthday party!";
14-
15-
public static CultureInfo SpanishCulture = new CultureInfo("es-ES");
16-
public static string SpanishTitle = "Bienvenido!";
17-
public static string SpanishContent = "Mis amigos mejores! Bienvenido a mi cumpleanos!";
18-
1912
protected override DomainConfiguration BuildConfiguration()
2013
{
2114
var configuration = base.BuildConfiguration();
2215
configuration.Types.Register(typeof(ILocalizable<>).Assembly);
23-
configuration.Types.Register(typeof(LocalizationBaseTest).Assembly, typeof(LocalizationBaseTest).Namespace);
16+
configuration.Types.Register(typeof(Page).Assembly, typeof(Page).Namespace);
2417
return configuration;
2518
}
2619
}

Extensions/Xtensive.Orm.Localization.Tests/LocalizationScopeTest.cs

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
using System.Linq;
22
using NUnit.Framework;
33
using Xtensive.Orm.Localization.Tests.Model;
4+
using English = Xtensive.Orm.Localization.Tests.WellKnownCultures.English;
5+
using Spanish = Xtensive.Orm.Localization.Tests.WellKnownCultures.Spanish;
46

57
namespace Xtensive.Orm.Localization.Tests
68
{
@@ -15,15 +17,15 @@ public void MainTest()
1517
var welcomePage = new Page(session);
1618

1719
// Editing localizable properties through localization scope
18-
using (new LocalizationScope(EnglishCulture)) {
19-
welcomePage.Title = EnglishTitle;
20-
welcomePage.Content = EnglishContent;
20+
using (new LocalizationScope(English.Culture)) {
21+
welcomePage.Title = English.Title;
22+
welcomePage.Content = English.Content;
2123
}
2224

2325
// The same entity, the same properties, but another culture
24-
using (new LocalizationScope(SpanishCulture)) {
25-
welcomePage.Title = SpanishTitle;
26-
welcomePage.Content = SpanishContent;
26+
using (new LocalizationScope(Spanish.Culture)) {
27+
welcomePage.Title = Spanish.Title;
28+
welcomePage.Content = Spanish.Content;
2729
}
2830

2931
ts.Complete();
@@ -37,14 +39,14 @@ public void MainTest()
3739
Assert.AreEqual(2, session.Query.All<PageLocalization>().Count());
3840

3941
var page = session.Query.All<Page>().First();
40-
using (new LocalizationScope(EnglishCulture)) {
41-
Assert.AreEqual(EnglishTitle, page.Title);
42-
Assert.AreEqual(EnglishContent, page.Content);
42+
using (new LocalizationScope(English.Culture)) {
43+
Assert.AreEqual(English.Title, page.Title);
44+
Assert.AreEqual(English.Content, page.Content);
4345
}
4446

45-
using (new LocalizationScope(SpanishCulture)) {
46-
Assert.AreEqual(SpanishTitle, page.Title);
47-
Assert.AreEqual(SpanishContent, page.Content);
47+
using (new LocalizationScope(Spanish.Culture)) {
48+
Assert.AreEqual(Spanish.Title, page.Title);
49+
Assert.AreEqual(Spanish.Content, page.Content);
4850
}
4951

5052
ts.Complete();

Extensions/Xtensive.Orm.Localization.Tests/Model/DictionaryModel.cs

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44

55
using System.Globalization;
66
using Xtensive.Orm.Model;
7+
using Xtensive.Orm.Upgrade;
78

8-
namespace Xtensive.Orm.Localization.Tests.Model
9+
namespace Xtensive.Orm.Localization.Tests.CustomTypeModel
910
{
1011
[HierarchyRoot(InheritanceSchema = InheritanceSchema.ConcreteTable)]
1112
public abstract class AbstractDictionary : Entity
@@ -46,13 +47,31 @@ protected AbstractDictionaryLocalization(Session session, CultureInfo culture, T
4647

4748
public class Country : AbstractLocalizableDictionary<Country, CountryLocalization>, ILocalizable<CountryLocalization>
4849
{
49-
public Country(Session session) : base(session) { }
50+
public Country(Session session)
51+
: base(session)
52+
{
53+
}
5054
}
5155

5256
[HierarchyRoot]
5357
public class CountryLocalization : AbstractDictionaryLocalization<Country, CountryLocalization>
5458
{
55-
public CountryLocalization(Session session, CultureInfo culture, Country target) : base(session, culture, target) { }
59+
public CountryLocalization(Session session, CultureInfo culture, Country target)
60+
: base(session, culture, target)
61+
{
62+
}
5663
}
5764

65+
namespace Upgrade
66+
{
67+
public class CustomUpgradeHandler : UpgradeHandler
68+
{
69+
public override bool CanUpgradeFrom(string oldVersion)
70+
{
71+
return true;
72+
}
73+
74+
public override void OnBeforeExecuteActions(UpgradeActionSequence actions) => base.OnBeforeExecuteActions(actions);
75+
}
76+
}
5877
}

0 commit comments

Comments
 (0)