Skip to content

Commit 476d57a

Browse files
author
Niall Langley
committed
Fixed issue converting leading or trailing wildcard to regex for like operator dynamic linq
1 parent aabfaee commit 476d57a

File tree

4 files changed

+21
-20
lines changed

4 files changed

+21
-20
lines changed

DataPipelineTools.Tests/Common/FilterFactoryTests/CreateTests.cs

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -27,23 +27,23 @@ public void Setup()
2727
[TestCaseSource(nameof(InvalidColumnNames))]
2828
public void Given_ColumNameIsNotValidProperty_Should_ReturnFilterWithIsValidEqualsFalse(string propertyName)
2929
{
30-
var result = FilterFactory<TestPoco>.Create(propertyName, string.Empty, MockLogger.Object);
30+
var result = FilterFactory<TestPoco>.Create(propertyName, string.Empty, Logger);
3131

3232
Assert.That(result.IsValid, Is.EqualTo(false));
3333
}
3434

3535
[TestCaseSource(nameof(InvalidColumnNames))]
3636
public void Given_ColumNameIsNotValidProperty_Should_ReturnFilterWithErrorMessageValue(string propertyName)
3737
{
38-
var result = FilterFactory<TestPoco>.Create(propertyName, string.Empty, MockLogger.Object);
38+
var result = FilterFactory<TestPoco>.Create(propertyName, string.Empty, Logger);
3939

4040
Assert.That(result.ErrorMessage, Is.Not.Null);
4141
}
4242

