50
)
51
53
>
var testData CassandraTestData
54
>
testData.Cfg = NewCassandraConfig()
55
>
testData.Logger = log.NewZapLogger(zaptest.NewLogger(t))
56
>
SetUpCassandraDatabase(t, testData.Cfg, testData.Logger)
57
>
SetUpCassandraSchema(t, testData.Cfg, testData.Logger)
58
>
59
>
testData.Factory = cassandra.NewFactory(
60
>
*testData.Cfg,
61
>
resolver.NewNoopResolver(),
62
>
testCassandraClusterName,
63
>
testData.Logger,
64
>
metrics.NoopMetricsHandler,
65
>
serialization.NewSerializer(),
66
>
)
67
>
68
>
tearDown := func() {
69
>
testData.Factory.Close()
70
>
TearDownCassandraKeyspace(t, testData.Cfg)
71
>
}
72
74
}
75
76
>
func SetUpCassandraDatabase(t *testing.T, cfg *config.Cassandra, logger log.Logger) {
cassandra_test_util.go
77
>
adminCfg := *cfg
78
>
// NOTE need to connect with empty name to create new database
79
>
adminCfg.Keyspace = "system"
80
>
81
>
session, err := commongocql.NewSession(
82
>
func() (*gocql.ClusterConfig, error) {
83
>
return commongocql.NewCassandraCluster(adminCfg, resolver.NewNoopResolver())
84
>
},
85
logger,
86
metrics.NoopMetricsHandler,
87
)
89
t.Fatalf("unable to create Cassandra session: %v", err)
90
}
92
>
93
>
if err := cassandra.CreateCassandraKeyspace(
94
>
session,
95
>
cfg.Keyspace,
96
>
1,
97
>
true,
98
>
log.NewNoopLogger(),
99
>
); err != nil {
100
t.Fatalf("unable to create Cassandra keyspace: %v", err)
101
}
102
}
103
104
>
func SetUpCassandraSchema(t *testing.T, cfg *config.Cassandra, logger log.Logger) {
cassandra_test_util.go
105
>
ApplySchemaUpdate(t, cfg, testCassandraExecutionSchema, logger)
106
>
}
107
108
>
func ApplySchemaUpdate(t *testing.T, cfg *config.Cassandra, schemaFile string, logger log.Logger) {
cassandra_test_util.go
109
>
session, err := commongocql.NewSession(
110
>
func() (*gocql.ClusterConfig, error) {
111
>
return commongocql.NewCassandraCluster(*cfg, resolver.NewNoopResolver())
112
>
},
113
logger,
114
metrics.NoopMetricsHandler,
115
)
117
t.Fatal(err)
118
}
120
>
121
>
schemaPath, err := filepath.Abs(schemaFile)
122
>
if err != nil {
123
t.Fatal(err)
124
}
125
127
>
if err != nil {
128
t.Fatal(err)
129
}
130
132
>
if err = session.Query(stmt).Exec(); err != nil {
133
logger.Error(fmt.Sprintf("Unable to execute statement from file: %s\n %s", schemaFile, stmt))
134
t.Fatal(err)