MB-20793 : Validation for min/max/start/end params for numeric/date range facets
Added few more cases in the unit tests.
This commit is contained in:
parent
78686c3fa3
commit
c6f96f081d
|
@ -185,80 +185,88 @@ func TestUnmarshalingSearchResult(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func verifyErrors(t *testing.T, actual, expected error) {
|
||||
//success case.
|
||||
if actual == nil && actual == expected {
|
||||
return
|
||||
}
|
||||
//actual error matches the expected error.
|
||||
if actual != nil && expected != nil && actual.Error() != expected.Error() {
|
||||
t.Error(actual)
|
||||
} else if actual == nil {
|
||||
t.Error("Expected -> " + expected.Error())
|
||||
}
|
||||
}
|
||||
|
||||
func TestFacetNumericDateRangeRequests(t *testing.T) {
|
||||
var drMissingErr = fmt.Errorf("date range query must specify either start, end or both for range name 'testName'")
|
||||
var nrMissingErr = fmt.Errorf("numeric range query must specify either min, max or both for range name 'testName'")
|
||||
var drNrErr = fmt.Errorf("facet can only conain numeric ranges or date ranges, not both")
|
||||
var drNameDupErr = fmt.Errorf("date ranges contains duplicate name 'testName'")
|
||||
var nrNameDupErr = fmt.Errorf("numeric ranges contains duplicate name 'testName'")
|
||||
value := float64(5)
|
||||
|
||||
facet := NewFacetRequest("Date_Range_Success_With_StartEnd", 1)
|
||||
facet.DateTimeRanges = make([]*dateTimeRange, 0, 1)
|
||||
facet.DateTimeRanges = append(facet.DateTimeRanges, &dateTimeRange{Name: "testName", Start: time.Unix(0, 0), End: time.Now()})
|
||||
if err := facet.Validate(); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
verifyErrors(t, facet.Validate(), nil)
|
||||
|
||||
facet = NewFacetRequest("Date_Range_Success_With_Start", 1)
|
||||
facet.DateTimeRanges = make([]*dateTimeRange, 0, 1)
|
||||
facet.DateTimeRanges = append(facet.DateTimeRanges, &dateTimeRange{Name: "testName", Start: time.Unix(0, 0)})
|
||||
if err := facet.Validate(); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
verifyErrors(t, facet.Validate(), nil)
|
||||
|
||||
facet = NewFacetRequest("Date_Range_Success_With_End", 1)
|
||||
facet.DateTimeRanges = make([]*dateTimeRange, 0, 1)
|
||||
facet.DateTimeRanges = append(facet.DateTimeRanges, &dateTimeRange{Name: "testName", End: time.Now()})
|
||||
if err := facet.Validate(); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
verifyErrors(t, facet.Validate(), nil)
|
||||
|
||||
facet = NewFacetRequest("Numeric_Range_Success_With_MinMax", 1)
|
||||
facet.NumericRanges = make([]*numericRange, 0, 1)
|
||||
facet.NumericRanges = append(facet.NumericRanges, &numericRange{Name: "testName", Min: &value, Max: &value})
|
||||
if err := facet.Validate(); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
verifyErrors(t, facet.Validate(), nil)
|
||||
|
||||
facet = NewFacetRequest("Numeric_Range_Success_With_Min", 1)
|
||||
facet.NumericRanges = make([]*numericRange, 0, 1)
|
||||
facet.NumericRanges = append(facet.NumericRanges, &numericRange{Name: "testName", Min: &value})
|
||||
if err := facet.Validate(); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
verifyErrors(t, facet.Validate(), nil)
|
||||
|
||||
facet = NewFacetRequest("Numeric_Range_Success_With_Max", 1)
|
||||
facet.NumericRanges = make([]*numericRange, 0, 1)
|
||||
facet.NumericRanges = append(facet.NumericRanges, &numericRange{Name: "testName", Max: &value})
|
||||
if err := facet.Validate(); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
verifyErrors(t, facet.Validate(), nil)
|
||||
|
||||
facet = NewFacetRequest("Date_Range_Missing_Failure", 1)
|
||||
facet.DateTimeRanges = make([]*dateTimeRange, 0, 1)
|
||||
facet.DateTimeRanges = append(facet.DateTimeRanges, &dateTimeRange{Name: "testName2", Start: time.Unix(0, 0)})
|
||||
facet.DateTimeRanges = append(facet.DateTimeRanges, &dateTimeRange{Name: "testName1", End: time.Now()})
|
||||
facet.DateTimeRanges = append(facet.DateTimeRanges, &dateTimeRange{Name: "testName"})
|
||||
if err := facet.Validate(); err != nil {
|
||||
if err.Error() != drMissingErr.Error() {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
verifyErrors(t, facet.Validate(), drMissingErr)
|
||||
|
||||
facet = NewFacetRequest("Numeric_Range_Missing_Failure", 1)
|
||||
facet.NumericRanges = make([]*numericRange, 0, 1)
|
||||
facet.NumericRanges = append(facet.NumericRanges, &numericRange{Name: "testName2", Min: &value})
|
||||
facet.NumericRanges = append(facet.NumericRanges, &numericRange{Name: "testName1", Max: &value})
|
||||
facet.NumericRanges = append(facet.NumericRanges, &numericRange{Name: "testName"})
|
||||
if err := facet.Validate(); err != nil {
|
||||
if err.Error() != nrMissingErr.Error() {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
verifyErrors(t, facet.Validate(), nrMissingErr)
|
||||
|
||||
facet = NewFacetRequest("Numeric_And_DateRanges_Failure", 1)
|
||||
facet.NumericRanges = make([]*numericRange, 0, 1)
|
||||
facet.NumericRanges = append(facet.NumericRanges, &numericRange{Name: "testName", Min: &value, Max: nil})
|
||||
facet.DateTimeRanges = make([]*dateTimeRange, 0, 1)
|
||||
facet.DateTimeRanges = append(facet.DateTimeRanges, &dateTimeRange{Name: "testName", Start: time.Unix(0, 0), End: time.Now()})
|
||||
if err := facet.Validate(); err != nil {
|
||||
if err.Error() != drNrErr.Error() {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
verifyErrors(t, facet.Validate(), drNrErr)
|
||||
|
||||
facet = NewFacetRequest("Date_Range_Name_Repeat_Failure", 1)
|
||||
facet.DateTimeRanges = make([]*dateTimeRange, 0, 1)
|
||||
facet.DateTimeRanges = append(facet.DateTimeRanges, &dateTimeRange{Name: "testName", Start: time.Unix(0, 0)})
|
||||
facet.DateTimeRanges = append(facet.DateTimeRanges, &dateTimeRange{Name: "testName", End: time.Now()})
|
||||
verifyErrors(t, facet.Validate(), drNameDupErr)
|
||||
|
||||
facet = NewFacetRequest("Numeric_Range_Name_Repeat_Failure", 1)
|
||||
facet.NumericRanges = make([]*numericRange, 0, 1)
|
||||
facet.NumericRanges = append(facet.NumericRanges, &numericRange{Name: "testName", Min: &value})
|
||||
facet.NumericRanges = append(facet.NumericRanges, &numericRange{Name: "testName", Max: &value})
|
||||
verifyErrors(t, facet.Validate(), nrNameDupErr)
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue