github.com/vmware/govmomi@v0.51.0/session/manager_test.go (about) 1 // © Broadcom. All Rights Reserved. 2 // The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. 3 // SPDX-License-Identifier: Apache-2.0 4 5 package session 6 7 import ( 8 "context" 9 "net/url" 10 "testing" 11 12 "github.com/vmware/govmomi/test" 13 "github.com/vmware/govmomi/vim25" 14 "github.com/vmware/govmomi/vim25/soap" 15 ) 16 17 func sessionClient(u *url.URL, t *testing.T) *Manager { 18 soapClient := soap.NewClient(u, true) 19 vimClient, err := vim25.NewClient(context.Background(), soapClient) 20 if err != nil { 21 t.Fatal(err) 22 } 23 24 return NewManager(vimClient) 25 } 26 27 func TestLogin(t *testing.T) { 28 u := test.URL() 29 if u == nil { 30 t.SkipNow() 31 } 32 33 session := sessionClient(u, t) 34 err := session.Login(context.Background(), u.User) 35 if err != nil { 36 t.Errorf("Expected no error, got %v", err) 37 } 38 } 39 40 func TestLogout(t *testing.T) { 41 u := test.URL() 42 if u == nil { 43 t.SkipNow() 44 } 45 46 session := sessionClient(u, t) 47 err := session.Login(context.Background(), u.User) 48 if err != nil { 49 t.Error("Login Error: ", err) 50 } 51 52 err = session.Logout(context.Background()) 53 if err != nil { 54 t.Errorf("Expected nil, got %v", err) 55 } 56 57 err = session.Logout(context.Background()) 58 if err == nil { 59 t.Errorf("Expected NotAuthenticated, got nil") 60 } 61 } 62 63 func TestSessionIsActive(t *testing.T) { 64 u := test.URL() 65 if u == nil { 66 t.SkipNow() 67 } 68 69 session := sessionClient(u, t) 70 71 // Skip test against ESXi -- SessionIsActive is not implemented 72 if session.client.ServiceContent.About.ApiType != "VirtualCenter" { 73 t.Skipf("Talking to %s instead of %s", session.client.ServiceContent.About.ApiType, "VirtualCenter") 74 } 75 76 err := session.Login(context.Background(), u.User) 77 if err != nil { 78 t.Error("Login Error: ", err) 79 } 80 81 active, err := session.SessionIsActive(context.Background()) 82 if err != nil || !active { 83 t.Errorf("Expected %t, got %t", true, active) 84 t.Errorf("Expected nil, got %v", err) 85 } 86 87 session.Logout(context.Background()) 88 89 active, err = session.SessionIsActive(context.Background()) 90 if err == nil || active { 91 t.Errorf("Expected %t, got %t", false, active) 92 t.Errorf("Expected NotAuthenticated, got %v", err) 93 } 94 }