1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
package integration
import (
"context"
"testing"
"go.mongodb.org/mongo-driver/x/bsonx/bsoncore"
"go.mongodb.org/mongo-driver/x/mongo/driver"
"go.mongodb.org/mongo-driver/x/mongo/driver/operation"
"go.mongodb.org/mongo-driver/x/mongo/driver/topology"
)
func TestInsert(t *testing.T) {
t.Skip()
var connOpts []topology.ConnectionOption
var serverOpts []topology.ServerOption
var topoOpts []topology.Option
connOpts = append(connOpts, topology.WithHandshaker(func(h driver.Handshaker) driver.Handshaker {
return operation.NewHello().AppName("operationgen-test")
}))
// topoOpts = append(topoOpts, topology.WithServerSelectionTimeout(func(time.Duration) time.Duration { return 5 * time.Second }))
serverOpts = append(serverOpts, topology.WithConnectionOptions(func(opts ...topology.ConnectionOption) []topology.ConnectionOption {
return append(opts, connOpts...)
}))
topoOpts = append(topoOpts, topology.WithServerOptions(func(opts ...topology.ServerOption) []topology.ServerOption {
return append(opts, serverOpts...)
}))
topo, err := topology.New(topoOpts...)
if err != nil {
t.Fatalf("Couldn't connect topology: %v", err)
}
_ = topo.Connect()
doc := bsoncore.BuildDocument(nil, bsoncore.AppendDoubleElement(nil, "pi", 3.14159))
iop := operation.NewInsert(doc).Database("foo").Collection("bar").Deployment(topo)
err = iop.Execute(context.Background())
if err != nil {
t.Fatalf("Couldn't execute insert operation: %v", err)
}
t.Log(iop.Result())
fop := operation.NewFind(bsoncore.BuildDocument(nil, bsoncore.AppendDoubleElement(nil, "pi", 3.14159))).
Database("foo").Collection("bar").Deployment(topo).BatchSize(1)
err = fop.Execute(context.Background())
if err != nil {
t.Fatalf("Couldn't execute find operation: %v", err)
}
cur, err := fop.Result(driver.CursorOptions{BatchSize: 2})
if err != nil {
t.Fatalf("Couldn't get cursor result from find operation: %v", err)
}
for cur.Next(context.Background()) {
batch := cur.Batch()
docs, err := batch.Documents()
if err != nil {
t.Fatalf("Couldn't iterate batch: %v", err)
}
for i, doc := range docs {
t.Log(i, doc)
}
}
}
|