github.com/angryronald/go-kit@v0.0.0-20240505173814-ff2bd9c79dbf/generic/repository/nosql/repositorytest/main_test.go (about) 1 package repositorytest 2 3 import ( 4 "fmt" 5 "log" 6 "os" 7 "testing" 8 9 "github.com/gocql/gocql" 10 _ "github.com/lib/pq" 11 12 "github.com/angryronald/go-kit/generic/repository/nosql" 13 ) 14 15 var db *gocql.Session 16 17 // Cassandra having a memory leaks issue with dockertest, testing should be done manually by running cassandra in docker 18 func TestMain(m *testing.M) { 19 // pool, err := dockertest.NewPool("") 20 // if err != nil { 21 // log.Fatalf("Could not connect to Docker: %s", err) 22 // } 23 // resource, err := pool.Run("cassandra", "latest", nil) 24 // if err != nil { 25 // log.Fatalf("Could not start resource: %s", err) 26 // } 27 // defer resource.Close() 28 29 // if err := pool.Retry(func() error { 30 // db, err = gocql.NewCluster("localhost").CreateSession() 31 // if err != nil { 32 // return err 33 // } 34 // defer db.Close() 35 36 // if err = db.Query("CREATE KEYSPACE IF NOT EXISTS example WITH replication = {'class':'SimpleStrategy', 'replication_factor':1};").Exec(); err != nil { 37 // return err 38 // } 39 40 // if err = nosql.MigrateTable(db, &TestModel{}); err != nil { 41 // return err 42 // } 43 44 // if err = nosql.MigrateTable(db, &ImmutableTestModel{}); err != nil { 45 // return err 46 // } 47 48 // return nil 49 // }); err != nil { 50 // log.Fatalf("Could not connect to Docker: %v", err) 51 // } 52 53 // manual test 54 var err error 55 db, err = gocql.NewCluster("localhost").CreateSession() 56 if err != nil { 57 log.Fatalf("Could not connect to cassandra: %v", err) 58 } 59 defer db.Close() 60 61 if keySpace == "" { 62 keySpace = "example" 63 } 64 if err = db.Query(fmt.Sprintf("CREATE KEYSPACE IF NOT EXISTS %s WITH replication = {'class':'SimpleStrategy', 'replication_factor':1};", keySpace)).Exec(); err != nil { 65 log.Fatalf("Could not create keyspace: %v", err) 66 } 67 68 if err = nosql.MigrateTable(db, "example", &TestModel{}); err != nil { 69 log.Fatalf("Could not migrate table: %v", err) 70 } 71 72 if err = nosql.MigrateTable(db, "example", &ImmutableTestModel{}); err != nil { 73 log.Fatalf("Could not migrate table: %v", err) 74 } 75 76 code := m.Run() // execute all the tests 77 78 // Delete the Docker container 79 // if err := pool.Purge(resource); err != nil { 80 // logrus.Fatalf("Could not purge postgres resource: %v", err) 81 // } 82 83 defer os.Exit(code) 84 }