File: insert_test.go

package info (click to toggle)
golang-mongodb-mongo-driver 1.8.4%2Bds1-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bookworm-backports
  • size: 18,520 kB
  • sloc: perl: 533; ansic: 491; python: 432; makefile: 187; sh: 72
file content (64 lines) | stat: -rw-r--r-- 2,143 bytes parent folder | download | duplicates (2)
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)
		}
	}
}