susumu.yata
null+****@clear*****
Wed Jul 29 22:17:03 JST 2015
susumu.yata 2015-07-29 22:17:03 +0900 (Wed, 29 Jul 2015) New Revision: 76385352f53f25a93dc5467c385e0bb90a87eae4 https://github.com/groonga/grngo/commit/76385352f53f25a93dc5467c385e0bb90a87eae4 Message: Test combinations of _key and _value. Modified files: grngo_test.go Modified: grngo_test.go (+62 -0) =================================================================== --- grngo_test.go 2015-07-29 22:07:38 +0900 (3c43481) +++ grngo_test.go 2015-07-29 22:17:03 +0900 (9a0a448) @@ -395,6 +395,68 @@ func TestValue(t *testing.T) { } } +func TestKeyValue(t *testing.T) { + dirPath, _, db := createTempDB(t) + defer removeTempDB(t, dirPath, db) + + keyTypes := []string{ + "Bool", "Int8", "Int16", "Int32", "Int64", "UInt8", "UInt16", "UInt32", + "UInt64", "Float", "Time", "ShortText", "TokyoGeoPoint", "WGS84GeoPoint", + } + valueTypes := []string{ + "Bool", "Int8", "Int16", "Int32", "Int64", "UInt8", "UInt16", "UInt32", + "UInt64", "Float", "Time", "TokyoGeoPoint", "WGS84GeoPoint", + } + for _, keyType := range keyTypes { + for _, valueType := range valueTypes { + t.Logf("keyType = %s, valueType = %s", keyType, valueType) + options := NewTableOptions() + options.KeyType = keyType + options.ValueType = valueType + table, err := db.CreateTable("Table", options) + if err != nil { + t.Fatalf("DB.CreateTable() failed: %v", err) + } + keyColumn, err := table.FindColumn("_key") + if err != nil { + t.Fatalf("Table.FindColumn() failed: %v", err) + } + valueColumn, err := table.FindColumn("_value") + if err != nil { + t.Fatalf("Table.FindColumn() failed: %v", err) + } + for i := 0; i < 100; i++ { + key := generateRandomKey(keyType) + _, id, err := table.InsertRow(key) + if err != nil { + t.Fatalf("Table.InsertRow() failed: %v", err) + } + storedKey, err := keyColumn.GetValue(id) + if err != nil { + t.Fatalf("Column.GetValue() failed: %v", err) + } + if !reflect.DeepEqual(key, storedKey) { + t.Fatalf("DeepEqual() failed") + } + value := generateRandomValue(valueType) + if err := valueColumn.SetValue(id, value); err != nil { + t.Fatalf("Column.SetValue() failed: %v", err) + } + storedValue, err := valueColumn.GetValue(id) + if err != nil { + t.Fatalf("Column.GetValue() failed: %v", err) + } + if !reflect.DeepEqual(value, storedValue) { + t.Fatalf("DeepEqual() failed") + } + } + if _, err := db.Query("table_remove Table"); err != nil { + t.Logf("DB.Query() failed: %v", err) + } + } + } +} + func testDBCreateTableWithRefKey(t *testing.T, keyType string) { options := NewTableOptions() options.KeyType = keyType -------------- next part -------------- HTML����������������������������...Download