cluster_test.go 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package gocql
  2. import (
  3. "net"
  4. "testing"
  5. "time"
  6. "reflect"
  7. )
  8. func TestNewCluster_Defaults(t *testing.T) {
  9. cfg := NewCluster()
  10. assertEqual(t, "cluster config cql version", "3.0.0", cfg.CQLVersion)
  11. assertEqual(t, "cluster config timeout", 600*time.Millisecond, cfg.Timeout)
  12. assertEqual(t, "cluster config port", 9042, cfg.Port)
  13. assertEqual(t, "cluster config num-conns", 2, cfg.NumConns)
  14. assertEqual(t, "cluster config consistency", Quorum, cfg.Consistency)
  15. assertEqual(t, "cluster config max prepared statements", defaultMaxPreparedStmts, cfg.MaxPreparedStmts)
  16. assertEqual(t, "cluster config max routing key info", 1000, cfg.MaxRoutingKeyInfo)
  17. assertEqual(t, "cluster config page-size", 5000, cfg.PageSize)
  18. assertEqual(t, "cluster config default timestamp", true, cfg.DefaultTimestamp)
  19. assertEqual(t, "cluster config max wait schema agreement", 60*time.Second, cfg.MaxWaitSchemaAgreement)
  20. assertEqual(t, "cluster config reconnect interval", 60*time.Second, cfg.ReconnectInterval)
  21. assertTrue(t, "cluster config reconnection policy",
  22. reflect.DeepEqual(&ConstantReconnectionPolicy{MaxRetries: 3, Interval: 1 * time.Second}, cfg.ReconnectionPolicy))
  23. }
  24. func TestNewCluster_WithHosts(t *testing.T) {
  25. cfg := NewCluster("addr1", "addr2")
  26. assertEqual(t, "cluster config hosts length", 2, len(cfg.Hosts))
  27. assertEqual(t, "cluster config host 0", "addr1", cfg.Hosts[0])
  28. assertEqual(t, "cluster config host 1", "addr2", cfg.Hosts[1])
  29. }
  30. func TestClusterConfig_translateAddressAndPort_NilTranslator(t *testing.T) {
  31. cfg := NewCluster()
  32. assertNil(t, "cluster config address translator", cfg.AddressTranslator)
  33. newAddr, newPort := cfg.translateAddressPort(net.ParseIP("10.0.0.1"), 1234)
  34. assertTrue(t, "same address as provided", net.ParseIP("10.0.0.1").Equal(newAddr))
  35. assertEqual(t, "translated host and port", 1234, newPort)
  36. }
  37. func TestClusterConfig_translateAddressAndPort_EmptyAddr(t *testing.T) {
  38. cfg := NewCluster()
  39. cfg.AddressTranslator = staticAddressTranslator(net.ParseIP("10.10.10.10"), 5432)
  40. newAddr, newPort := cfg.translateAddressPort(net.IP([]byte{}), 0)
  41. assertTrue(t, "translated address is still empty", len(newAddr) == 0)
  42. assertEqual(t, "translated port", 0, newPort)
  43. }
  44. func TestClusterConfig_translateAddressAndPort_Success(t *testing.T) {
  45. cfg := NewCluster()
  46. cfg.AddressTranslator = staticAddressTranslator(net.ParseIP("10.10.10.10"), 5432)
  47. newAddr, newPort := cfg.translateAddressPort(net.ParseIP("10.0.0.1"), 2345)
  48. assertTrue(t, "translated address", net.ParseIP("10.10.10.10").Equal(newAddr))
  49. assertEqual(t, "translated port", 5432, newPort)
  50. }