Skip to content

Commit dd257aa

Browse files
committed
Merge branch '6.0' into 6.0-tests-imps
2 parents 1181a4b + 7193d7a commit dd257aa

File tree

12 files changed

+1907
-84
lines changed

12 files changed

+1907
-84
lines changed

ChangeLog/6.0.13_dev.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
[main] Fixed certain cases of bad translation of casts via 'as' operator in LINQ queries
22
[main] Addressed certain issues of translation connected with comparison with local entity instace within LINQ queries
3+
[main] Fixed rare issues of incorrect translation of filtered index expressions including conditional expressions
4+
[postgresql] Fixed issue of incorrect translation of contitional expressions including comparison with nullable fields
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Text;
4+
using NUnit.Framework;
5+
using NUnit.Framework.Interfaces;
6+
7+
namespace Xtensive.Orm.Tests
8+
{
9+
/// <summary>
10+
/// Base attribute for test storage requirement
11+
/// </summary>
12+
public abstract class RequireProvderAttribute : Attribute, ITestAction
13+
{
14+
private Version minVersion = null;
15+
private Version maxVersion = null;
16+
17+
/// <summary>
18+
/// Gets or sets Minimal version that required for test.
19+
/// If not set, version check is not applied
20+
/// </summary>
21+
public virtual string MinVersion
22+
{
23+
get { return (minVersion == null) ? null : minVersion.ToString(); }
24+
set {
25+
if (value == null)
26+
minVersion = null;
27+
else if (!Version.TryParse(value, out minVersion))
28+
throw new ArgumentException("Not a version string", nameof(value));
29+
}
30+
}
31+
32+
/// <summary>
33+
/// Gets or sets Maximal version that required for test.
34+
/// If not set, version check is not applied.
35+
/// </summary>
36+
public virtual string MaxVersion
37+
{
38+
get { return (maxVersion == null) ? null : maxVersion.ToString(); }
39+
set {
40+
if (value == null)
41+
maxVersion = null;
42+
else if (!Version.TryParse(value, out maxVersion))
43+
throw new ArgumentException("Not a version string", nameof(value));
44+
}
45+
}
46+
47+
protected abstract StorageProvider RequiredProviders { get; }
48+
49+
public ActionTargets Targets => ActionTargets.Test;
50+
51+
public void AfterTest(ITest test)
52+
{
53+
Require.ProviderIs(RequiredProviders);
54+
if (minVersion != null)
55+
Require.ProviderVersionAtLeast(minVersion);
56+
if (maxVersion != null)
57+
Require.ProviderVersionAtMost(maxVersion);
58+
}
59+
60+
public void BeforeTest(ITest test) { }
61+
}
62+
63+
[AttributeUsage(AttributeTargets.Method)]
64+
public class RequireSqlServerAttribute : RequireProvderAttribute
65+
{
66+
protected override StorageProvider RequiredProviders => StorageProvider.SqlServer;
67+
}
68+
69+
[AttributeUsage(AttributeTargets.Method)]
70+
public class RequirePostgreSqlAttribute : RequireProvderAttribute
71+
{
72+
protected override StorageProvider RequiredProviders => StorageProvider.PostgreSql;
73+
}
74+
75+
[AttributeUsage(AttributeTargets.Method)]
76+
public class RequireMySqlAttribute : RequireProvderAttribute
77+
{
78+
protected override StorageProvider RequiredProviders => StorageProvider.MySql;
79+
}
80+
81+
[AttributeUsage(AttributeTargets.Method)]
82+
public class RequireFirebirdAttribute : RequireProvderAttribute
83+
{
84+
protected override StorageProvider RequiredProviders => StorageProvider.Firebird;
85+
}
86+
87+
[AttributeUsage(AttributeTargets.Method)]
88+
public class RequireOracleSqlAttribute : RequireProvderAttribute
89+
{
90+
protected override StorageProvider RequiredProviders => StorageProvider.Oracle;
91+
}
92+
93+
[AttributeUsage(AttributeTargets.Method)]
94+
public class RequireSqliteAttribute : RequireProvderAttribute
95+
{
96+
protected override StorageProvider RequiredProviders => StorageProvider.Sqlite;
97+
}
98+
99+
[AttributeUsage(AttributeTargets.Method)]
100+
public class RequireSeveralProvidersAttribute : RequireProvderAttribute
101+
{
102+
private readonly StorageProvider providers;
103+
104+
protected override StorageProvider RequiredProviders => providers;
105+
106+
public override string MinVersion
107+
{
108+
get => throw new NotSupportedException();
109+
set => throw new NotSupportedException();
110+
}
111+
112+
public override string MaxVersion
113+
{
114+
get => throw new NotSupportedException();
115+
set => throw new NotSupportedException();
116+
}
117+
118+
public RequireSeveralProvidersAttribute(StorageProvider allowedProviders)
119+
{
120+
providers = allowedProviders;
121+
}
122+
}
123+
}

0 commit comments

Comments
 (0)