4343
[TestCaseSource(nameof(InvalidColumnNames))]
4444
public void Given_ColumNameIsNotValidProperty_Should_LogWarningOnce(string propertyName)
4545
{
46-
var result = FilterFactory<TestPoco>.Create(propertyName, string.Empty, MockLogger.Object);
46+
var result = FilterFactory<TestPoco>.Create(propertyName, string.Empty, Logger);
4747

4848
MockLogger.VerifyLogging(LogLevel.Warning, Times.Once());
4949
}
@@ -57,23 +57,23 @@ public void Given_ColumNameIsNotValidProperty_Should_LogWarningOnce(string prope
5757
[TestCaseSource(nameof(InvalidOperators))]
5858
public void Given_OperatorIsNotValid_Should_ReturnFilterWithIsValidEqualsFalse(string filter)
5959
{
60-
var result = FilterFactory<TestPoco>.Create(nameof(TestPoco.StringProp), filter, MockLogger.Object);
60+
var result = FilterFactory<TestPoco>.Create(nameof(TestPoco.StringProp), filter, Logger);
6161

6262
Assert.That(result.IsValid, Is.EqualTo(false));
6363
}
6464

6565
[TestCaseSource(nameof(InvalidOperators))]
6666
public void Given_OperatorIsNotValid_Should_ReturnFilterWithErrorMessageValue(string filter)
6767
{
68-
var result = FilterFactory<TestPoco>.Create(nameof(TestPoco.StringProp), filter, MockLogger.Object);
68+
var result = FilterFactory<TestPoco>.Create(nameof(TestPoco.StringProp), filter, Logger);
6969

7070
Assert.That(result.ErrorMessage, Is.Not.Null);
7171
}
7272

7373
[TestCaseSource(nameof(InvalidOperators))]
7474
public void Given_OperatorIsNotValid_Should_LogWarningOnce(string filter)
7575
{
76-
var result = FilterFactory<TestPoco>.Create(nameof(TestPoco.StringProp), filter, MockLogger.Object);
76+
var result = FilterFactory<TestPoco>.Create(nameof(TestPoco.StringProp), filter, Logger);
7777

7878
MockLogger.VerifyLogging(LogLevel.Warning, Times.Once());
7979
}
@@ -97,23 +97,23 @@ public void Given_OperatorIsNotValid_Should_LogWarningOnce(string filter)
9797
[TestCaseSource(nameof(ValidNonStringColumnTypes))]
9898
public void Given_ValueDoesNotCastToNamedColumnType_Should_ReturnFilterWithIsValidEqualsFalse(string propertyName)
9999
{
100-
var result = FilterFactory<TestPoco>.Create(propertyName, ValueDoesNotCastToNamedColumnTypeValue, MockLogger.Object);
100+
var result = FilterFactory<TestPoco>.Create(propertyName, ValueDoesNotCastToNamedColumnTypeValue, Logger);
101101

102102
Assert.That(result.IsValid, Is.EqualTo(false));
103103
}
104104

105105
[TestCaseSource(nameof(InvalidOperators))]
106106
public void Given_ValueDoesNotCastToNamedColumnType_Should_ReturnFilterWithErrorMessageValue(string propertyName)
107107
{
108-
var result = FilterFactory<TestPoco>.Create(propertyName, ValueDoesNotCastToNamedColumnTypeValue, MockLogger.Object);
108+
var result = FilterFactory<TestPoco>.Create(propertyName, ValueDoesNotCastToNamedColumnTypeValue, Logger);
109109

110110
Assert.That(result.ErrorMessage, Is.Not.Null);
111111
}
112112

113113
[TestCaseSource(nameof(InvalidOperators))]
114114
public void Given_ValueDoesNotCastToNamedColumnType_Should_LogWarningOnce(string propertyName)
115115
{
116-
var result = FilterFactory<TestPoco>.Create(propertyName, ValueDoesNotCastToNamedColumnTypeValue, MockLogger.Object);
116+
var result = FilterFactory<TestPoco>.Create(propertyName, ValueDoesNotCastToNamedColumnTypeValue, Logger);
117117

118118
MockLogger.VerifyLogging(LogLevel.Warning, Times.Once());
119119
}
@@ -140,7 +140,7 @@ public void Given_ValidColumnNameAndFilter_Should_ReturnFilterWithIsValidEqualsT
140140
[ValueSource(nameof(SimpleFilterTypes))] string filter
141141
)
142142
{
143-
var result = FilterFactory<TestPoco>.Create(propertyName.Key, $"{filter}:{propertyName.Value}", MockLogger.Object);
143+
var result = FilterFactory<TestPoco>.Create(propertyName.Key, $"{filter}:{propertyName.Value}", Logger);
144144

145145
Assert.That(result.IsValid, Is.EqualTo(true));
146146
}
@@ -151,7 +151,7 @@ public void Given_ValidColumnNameAndFilter_Should_ReturnFilterErrorMessageIsNull
151151
[ValueSource(nameof(SimpleFilterTypes))] string filter
152152
)
153153
{
154-
var result = FilterFactory<TestPoco>.Create(propertyName.Key, $"{filter}:{propertyName.Value}", MockLogger.Object);
154+
var result = FilterFactory<TestPoco>.Create(propertyName.Key, $"{filter}:{propertyName.Value}", Logger);
155155

156156
Assert.That(result.ErrorMessage, Is.Null);
157157
}
@@ -162,7 +162,7 @@ public void Given_ValidColumnNameAndFilter_Should_LogZeroWarnings(
162162
[ValueSource(nameof(SimpleFilterTypes))] string filter
163163
)
164164
{
165-
var result = FilterFactory<TestPoco>.Create(propertyName.Key, $"{filter}:{propertyName.Value}", MockLogger.Object);
165+
var result = FilterFactory<TestPoco>.Create(propertyName.Key, $"{filter}:{propertyName.Value}", Logger);
166166

167167
MockLogger.VerifyLogging(LogLevel.Warning, Times.Never());
168168
}
@@ -173,47 +173,47 @@ public void Given_ValidColumnNameAndFilter_Should_LogZeroWarnings(
173173
[Test]
174174
public void Given_LikeFilterWithStringColumn_Should_ReturnFilterWithIsValidEqualsTrue()
175175
{
176-
var result = FilterFactory<TestPoco>.Create(nameof(TestPoco.StringProp), $"like:hello*", MockLogger.Object);
176+
var result = FilterFactory<TestPoco>.Create(nameof(TestPoco.StringProp), $"like:hello*", Logger);
177177

178178
Assert.That(result.IsValid, Is.EqualTo(true));
179179
}
180180

181181
[Test]
182182
public void Given_LikeFilterWithStringColumn_Should_ReturnFilterErrorMessageIsNull()
183183
{
184-
var result = FilterFactory<TestPoco>.Create(nameof(TestPoco.StringProp), $"like:hello*", MockLogger.Object);
184+
var result = FilterFactory<TestPoco>.Create(nameof(TestPoco.StringProp), $"like:hello*", Logger);
185185

186186
Assert.That(result.ErrorMessage, Is.Null);
187187
}
188188

189189
[Test]
190190
public void Given_LikeFilterWithStringColumn_Should_LogZeroWarnings()
191191
{
192-
var result = FilterFactory<TestPoco>.Create(nameof(TestPoco.StringProp), $"like:hello*", MockLogger.Object);
192+
var result = FilterFactory<TestPoco>.Create(nameof(TestPoco.StringProp), $"like:hello*", Logger);
193193

194194
MockLogger.VerifyLogging(LogLevel.Warning, Times.Never());
195195
}
196196

197197
[TestCaseSource(nameof(ValidNonStringColumnTypes))]
198198
public void Given_LikeFilterWithNonStringColumn_Should_ReturnFilterWithIsValidEqualsFalse(string propertyName)
199199
{
200-
var result = FilterFactory<TestPoco>.Create(propertyName, $"like:hello*", MockLogger.Object);
200+
var result = FilterFactory<TestPoco>.Create(propertyName, $"like:hello*", Logger);
201201

202202
Assert.That(result.IsValid, Is.EqualTo(false));
203203
}
204204

205205
[TestCaseSource(nameof(ValidNonStringColumnTypes))]
206206
public void Given_LikeFilterWithNonStringColumn_Should_ReturnFilterWithErrorMessageValue(string propertyName)
207207
{
208-
var result = FilterFactory<TestPoco>.Create(propertyName, $"like:hello*", MockLogger.Object);
208+
var result = FilterFactory<TestPoco>.Create(propertyName, $"like:hello*", Logger);
209209

210210
Assert.That(result.ErrorMessage, Is.Not.Null);
211211
}
212212

213213
[TestCaseSource(nameof(ValidNonStringColumnTypes))]
214214
public void Given_LikeFilterWithNonStringColumn_Should_LogWarningOnce(string propertyName)
215215
{
216-
var result = FilterFactory<TestPoco>.Create(propertyName, $"like:hello*", MockLogger.Object);
216+
var result = FilterFactory<TestPoco>.Create(propertyName, $"like:hello*", Logger);
217217

218218
MockLogger.VerifyLogging(LogLevel.Warning, Times.Once());
219219
}

DataPipelineTools.Tests/Common/FilterTests/GetDynamicLinqValueTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public void Given_ValueWithWildcards_And_OpertatorIsLike_Should_Return_ValueWith
5454
var result = filter.GetDynamicLinqValue();
5555

5656

57-
Assert.That(result, Is.EqualTo("Some.+ne"));
57+
Assert.That(result, Is.EqualTo("Some.*ne"));
5858
}
5959
}
6060
}

DataPipelineTools.Tests/TestBase.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ namespace DataPipelineTools.Tests
1111
{
1212
public abstract class TestBase<T>: TestBase
1313
{
14+
protected ILogger<T> Logger => MockLogger.Object;
1415
protected readonly Mock<ILogger<T>> MockLogger;
1516

1617
internal TestBase()

DataPipelineTools/Common/Filter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public string GetDynamicLinqString()
3131

3232
public string GetDynamicLinqValue()
3333
{
34-
return Operator == "like" ? Value.Replace("*", ".+") : Value;
34+
return Operator == "like" ? Value.Replace("*", ".*") : Value;
3535
}
3636

3737

0 commit comments

Comments
 (0)