Skip to content

Commit a5a0fc0

Browse files
committed
default(DateTime) is actualy a conditionless condition
(cherry picked from commit 2b4e6df)
1 parent abbee5b commit a5a0fc0

File tree

2 files changed

+9
-45
lines changed

2 files changed

+9
-45
lines changed

src/Nest/QueryDsl/TermLevel/Range/DateRangeQuery .cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ public class DateRangeQuery : FieldNameQueryBase, IDateRangeQuery
4343
internal override void InternalWrapInContainer(IQueryContainer c) => c.Range = this;
4444

4545
internal static bool IsConditionless(IDateRangeQuery q) => q.Field.IsConditionless()
46-
&& (q.GreaterThanOrEqualTo == null || !q.GreaterThanOrEqualTo.IsValid)
46+
|| ((q.GreaterThanOrEqualTo == null || !q.GreaterThanOrEqualTo.IsValid)
4747
&& (q.LessThanOrEqualTo == null || !q.LessThanOrEqualTo.IsValid)
4848
&& (q.GreaterThan == null || !q.GreaterThan.IsValid)
49-
&& (q.LessThan == null || !q.LessThan.IsValid);
49+
&& (q.LessThan == null || !q.LessThan.IsValid));
5050
}
5151

5252
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]

src/Tests/Tests/QueryDsl/TermLevel/Range/DateRangeQueryUsageTests.cs

Lines changed: 7 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ public DateRangeQueryUsageTests(ReadOnlyCluster cluster, EndpointUsage usage) :
1919
q.GreaterThanOrEqualTo = null;
2020
q.LessThan = null;
2121
q.LessThanOrEqualTo = null;
22+
},
23+
q =>
24+
{
25+
q.GreaterThan = default;
26+
q.GreaterThanOrEqualTo = default;
27+
q.LessThan = default;
28+
q.LessThanOrEqualTo = default;
2229
}
2330
};
2431

@@ -67,47 +74,4 @@ protected override QueryContainer QueryFluent(QueryContainerDescriptor<Project>
6774
);
6875
}
6976

70-
public class DateRangeDefaultDateTimeQueryUsageTests : QueryDslUsageTestsBase
71-
{
72-
public DateRangeDefaultDateTimeQueryUsageTests(ReadOnlyCluster cluster, EndpointUsage usage) : base(cluster, usage) { }
73-
74-
protected override ConditionlessWhen ConditionlessWhen => new ConditionlessWhen<IDateRangeQuery>(q => q.Range as IDateRangeQuery)
75-
{ };
76-
77-
protected override QueryContainer QueryInitializer => new DateRangeQuery
78-
{
79-
Field = "description",
80-
GreaterThan = default,
81-
GreaterThanOrEqualTo = default,
82-
LessThan = default,
83-
LessThanOrEqualTo = default,
84-
Format = "dd/MM/yyyy||yyyy",
85-
TimeZone = "+01:00"
86-
};
87-
88-
//TODO in 7.0 DateMath should make its DateTime nullable so that DateTime.MinValue is sent out as well.
89-
// this is only marginally better then sending an empty string.
90-
protected override object QueryJson => new
91-
{
92-
range = new
93-
{
94-
description = new
95-
{
96-
format = "dd/MM/yyyy||yyyy",
97-
time_zone = "+01:00"
98-
}
99-
}
100-
};
101-
102-
protected override QueryContainer QueryFluent(QueryContainerDescriptor<Project> q) => q
103-
.DateRange(c => c
104-
.Field(p => p.Description)
105-
.GreaterThan(default)
106-
.GreaterThanOrEquals(default)
107-
.LessThan(default)
108-
.LessThanOrEquals(default)
109-
.Format("dd/MM/yyyy||yyyy")
110-
.TimeZone("+01:00")
111-
);
112-
}
11377
}

0 commit comments

Comments
 (0)