(t *testing.T)
| 2759 | } |
| 2760 | |
| 2761 | func TestGetClientID(t *testing.T) { |
| 2762 | if serverVersionAtLeast(1, 2, 0) != nil { |
| 2763 | t.SkipNow() |
| 2764 | } |
| 2765 | optsA := test.DefaultTestOptions |
| 2766 | optsA.Port = -1 |
| 2767 | optsA.Cluster.Port = -1 |
| 2768 | optsA.Cluster.Name = "test" |
| 2769 | |
| 2770 | srvA := RunServerWithOptions(&optsA) |
| 2771 | defer srvA.Shutdown() |
| 2772 | |
| 2773 | ch := make(chan bool, 1) |
| 2774 | nc1, err := nats.Connect(srvA.ClientURL(), |
| 2775 | nats.DiscoveredServersHandler(func(_ *nats.Conn) { |
| 2776 | ch <- true |
| 2777 | }), |
| 2778 | nats.ReconnectHandler(func(_ *nats.Conn) { |
| 2779 | ch <- true |
| 2780 | })) |
| 2781 | if err != nil { |
| 2782 | t.Fatalf("Error on connect: %v", err) |
| 2783 | } |
| 2784 | defer nc1.Close() |
| 2785 | |
| 2786 | cid, err := nc1.GetClientID() |
| 2787 | if err != nil { |
| 2788 | t.Fatalf("Error getting CID: %v", err) |
| 2789 | } |
| 2790 | if cid == 0 { |
| 2791 | t.Fatal("Unexpected cid value, make sure server is 1.2.0+") |
| 2792 | } |
| 2793 | |
| 2794 | // Start a second server and verify that async INFO contains client ID |
| 2795 | optsB := test.DefaultTestOptions |
| 2796 | optsB.Port = -1 |
| 2797 | optsB.Cluster.Port = -1 |
| 2798 | optsB.Cluster.Name = "test" |
| 2799 | |
| 2800 | optsB.Routes = server.RoutesFromStr(fmt.Sprintf("nats://127.0.0.1:%d", srvA.ClusterAddr().Port)) |
| 2801 | srvB := RunServerWithOptions(&optsB) |
| 2802 | defer srvB.Shutdown() |
| 2803 | |
| 2804 | // Wait for the discovered callback to fire |
| 2805 | if err := Wait(ch); err != nil { |
| 2806 | t.Fatal("Did not fire the discovered callback") |
| 2807 | } |
| 2808 | // Now check CID should be valid and same as before |
| 2809 | newCID, err := nc1.GetClientID() |
| 2810 | if err != nil { |
| 2811 | t.Fatalf("Error getting CID: %v", err) |
| 2812 | } |
| 2813 | if newCID != cid { |
| 2814 | t.Fatalf("Expected CID to be %v, got %v", cid, newCID) |
| 2815 | } |
| 2816 | |
| 2817 | // Create a client to server B |
| 2818 | nc2, err := nats.Connect(srvB.ClientURL()) |
nothing calls this directly
no test coverage detected