(t *testing.T)
| 97 | } |
| 98 | |
| 99 | func TestConvertSpannerValue(t *testing.T) { |
| 100 | tests := []struct { |
| 101 | name string |
| 102 | colType *sppb.Type |
| 103 | value *structpb.Value |
| 104 | expected *v1pb.RowValue |
| 105 | }{ |
| 106 | { |
| 107 | name: "nil value", |
| 108 | colType: nil, |
| 109 | value: nil, |
| 110 | expected: util.NullRowValue, |
| 111 | }, |
| 112 | { |
| 113 | name: "null value", |
| 114 | colType: &sppb.Type{Code: sppb.TypeCode_STRING}, |
| 115 | value: structpb.NewNullValue(), |
| 116 | expected: util.NullRowValue, |
| 117 | }, |
| 118 | { |
| 119 | name: "string value", |
| 120 | colType: &sppb.Type{Code: sppb.TypeCode_STRING}, |
| 121 | value: structpb.NewStringValue("hello"), |
| 122 | expected: &v1pb.RowValue{Kind: &v1pb.RowValue_StringValue{ |
| 123 | StringValue: "hello", |
| 124 | }}, |
| 125 | }, |
| 126 | { |
| 127 | name: "bool value - true", |
| 128 | colType: &sppb.Type{Code: sppb.TypeCode_BOOL}, |
| 129 | value: structpb.NewBoolValue(true), |
| 130 | expected: &v1pb.RowValue{Kind: &v1pb.RowValue_BoolValue{ |
| 131 | BoolValue: true, |
| 132 | }}, |
| 133 | }, |
| 134 | { |
| 135 | name: "bool value - false", |
| 136 | colType: &sppb.Type{Code: sppb.TypeCode_BOOL}, |
| 137 | value: structpb.NewBoolValue(false), |
| 138 | expected: &v1pb.RowValue{Kind: &v1pb.RowValue_BoolValue{ |
| 139 | BoolValue: false, |
| 140 | }}, |
| 141 | }, |
| 142 | { |
| 143 | name: "float64 value", |
| 144 | colType: &sppb.Type{Code: sppb.TypeCode_FLOAT64}, |
| 145 | value: structpb.NewNumberValue(3.14159), |
| 146 | expected: &v1pb.RowValue{Kind: &v1pb.RowValue_DoubleValue{ |
| 147 | DoubleValue: 3.14159, |
| 148 | }}, |
| 149 | }, |
| 150 | { |
| 151 | name: "int64 small value", |
| 152 | colType: &sppb.Type{Code: sppb.TypeCode_INT64}, |
| 153 | value: structpb.NewNumberValue(42), |
| 154 | expected: &v1pb.RowValue{Kind: &v1pb.RowValue_Int64Value{ |
| 155 | Int64Value: 42, |
| 156 | }}, |
nothing calls this directly
no test coverage detected