本文整理汇总了Golang中github.com/couchbase/indexing/secondary/tests/framework/validation.Validate函数的典型用法代码示例。如果您正苦于以下问题:Golang Validate函数的具体用法?Golang Validate怎么用?Golang Validate使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Validate函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestUpdateMutations_AddField
func TestUpdateMutations_AddField(t *testing.T) {
log.Printf("In TestUpdateMutations_AddField()")
var bucketName = "default"
var indexName = "index_newField"
var field = "newField"
docsToCreate := generateDocs(1000, "users.prod")
UpdateKVDocs(docsToCreate, docs)
seed++
log.Printf("Setting JSON docs in KV")
kvutility.SetKeyValues(docsToCreate, "default", "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{field}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
docScanResults := datautility.ExpectedScanAllResponse(docs, field)
scanResults, err := secondaryindex.ScanAll(indexName, bucketName, indexScanAddress, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
log.Printf("Count of scan results before add field mutations: %d", len(scanResults))
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
// Create mutations with add fields
AddFieldMutations(300, field) // Update documents by adding the indexed field
docScanResults = datautility.ExpectedScanAllResponse(docs, field)
scanResults, err = secondaryindex.ScanAll(indexName, bucketName, indexScanAddress, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
log.Printf("Count of scan results after add field mutations: %d", len(scanResults))
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
}
示例2: TestMixedDatatypesRange_Float
func TestMixedDatatypesRange_Float(t *testing.T) {
log.Printf("In TestMixedDatatypesRange_Float()")
field := "mixed_field"
indexName := "index_mixeddt"
bucketName := "default"
e := secondaryindex.DropAllSecondaryIndexes(indexManagementAddress)
FailTestIfError(e, "Error in DropAllSecondaryIndexes", t)
docsToCreate := generateJSONSMixedDatatype(1000, field)
seed++
log.Printf("Setting mixed datatypes JSON docs in KV")
kvutility.SetKeyValues(docsToCreate, "default", "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{field}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
docScanResults := datautility.ExpectedScanResponse_float64(docs, field, 100, 1000, 3)
scanResults, err := secondaryindex.Range(indexName, bucketName, indexScanAddress, []interface{}{100}, []interface{}{1000}, 3, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
log.Printf("Lengths of expected and actual scan results are: %d and %d", len(docScanResults), len(scanResults))
docScanResults = datautility.ExpectedScanResponse_float64(docs, field, 1, 100, 2)
scanResults, err = secondaryindex.Range(indexName, bucketName, indexScanAddress, []interface{}{1}, []interface{}{100}, 2, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
log.Printf("Lengths of expected and actual scan results are: %d and %d", len(docScanResults), len(scanResults))
log.Printf("Length of kv docs is %d", len(docs))
}
示例3: TestLargeSecondaryKeyLength
// Test case for testing secondary key field values as very huge
func TestLargeSecondaryKeyLength(t *testing.T) {
log.Printf("In TestLargeSecondaryKeyLength()")
field := "LongSecField"
indexName := "index_LongSecField"
bucketName := "default"
e := secondaryindex.DropAllSecondaryIndexes(indexManagementAddress)
FailTestIfError(e, "Error in DropAllSecondaryIndexes", t)
largeKeyDocs := generateLargeSecondayKeyDocs(1000, field)
seed++
log.Printf("Setting JSON docs in KV")
kvutility.SetKeyValues(largeKeyDocs, "default", "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{field}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
docScanResults := datautility.ExpectedScanAllResponse(docs, field)
scanResults, err := secondaryindex.ScanAll(indexName, bucketName, indexScanAddress, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
log.Printf("ScanAll: Lengths of expected and actual scan results are: %d and %d", len(docScanResults), len(scanResults))
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
docScanResults = datautility.ExpectedScanResponse_string(docs, field, "A", "zzzz", 3)
scanResults, err = secondaryindex.Range(indexName, bucketName, indexScanAddress, []interface{}{"A"}, []interface{}{"zzzz"}, 3, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
log.Printf("Range: Lengths of expected and actual scan results are: %d and %d", len(docScanResults), len(scanResults))
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
log.Printf("End: Length of kv docs is %d", len(docs))
}
示例4: TestCreate2Drop1Scan2
func TestCreate2Drop1Scan2(t *testing.T) {
log.Printf("In TestCreate2Drop1Scan2()")
var index1 = "index_i1"
var index2 = "index_i2"
var bucketName = "default"
err := secondaryindex.CreateSecondaryIndex(index1, bucketName, indexManagementAddress, "", []string{"company"}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
err = secondaryindex.CreateSecondaryIndex(index2, bucketName, indexManagementAddress, "", []string{"age"}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
docScanResults := datautility.ExpectedScanResponse_string(docs, "company", "FI", "SR", 1)
scanResults, err := secondaryindex.Range(index1, bucketName, indexScanAddress, []interface{}{"FI"}, []interface{}{"SR"}, 1, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan 1", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
docScanResults = datautility.ExpectedScanResponse_float64(docs, "age", 30, 50, 1)
scanResults, err = secondaryindex.Range(index2, bucketName, indexScanAddress, []interface{}{30}, []interface{}{50}, 1, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan 2", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
err = secondaryindex.DropSecondaryIndex(index1, bucketName, indexManagementAddress)
docScanResults = datautility.ExpectedScanResponse_float64(docs, "age", 0, 60, 1)
scanResults, err = secondaryindex.Range(index2, bucketName, indexScanAddress, []interface{}{0}, []interface{}{60}, 1, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan 2", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
}
示例5: TestUpdateDocsMutation
// Test with mutations delay wait of 15s
func TestUpdateDocsMutation(t *testing.T) {
log.Printf("In TestUpdateDocsMutation()")
var indexName = "index_age"
var bucketName = "default"
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{"age"}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
docScanResults := datautility.ExpectedScanResponse_float64(docs, "age", 20, 40, 2)
scanResults, err := secondaryindex.Range(indexName, bucketName, indexScanAddress, []interface{}{20}, []interface{}{40}, 2, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
log.Printf("Len of expected and actual scan results are : %d and %d", len(docScanResults), len(scanResults))
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
//Update docs mutations: Update docs in KV
UpdateDocs(100)
docScanResults = datautility.ExpectedScanResponse_float64(docs, "age", 20, 40, 2)
start := time.Now()
scanResults, err = secondaryindex.Range(indexName, bucketName, indexScanAddress, []interface{}{20}, []interface{}{40}, 2, true, defaultlimit, c.SessionConsistency, nil)
elapsed := time.Since(start)
log.Printf("Index Scan after mutations took %s\n", elapsed)
FailTestIfError(err, "Error in scan", t)
log.Printf("Len of expected and actual scan results are : %d and %d", len(docScanResults), len(scanResults))
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
}
示例6: TestSameIndexNameInTwoBuckets
func TestSameIndexNameInTwoBuckets(t *testing.T) {
log.Printf("In TestSameIndexNameInTwoBuckets()")
e := secondaryindex.DropAllSecondaryIndexes(indexManagementAddress)
FailTestIfError(e, "Error in DropAllSecondaryIndexes", t)
numOfBuckets := 2
indexName := "b_idx"
indexFields := [...]string{"age", "address.city"}
bucketNames := [...]string{"default", "buck2"}
proxyPorts := [...]string{"11212", "11213"}
var bucketDocs [2]tc.KeyValues
// Update default bucket ram to 256
// Create two more buckets with ram 256 each
// Add different docs to all 3 buckets
// Create index on each of them
// Query the indexes
kvutility.FlushBucket(bucketNames[0], "", clusterconfig.Username, clusterconfig.Password, kvaddress)
kvutility.EditBucket(bucketNames[0], "", clusterconfig.Username, clusterconfig.Password, kvaddress, "256")
for i := 1; i < numOfBuckets; i++ {
kvutility.CreateBucket(bucketNames[i], "sasl", "", clusterconfig.Username, clusterconfig.Password, kvaddress, "256", proxyPorts[i])
}
time.Sleep(30 * time.Second)
log.Printf("Generating docs and Populating all the buckets")
for i := 0; i < numOfBuckets; i++ {
bucketDocs[i] = generateDocs(1000, "users.prod")
kvutility.SetKeyValues(bucketDocs[i], bucketNames[i], "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(indexName, bucketNames[i], indexManagementAddress, "", []string{indexFields[i]}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
}
time.Sleep(3 * time.Second)
// Scan index of first bucket
docScanResults := datautility.ExpectedScanResponse_float64(bucketDocs[0], indexFields[0], 30, 50, 1)
scanResults, err := secondaryindex.Range(indexName, bucketNames[0], indexScanAddress, []interface{}{30}, []interface{}{50}, 1, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan 1", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
// Scan index of second bucket
docScanResults = datautility.ExpectedScanResponse_string(bucketDocs[1], indexFields[1], "F", "Q", 2)
scanResults, err = secondaryindex.Range(indexName, bucketNames[1], indexScanAddress, []interface{}{"F"}, []interface{}{"Q"}, 2, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan 2", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
kvutility.EditBucket(bucketNames[0], "", clusterconfig.Username, clusterconfig.Password, kvaddress, "512")
kvutility.DeleteBucket(bucketNames[1], "", clusterconfig.Username, clusterconfig.Password, kvaddress)
time.Sleep(30 * time.Second) // Sleep after bucket create or delete
tc.ClearMap(docs)
UpdateKVDocs(bucketDocs[0], docs)
}
示例7: TestLargeMutations
// Test with large number of mutations
func TestLargeMutations(t *testing.T) {
log.Printf("In TestLargeMutations()")
var index1 = "indexmut_1"
var index2 = "indexmut_2"
var bucketName = "default"
var field1 = "company"
var field2 = "gender"
e := secondaryindex.DropAllSecondaryIndexes(indexManagementAddress)
FailTestIfError(e, "Error in DropAllSecondaryIndexes", t)
docsToCreate := generateDocs(20000, "users.prod")
UpdateKVDocs(docsToCreate, docs)
kv.SetKeyValues(docsToCreate, "default", "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(index1, bucketName, indexManagementAddress, "", []string{field1}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
docScanResults := datautility.ExpectedScanAllResponse(docs, field1)
scanResults, err := secondaryindex.ScanAll(index1, bucketName, indexScanAddress, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
log.Printf("Len of expected and actual scan results are : %d and %d", len(docScanResults), len(scanResults))
for i := 0; i <= 10; i++ {
log.Printf("ITERATION %v\n", i)
docsToCreate = generateDocs(10000, "users.prod")
UpdateKVDocs(docsToCreate, docs)
kv.SetKeyValues(docsToCreate, "default", "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(index2, bucketName, indexManagementAddress, "", []string{field2}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
docScanResults = datautility.ExpectedScanAllResponse(docs, field1)
scanResults, err = secondaryindex.ScanAll(index1, bucketName, indexScanAddress, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
log.Printf("Len of expected and actual scan results are : %d and %d", len(docScanResults), len(scanResults))
docScanResults = datautility.ExpectedScanAllResponse(docs, field2)
scanResults, err = secondaryindex.ScanAll(index2, bucketName, indexScanAddress, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
log.Printf("Len of expected and actual scan results are : %d and %d", len(docScanResults), len(scanResults))
err = secondaryindex.DropSecondaryIndex(index2, bucketName, indexManagementAddress)
FailTestIfError(err, "Error in drop index", t)
}
}
示例8: TestCreateDropCreate
func TestCreateDropCreate(t *testing.T) {
log.Printf("In TestCreateDropCreate()")
var indexName = "index_cdc"
var bucketName = "default"
// Create an index
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{"company"}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
// Scan after index create
docScanResults := datautility.ExpectedScanResponse_string(docs, "company", "FI", "SR", 2)
scanResults, err := secondaryindex.Range(indexName, bucketName, indexScanAddress, []interface{}{"FI"}, []interface{}{"SR"}, 2, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan 1: ", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan 1 result validation: ", t)
// Drop the created index
err = secondaryindex.DropSecondaryIndex(indexName, bucketName, indexManagementAddress)
// Scan after dropping the index. Error expected
docScanResults = datautility.ExpectedScanResponse_string(docs, "company", "BIOSPAN", "ZILLANET", 0)
scanResults, err = secondaryindex.Range(indexName, bucketName, indexScanAddress, []interface{}{"BIOSPAN"}, []interface{}{"ZILLANET"}, 0, true, defaultlimit, c.SessionConsistency, nil)
if err == nil {
t.Fatal("Scan 2: Error excpected when scanning for dropped index but scan didnt fail \n")
} else {
log.Printf("Scan 2 failed as expected with error: %v\n", err)
}
// Create the same index again
err = secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{"company"}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
// Scan the created index with inclusion 1
docScanResults = datautility.ExpectedScanResponse_string(docs, "company", "FI", "SR", 1)
scanResults, err = secondaryindex.Range(indexName, bucketName, indexScanAddress, []interface{}{"FI"}, []interface{}{"SR"}, 1, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan 3: ", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan 3 result validation: ", t)
log.Printf("(Inclusion 1) Lengths of expected and actual scan results are %d and %d. Num of docs in bucket = %d", len(docScanResults), len(scanResults), len(docs))
// Scan the created index with inclusion 3
docScanResults = datautility.ExpectedScanResponse_string(docs, "company", "FI", "SR", 3)
scanResults, err = secondaryindex.Range(indexName, bucketName, indexScanAddress, []interface{}{"FI"}, []interface{}{"SR"}, 3, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan 4: ", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan 4 result validation: ", t)
log.Printf("(Inclusion 3) Lengths of expected and actual scan results are %d and %d. Num of docs in bucket = %d", len(docScanResults), len(scanResults), len(docs))
}
示例9: TestMixedDatatypesScanAll
func TestMixedDatatypesScanAll(t *testing.T) {
log.Printf("In TestMixedDatatypesScanAll()")
log.Printf("Before test begin: Length of kv docs is %d", len(docs))
field := "md_street"
indexName := "index_mixeddt"
bucketName := "default"
e := secondaryindex.DropAllSecondaryIndexes(indexManagementAddress)
FailTestIfError(e, "Error in DropAllSecondaryIndexes", t)
docsToCreate := generateJSONSMixedDatatype(1000, "md_street")
log.Printf("After generate docs: Length of kv docs is %d", len(docs))
seed++
log.Printf("Setting mixed datatypes JSON docs in KV")
kvutility.SetKeyValues(docsToCreate, "default", "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{field}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
docScanResults := datautility.ExpectedScanAllResponse(docs, field)
scanResults, err := secondaryindex.ScanAll(indexName, bucketName, indexScanAddress, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
log.Printf("Lengths of expected and actual scan results are: %d and %d", len(docScanResults), len(scanResults))
log.Printf("End: Length of kv docs is %d", len(docs))
}
示例10: TestLookupJsonObject
func TestLookupJsonObject(t *testing.T) {
log.Printf("In TestLookupJsonObject()")
var indexName = "index_streetaddress"
var bucketName = "default"
addDocIfNotPresentInKV("User3bf51f08-0bac-4c03-bcec-5c255cbdde2c")
addDocIfNotPresentInKV("Userbb48952f-f8d1-4e04-a0e1-96b9019706fb")
time.Sleep(2 * time.Second)
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{"address.streetaddress"}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
value := map[string]interface{}{
"doornumber": "12B",
"floor": 5.0,
"buildingname": "Sterling Heights",
"streetname": "Hill Street"}
docScanResults := datautility.ExpectedLookupResponse_json(docs, "address.streetaddress", value)
scanResults, err := secondaryindex.Lookup(indexName, bucketName, indexScanAddress, []interface{}{value}, true, defaultlimit, c.SessionConsistency, nil)
tc.PrintScanResults(docScanResults, "docScanResults")
tc.PrintScanResults(scanResults, "scanResults")
FailTestIfError(err, "Error in scan", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
}
示例11: TestIndexNameValidation
func TestIndexNameValidation(t *testing.T) {
log.Printf("In TestIndexNameValidation()")
var bucketName = "default"
var validIndexName = "#primary-Index_test"
var invalidIndexName = "ÌñÐÉx&(abc_%"
var field = "balance"
docsToCreate := generateDocs(1000, "users.prod")
UpdateKVDocs(docsToCreate, docs)
seed++
log.Printf("Setting JSON docs in KV")
kvutility.SetKeyValues(docsToCreate, "default", "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(invalidIndexName, bucketName, indexManagementAddress, "", []string{field}, false, nil, true, defaultIndexActiveTimeout, nil)
errMsg := "Expected index name validation error for index " + invalidIndexName
FailTestIfNoError(err, errMsg, t)
log.Printf("Creation of index with invalid name %v failed as expected", invalidIndexName)
err = secondaryindex.CreateSecondaryIndex(validIndexName, bucketName, indexManagementAddress, "", []string{field}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
docScanResults := datautility.ExpectedScanResponse_string(docs, field, "$4", "$7", 3)
scanResults, err := secondaryindex.Range(validIndexName, bucketName, indexScanAddress, []interface{}{"$4"}, []interface{}{"$7"}, 3, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
}
示例12: TestLargeDocumentSize
func TestLargeDocumentSize(t *testing.T) {
log.Printf("In TestLargeDocumentSize()")
u, _ := user.Current()
datapath := filepath.Join(u.HomeDir, "testdata/TwitterFeed1.txt.gz")
tc.DownloadDataFile(tc.IndexTypesTwitterFeed1JSONDataS3, datapath, true)
largeDocs := datautility.LoadJSONFromCompressedFile(datapath, "id_str")
UpdateKVDocs(largeDocs, docs)
log.Printf("Length of docs and largeDocs = %d and %d", len(docs), len(largeDocs))
bucketName := "default"
index1 := "index_userscreenname"
kvutility.SetKeyValues(largeDocs, bucketName, "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(index1, bucketName, indexManagementAddress, "", []string{"`user`.screen_name"}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
docScanResults := datautility.ExpectedScanAllResponse(docs, "user.screen_name")
scanResults, err := secondaryindex.ScanAll(index1, bucketName, indexScanAddress, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan 1: ", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan 1: result validation", t)
}
示例13: TestSameFieldNameAtDifferentLevels
func TestSameFieldNameAtDifferentLevels(t *testing.T) {
log.Printf("In TestSameFieldNameAtDifferentLevels()")
var bucketName = "default"
var indexName = "cityindex"
var field = "city"
docsToCreate := generateDocs(1000, "users.prod")
UpdateKVDocs(docsToCreate, docs)
docsToUpload := make(tc.KeyValues)
for k, v := range docsToCreate {
json := v.(map[string]interface{})
address := json["address"].(map[string]interface{})
city := address["city"].(string)
json[field] = city
address["city"] = "ThisIsNestedCity " + city
docsToUpload[k] = json
}
seed++
log.Printf("Setting JSON docs in KV")
kvutility.SetKeyValues(docsToUpload, "default", "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{field}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
docScanResults := datautility.ExpectedScanResponse_string(docs, field, "A", "K", 3)
scanResults, err := secondaryindex.Range(indexName, bucketName, indexScanAddress, []interface{}{"A"}, []interface{}{"K"}, 3, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
}
示例14: TestFieldsWithSpecialCharacters
func TestFieldsWithSpecialCharacters(t *testing.T) {
log.Printf("In TestFieldsWithSpecialCharacters()")
var bucketName = "default"
var indexName = "index_specialchar"
var field = "splfield"
docsToCreate := generateDocsWithSpecialCharacters(1000, "users.prod", field)
UpdateKVDocs(docsToCreate, docs)
var valueToLookup string
for _, v := range docsToCreate {
json := v.(map[string]interface{})
valueToLookup = json[field].(string)
break
}
kvutility.SetKeyValues(docsToCreate, bucketName, "", clusterconfig.KVAddress)
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{field}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
log.Printf("Looking up for value %v", valueToLookup)
docScanResults := datautility.ExpectedScanResponse_string(docs, field, valueToLookup, valueToLookup, 3)
scanResults, err := secondaryindex.Lookup(indexName, bucketName, indexScanAddress, []interface{}{valueToLookup}, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
}
示例15: TestCompositeIndex_NumAndString
func TestCompositeIndex_NumAndString(t *testing.T) {
log.Printf("In TestCompositeIndex()")
var bucketName = "default"
var indexName = "index_composite1"
err := secondaryindex.CreateSecondaryIndex(indexName, bucketName, indexManagementAddress, "", []string{"age", "company"}, false, nil, true, defaultIndexActiveTimeout, nil)
FailTestIfError(err, "Error in creating the index", t)
scanResults, err := secondaryindex.ScanAll(indexName, bucketName, indexScanAddress, defaultlimit, c.SessionConsistency, nil)
if len(scanResults) != len(docs) {
log.Printf("ScanAll of composite index is wrong. Expected and actual num of results: %d and %d", len(docs), len(scanResults))
e := errors.New("ScanAll of composite index is wrong")
FailTestIfError(e, "Error in TestCompositeIndex", t)
}
scanResults, err = secondaryindex.Range(indexName, bucketName, indexScanAddress, []interface{}{25, "F"}, []interface{}{30, "M"}, 3, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
// todo: validate the results
addDocIfNotPresentInKV("User22a44f1c-3f15-4ada-9cf5-6c24a7690a37")
docScanResults := make(tc.ScanResponse)
docScanResults["User22a44f1c-3f15-4ada-9cf5-6c24a7690a37"] = []interface{}{25.0, "ZIGGLES"}
scanResults, err = secondaryindex.Lookup(indexName, bucketName, indexScanAddress, []interface{}{25, "ZIGGLES"}, true, defaultlimit, c.SessionConsistency, nil)
FailTestIfError(err, "Error in scan", t)
err = tv.Validate(docScanResults, scanResults)
FailTestIfError(err, "Error in scan result validation", t)
}