Browse Source

added tests for SliceMap() in cassandra_test

cwandrews 12 years ago
parent
commit
beb636673d
2 changed files with 70 additions and 1 deletions
  1. 69 0
      cassandra_test.go
  2. 1 1
      helpers.go

+ 69 - 0
cassandra_test.go

@@ -281,3 +281,72 @@ var pageTestData = []*Page{
 		Modified: time.Date(2013, time.August, 13, 9, 52, 3, 0, time.UTC),
 		Modified: time.Date(2013, time.August, 13, 9, 52, 3, 0, time.UTC),
 	},
 	},
 }
 }
+
+func TestSliceMap(t *testing.T) {
+	session := createSession(t)
+	defer session.Close()
+	if err := session.Query(`CREATE TABLE slice_map_table (
+			testuuid       timeuuid PRIMARY KEY,
+			testvarchar    varchar,
+			testbigint     bigint,
+			testblob       blob,
+			testbool       boolean,
+			testfloat	   float,
+			testdouble	   double,
+			testint        int,
+			testset        set<int>,
+			testmap        map<varchar, varchar>
+		)`).Exec(); err != nil {
+		t.Fatal("create table:", err)
+	}
+	m := make(map[string]interface{})
+	m["testuuid"] = TimeUUID()
+	m["testvarchar"] = "Test VarChar"
+	m["testbigint"] = time.Now().Unix()
+	m["testblob"] = []byte("test blob")
+	m["testbool"] = true
+	m["testfloat"] = float32(4.564)
+	m["testdouble"] = float64(4.815162342)
+	m["testint"] = 2343
+	m["testset"] = []int{1,2,3,4,5,6,7,8,9}
+	m["testmap"] = map[string]string{"field1": "val1", "field2": "val2", "field3": "val3"}
+	sliceMap := []map[string]interface{}{m}
+	if err := session.Query(`INSERT INTO slice_map_table (testuuid, testvarchar, testbigint, testblob, testbool, testfloat, testdouble, testint, testset, testmap) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
+		m["testuuid"], m["testvarchar"], m["testbigint"], m["testblob"], m["testbool"], m["testfloat"], m["testdouble"], m["testint"], m["testset"], m["testmap"]).Exec(); err != nil {
+		t.Fatal("insert:", err)
+	}
+	if returned, retErr := session.Query(`SELECT * FROM slice_map_table`).Iter().SliceMap(); retErr != nil {
+		t.Fatal("select:", retErr)
+	} else {
+		if sliceMap[0]["testuuid"] != returned[0]["testuuid"] {
+			t.Fatal("returned testuuid did not match")
+		}
+		if sliceMap[0]["testvarchar"] != returned[0]["testvarchar"] {
+			t.Fatal("returned testvarchar did not match")
+		}
+		if sliceMap[0]["testbigint"] != returned[0]["testbigint"] {
+			t.Fatal("returned testbigint did not match")
+		}
+		if !reflect.DeepEqual(sliceMap[0]["testblob"], returned[0]["testblob"]) {
+			t.Fatal("returned testblob did not match")
+		}
+		if sliceMap[0]["testbool"] != returned[0]["testbool"] {
+			t.Fatal("returned testbool did not match")
+		}
+		if sliceMap[0]["testfloat"] != returned[0]["testfloat"] {
+			t.Fatal("returned testfloat did not match")
+		}
+		if sliceMap[0]["testdouble"] != returned[0]["testdouble"] {
+			t.Fatal("returned testdouble did not match")
+		}
+		if sliceMap[0]["testint"] != returned[0]["testint"] {
+			t.Fatal("returned testint did not match")
+		}
+		if !reflect.DeepEqual(sliceMap[0]["testset"], returned[0]["testset"]) {
+			t.Fatal("returned testset did not match")
+		}
+		if !reflect.DeepEqual(sliceMap[0]["testmap"], returned[0]["testmap"]) {
+			t.Fatal("returned testmap did not match")
+		}
+	}
+}

+ 1 - 1
helpers.go

@@ -21,7 +21,7 @@ func goType(t *TypeInfo) reflect.Type {
 	case TypeDouble:
 	case TypeDouble:
 		return reflect.TypeOf(*new(float64))
 		return reflect.TypeOf(*new(float64))
 	case TypeInt:
 	case TypeInt:
-		return reflect.TypeOf(*new(int32))
+		return reflect.TypeOf(*new(int))
 	case TypeUUID, TypeTimeUUID:
 	case TypeUUID, TypeTimeUUID:
 		return reflect.TypeOf(*new(UUID))
 		return reflect.TypeOf(*new(UUID))
 	case TypeList, TypeSet:
 	case TypeList, TypeSet: