MCPcopy Index your code
hub / github.com/github/gh-ost / TestBuildRangeComparison

Function TestBuildRangeComparison

go/sql/builder_test.go:99–159  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

97}
98
99func TestBuildRangeComparison(t *testing.T) {
100 {
101 columns := []string{"c1"}
102 values := []string{"@v1"}
103 args := []interface{}{3}
104 comparison, explodedArgs, err := BuildRangeComparison(columns, values, args, LessThanComparisonSign)
105 require.NoError(t, err)
106 require.Equal(t, "((`c1` < @v1))", comparison)
107 require.Equal(t, []interface{}{3}, explodedArgs)
108 }
109 {
110 columns := []string{"c1"}
111 values := []string{"@v1"}
112 args := []interface{}{3}
113 comparison, explodedArgs, err := BuildRangeComparison(columns, values, args, LessThanOrEqualsComparisonSign)
114 require.NoError(t, err)
115 require.Equal(t, "((`c1` < @v1) or ((`c1` = @v1)))", comparison)
116 require.Equal(t, []interface{}{3, 3}, explodedArgs)
117 }
118 {
119 columns := []string{"c1", "c2"}
120 values := []string{"@v1", "@v2"}
121 args := []interface{}{3, 17}
122 comparison, explodedArgs, err := BuildRangeComparison(columns, values, args, LessThanComparisonSign)
123 require.NoError(t, err)
124 require.Equal(t, "((`c1` < @v1) or (((`c1` = @v1)) AND (`c2` < @v2)))", comparison)
125 require.Equal(t, []interface{}{3, 3, 17}, explodedArgs)
126 }
127 {
128 columns := []string{"c1", "c2"}
129 values := []string{"@v1", "@v2"}
130 args := []interface{}{3, 17}
131 comparison, explodedArgs, err := BuildRangeComparison(columns, values, args, LessThanOrEqualsComparisonSign)
132 require.NoError(t, err)
133 require.Equal(t, "((`c1` < @v1) or (((`c1` = @v1)) AND (`c2` < @v2)) or ((`c1` = @v1) and (`c2` = @v2)))", comparison)
134 require.Equal(t, []interface{}{3, 3, 17, 3, 17}, explodedArgs)
135 }
136 {
137 columns := []string{"c1", "c2", "c3"}
138 values := []string{"@v1", "@v2", "@v3"}
139 args := []interface{}{3, 17, 22}
140 comparison, explodedArgs, err := BuildRangeComparison(columns, values, args, LessThanOrEqualsComparisonSign)
141 require.NoError(t, err)
142 require.Equal(t, "((`c1` < @v1) or (((`c1` = @v1)) AND (`c2` < @v2)) or (((`c1` = @v1) and (`c2` = @v2)) AND (`c3` < @v3)) or ((`c1` = @v1) and (`c2` = @v2) and (`c3` = @v3)))", comparison)
143 require.Equal(t, []interface{}{3, 3, 17, 3, 17, 22, 3, 17, 22}, explodedArgs)
144 }
145 {
146 columns := []string{"c1"}
147 values := []string{"@v1", "@v2"}
148 args := []interface{}{3, 17}
149 _, _, err := BuildRangeComparison(columns, values, args, LessThanOrEqualsComparisonSign)
150 require.Error(t, err)
151 }
152 {
153 columns := []string{}
154 values := []string{}
155 args := []interface{}{}
156 _, _, err := BuildRangeComparison(columns, values, args, LessThanOrEqualsComparisonSign)

Callers

nothing calls this directly

Calls 2

BuildRangeComparisonFunction · 0.85
ErrorMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…