github.com/IBM-Cloud/bluemix-go@v0.0.0-20240314082800-4e02a69b84b2/api/icd/icdv4/connection_test.go (about)

     1  package icdv4
     2  
     3  import (
     4  	"log"
     5  	"net/http"
     6  
     7  	bluemix "github.com/IBM-Cloud/bluemix-go"
     8  	"github.com/IBM-Cloud/bluemix-go/client"
     9  	bluemixHttp "github.com/IBM-Cloud/bluemix-go/http"
    10  	"github.com/IBM-Cloud/bluemix-go/session"
    11  
    12  	"github.com/onsi/gomega/ghttp"
    13  
    14  	. "github.com/onsi/ginkgo"
    15  	. "github.com/onsi/gomega"
    16  )
    17  
    18  var _ = Describe("connections", func() {
    19  	var server *ghttp.Server
    20  	AfterEach(func() {
    21  		server.Close()
    22  	})
    23  	Describe("Get Postgres", func() {
    24  		Context("When get is successful", func() {
    25  			BeforeEach(func() {
    26  				server = ghttp.NewServer()
    27  				server.AppendHandlers(
    28  					ghttp.CombineHandlers(
    29  						ghttp.VerifyRequest(http.MethodGet, "/v4/ibm/deployments/crn:v1:staging:public:iam::::apikey:ApiKey-62fefdd1-4557-4c7d-8a1c-f6da7ee2ff3a/users/anyone/connections/public"),
    30  						ghttp.RespondWith(http.StatusOK, `
    31                             {
    32                                "connection": {
    33                                  "postgres": {
    34                                    "composed": [
    35                                      "postgres://admin:$PASSWORD@1b8f53db-fc2d-4e24-8470-f82b15c71717.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud:32121/ibmclouddb?sslmode=verify-full"
    36                                    ],
    37                                    "type": "uri",
    38                                    "scheme": "postgres",
    39                                    "hosts": [
    40                                      {
    41                                        "hostname": "1b8f53db-fc2d-4e24-8470-f82b15c71717.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud",
    42                                        "port": 32121
    43                                      }
    44                                    ],
    45                                    "path": "/ibmclouddb",
    46                                    "query_options": null,
    47                                    "authentication": {
    48                                      "method": "direct",
    49                                      "username": "admin",
    50                                      "password": "$PASSWORD"
    51                                    },
    52                                    "database": "ibmclouddb",
    53                                    "certificate": {
    54                                      "name": "0b22f14b-7ba2-11e8-b8e9-568642342d40",
    55                                      "certificate_base64": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURE..."
    56                                    }
    57                                  },
    58                                  "cli": {
    59                                    "composed": [
    60                                      "PGPASSWORD=$PASSWORD PGSSLROOTCERT=0b22f14b-7ba2-11e8-b8e9-568642342d40 psql 'host=1b8f53db-fc2d-4e24-8470-f82b15c71717.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud port=32121 dbname=ibmclouddb user=admin sslmode=verify-full"
    61                                    ],
    62                                    "type": "cli",
    63                                    "environment": {
    64                                      "PGPASSWORD": "$PASSWORD"
    65                                    },
    66                                    "bin": "psql",
    67                                    "arguments": [
    68                                      [
    69                                        "host=1b8f53db-fc2d-4e24-8470-f82b15c71717.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud port=32121 dbname=ibmclouddb user=admin sslmode=verify-full"
    70                                      ]
    71                                    ],
    72                                    "certificate": {
    73                                      "name": "0b22f14b-7ba2-11e8-b8e9-568642342d40",
    74                                      "certificate_base64": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURE..."
    75                                    }
    76                                  }
    77                                }
    78                              }
    79                          `),
    80  					),
    81  				)
    82  			})
    83  
    84  			It("should return connection", func() {
    85  				target := "crn:v1:staging:public:iam::::apikey:ApiKey-62fefdd1-4557-4c7d-8a1c-f6da7ee2ff3a"
    86  				userId := "anyone"
    87  				connection, err := newConnection(server.URL()).GetConnection(target, userId)
    88  				Expect(err).NotTo(HaveOccurred())
    89  				Expect(connection).ShouldNot(BeNil())
    90  				Expect(connection.Postgres).ShouldNot(BeNil())
    91  				// Expect(connection.Postgres.Composed[0]).Should(Equal("postgres://admin:$PASSWORD@1b8f53db-fc2d-4e24-8470-f82b15c71717.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud:32121/ibmclouddb?sslmode=verify-full"))
    92  				// Expect(connection.Postgres.Type).Should(Equal("uri"))
    93  				// Expect(connection.Postgres.Scheme).Should(Equal("postgres"))
    94  				// Expect(connection.Postgres.Path).Should(Equal("/ibmclouddb"))
    95  				// Expect(connection.Postgres.Hosts[0].HostName).Should(Equal("1b8f53db-fc2d-4e24-8470-f82b15c71717.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud"))
    96  				// Expect(connection.Postgres.Hosts[0].Port).Should(Equal(32121))
    97  				// //Expect(connection.Postgres.QueryOptions).Should(Equal(""))
    98  				// Expect(connection.Postgres.Authentication.Method).Should(Equal("direct"))
    99  				// Expect(connection.Postgres.Authentication.UserName).Should(Equal("admin"))
   100  				// Expect(connection.Postgres.Authentication.Password).Should(Equal("$PASSWORD"))
   101  				// Expect(connection.Postgres.Certificate.Name).Should(Equal("0b22f14b-7ba2-11e8-b8e9-568642342d40"))
   102  				// Expect(connection.Postgres.Certificate.CertificateBase64).Should(Equal("LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURE..."))
   103  				// Expect(connection.Postgres.Database).Should(BeEquivalentTo("ibmclouddb"))
   104  				// Expect(connection.Cli.Composed[0]).Should(Equal("PGPASSWORD=$PASSWORD PGSSLROOTCERT=0b22f14b-7ba2-11e8-b8e9-568642342d40 psql 'host=1b8f53db-fc2d-4e24-8470-f82b15c71717.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud port=32121 dbname=ibmclouddb user=admin sslmode=verify-full"))
   105  				// Expect(connection.Cli.Type).Should(Equal("cli"))
   106  				// Expect(connection.Cli.Bin).Should(Equal("psql"))
   107  				// Expect(connection.Cli.Arguments[0][0]).Should(Equal("host=1b8f53db-fc2d-4e24-8470-f82b15c71717.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud port=32121 dbname=ibmclouddb user=admin sslmode=verify-full"))
   108  				// Expect(connection.Cli.Certificate.Name).Should(Equal("0b22f14b-7ba2-11e8-b8e9-568642342d40"))
   109  				// Expect(connection.Cli.Certificate.CertificateBase64).Should(Equal("LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURE..."))
   110  			})
   111  		})
   112  		Context("When get is unsuccessful", func() {
   113  			BeforeEach(func() {
   114  				server = ghttp.NewServer()
   115  				server.SetAllowUnhandledRequests(true)
   116  				server.AppendHandlers(
   117  					ghttp.CombineHandlers(
   118  						ghttp.VerifyRequest(http.MethodGet, "/v4/ibm/deployments/crn:v1:staging:public:iam::::apikey:ApiKey-62fefdd1-4557-4c7d-8a1c-f6da7ee2ff3a/users/anyone/connections/public"),
   119  						ghttp.RespondWith(http.StatusInternalServerError, `Failed to get connection`),
   120  					),
   121  				)
   122  			})
   123  
   124  			It("should return error during get connection", func() {
   125  				target := "crn:v1:staging:public:iam::::apikey:ApiKey-62fefdd1-4557-4c7d-8a1c-f6da7ee2ff3a"
   126  				userId := "anyone"
   127  				_, err := newConnection(server.URL()).GetConnection(target, userId)
   128  				Expect(err).To(HaveOccurred())
   129  				//Expect(connection).Should(Equal(""))
   130  			})
   131  		})
   132  	})
   133  
   134  	Describe("Get Rediss", func() {
   135  		Context("When get is successful", func() {
   136  			BeforeEach(func() {
   137  				server = ghttp.NewServer()
   138  				server.AppendHandlers(
   139  					ghttp.CombineHandlers(
   140  						ghttp.VerifyRequest(http.MethodGet, "/v4/ibm/deployments/crn:v1:staging:public:iam::::apikey:ApiKey-62fefdd1-4557-4c7d-8a1c-f6da7ee2ff3a/users/anyone/connections/public"),
   141  						ghttp.RespondWith(http.StatusOK,
   142  							//  `
   143  							//   {"connection":
   144  							//    {
   145  							//   "rediss":{"composed":["rediss://admin:$PASSWORD@9f7c2c13-5061-46ca-8153-f7d6c0baba7b.974550db55eb4ec0983f023940bf637f.databases.appdomain.cloud:30348/0"],
   146  							//   "type":"uri",
   147  							//   "scheme":"rediss",
   148  							//   "hosts":[{"hostname":"9f7c2c13-5061-46ca-8153-f7d6c0baba7b.974550db55eb4ec0983f023940bf637f.databases.appdomain.cloud",
   149  							//   "port":30348,
   150  							//   "protocol":""}],
   151  							//   "path":"/0",
   152  							//   "query_options":{},
   153  							//   "authentication":{"method":"direct","username":"admin","password":"$PASSWORD"},
   154  							//   "certificate":{"name":"c5f07736-d94c-11e8-a2e9-62ec2ed68f84",
   155  							//   "certificate_base64":"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tL"},
   156  							//   "database":0},
   157  							//   "cli":
   158  							//     {
   159  							//       "composed":["REDIS_CERTFILE=c5f07736-d94c-11e8-a2e9-62ec2ed68f84 redli -u rediss://admin:$PASSWORD@9f7c2c13-5061-46ca-8153-f7d6c0baba7b.974550db55eb4ec0983f023940bf637f.databases.appdomain.cloud:30348/0"],
   160  							//       "type":"cli",
   161  							//       "environment":{"REDIS_CERTFILE":"c5f07736-d94c-11e8-a2e9-62ec2ed68f84"},
   162  							//       "bin":"redli",
   163  							//       "arguments":[["-u","rediss://admin:$PASSWORD@9f7c2c13-5061-46ca-8153-f7d6c0baba7b.974550db55eb4ec0983f023940bf637f.databases.appdomain.cloud:30348/0"]],
   164  							//       "certificate":{"name":"c5f07736-d94c-11e8-a2e9-62ec2ed68f84",
   165  							//       "certificate_base64":"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tL"}
   166  							//     }
   167  							//   }
   168  							// }
   169  							// `
   170  							`
   171                            {"connection":{"rediss":{"composed":["rediss://admin:$PASSWORD@9f7c2c13-5061-46ca-8153-f7d6c0baba7b.974550db55eb4ec0983f023940bf637f.databases.appdomain.cloud:30348/0"],"type":"uri","scheme":"rediss","hosts":[{"hostname":"9f7c2c13-5061-46ca-8153-f7d6c0baba7b.974550db55eb4ec0983f023940bf637f.databases.appdomain.cloud","port":30348,"protocol":""}],"path":"/0","query_options":{},"authentication":{"method":"direct","username":"admin","password":"[PRIVATE DATA HIDDEN]"},"certificate":{"name":"c5f07736-d94c-11e8-a2e9-62ec2ed68f84","certificate_base64":"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUREekNDQWZlZ0F3SUJBZ0lKQU5FSDU4eTIva3pITUEwR0NTcUdTSWIzRFFFQkN3VUFNQjR4SERBYUJnTlYKQkFNTUUwbENUU0JEYkc5MVpDQkVZWFJoWW1GelpYTXdIaGNOTVRnd05qSTFNVFF5T1RBd1doY05Namd3TmpJeQpNVFF5T1RBd1dqQWVNUnd3R2dZRFZRUUREQk5KUWswZ1EyeHZkV1FnUkdGMFlXSmhjMlZ6TUlJQklqQU5CZ2txCmhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBOGxwYVFHemNGZEdxZU1sbXFqZmZNUHBJUWhxcGQ4cUoKUHIzYklrclhKYlRjSko5dUlja1NVY0NqdzRaL3JTZzhublQxM1NDY09sKzF0bys3a2RNaVU4cU9XS2ljZVlaNQp5K3laWWZDa0dhaVpWZmF6UUJtNDV6QnRGV3YrQUIvOGhmQ1RkTkY3Vlk0c3BhQTNvQkUyYVM3T0FOTlNSWlNLCnB3eTI0SVVnVWNJTEpXK21jdlc4MFZ4K0dYUmZEOVl0dDZQUkpnQmhZdVVCcGd6dm5nbUNNR0JuK2wyS05pU2YKd2VvdllEQ0Q2Vm5nbDIrNlc5UUZBRnRXWFdnRjNpRFFENW5sL240bXJpcE1TWDZVRy9uNjY1N3U3VERkZ2t2QQoxZUtJMkZMellLcG9LQmU1cmNuck03bkhnTmMvbkNkRXM1SmVjSGIxZEh2MVFmUG02cHpJeHdJREFRQUJvMUF3ClRqQWRCZ05WSFE0RUZnUVVLMytYWm8xd3lLcytERW9ZWGJIcnV3U3BYamd3SHdZRFZSMGpCQmd3Rm9BVUszK1gKWm8xd3lLcytERW9ZWGJIcnV3U3BYamd3REFZRFZSMFRCQVV3QXdFQi96QU5CZ2txaGtpRzl3MEJBUXNGQUFPQwpBUUVBSmY1ZHZselVwcWFpeDI2cUpFdXFGRzBJUDU3UVFJNVRDUko2WHQvc3VwUkhvNjNlRHZLdzh6Ujd0bFdRCmxWNVAwTjJ4d3VTbDlacUFKdDcvay8zWmVCK25Zd1BveU8zS3ZLdkFUdW5SdmxQQm40RldWWGVhUHNHKzdmaFMKcXNlam1reW9uWXc3N0hSekdPekpINFpnOFVONm1mcGJhV1NzeWFFeHZxa25DcDlTb1RRUDNENjdBeldxYjF6WQpkb3FxZ0dJWjJueENrcDUvRlh4Ri9UTWI1NXZ0ZVRRd2ZnQnk2MGpWVmtiRjdlVk9XQ3YwS2FOSFBGNWhycWJOCmkrM1hqSjcvcGVGM3hNdlRNb3kzNURjVDNFMlplU1Zqb3VaczE1Tzkwa0kzazJkYVMyT0hKQUJXMHZTajRuTHoKK1BRenAvQjljUW1PTzhkQ2UwNDlRM29hVUE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCgo="},"database":0},"cli":{"composed":["REDIS_CERTFILE=c5f07736-d94c-11e8-a2e9-62ec2ed68f84 redli -u rediss://admin:$PASSWORD@9f7c2c13-5061-46ca-8153-f7d6c0baba7b.974550db55eb4ec0983f023940bf637f.databases.appdomain.cloud:30348/0"],"type":"cli","environment":{"REDIS_CERTFILE":"c5f07736-d94c-11e8-a2e9-62ec2ed68f84"},"bin":"redli","arguments":[["-u","rediss://admin:$PASSWORD@9f7c2c13-5061-46ca-8153-f7d6c0baba7b.974550db55eb4ec0983f023940bf637f.databases.appdomain.cloud:30348/0"]],"certificate":{"name":"c5f07736-d94c-11e8-a2e9-62ec2ed68f84","certificate_base64":"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUREekNDQWZlZ0F3SUJBZ0lKQU5FSDU4eTIva3pITUEwR0NTcUdTSWIzRFFFQkN3VUFNQjR4SERBYUJnTlYKQkFNTUUwbENUU0JEYkc5MVpDQkVZWFJoWW1GelpYTXdIaGNOTVRnd05qSTFNVFF5T1RBd1doY05Namd3TmpJeQpNVFF5T1RBd1dqQWVNUnd3R2dZRFZRUUREQk5KUWswZ1EyeHZkV1FnUkdGMFlXSmhjMlZ6TUlJQklqQU5CZ2txCmhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBOGxwYVFHemNGZEdxZU1sbXFqZmZNUHBJUWhxcGQ4cUoKUHIzYklrclhKYlRjSko5dUlja1NVY0NqdzRaL3JTZzhublQxM1NDY09sKzF0bys3a2RNaVU4cU9XS2ljZVlaNQp5K3laWWZDa0dhaVpWZmF6UUJtNDV6QnRGV3YrQUIvOGhmQ1RkTkY3Vlk0c3BhQTNvQkUyYVM3T0FOTlNSWlNLCnB3eTI0SVVnVWNJTEpXK21jdlc4MFZ4K0dYUmZEOVl0dDZQUkpnQmhZdVVCcGd6dm5nbUNNR0JuK2wyS05pU2YKd2VvdllEQ0Q2Vm5nbDIrNlc5UUZBRnRXWFdnRjNpRFFENW5sL240bXJpcE1TWDZVRy9uNjY1N3U3VERkZ2t2QQoxZUtJMkZMellLcG9LQmU1cmNuck03bkhnTmMvbkNkRXM1SmVjSGIxZEh2MVFmUG02cHpJeHdJREFRQUJvMUF3ClRqQWRCZ05WSFE0RUZnUVVLMytYWm8xd3lLcytERW9ZWGJIcnV3U3BYamd3SHdZRFZSMGpCQmd3Rm9BVUszK1gKWm8xd3lLcytERW9ZWGJIcnV3U3BYamd3REFZRFZSMFRCQVV3QXdFQi96QU5CZ2txaGtpRzl3MEJBUXNGQUFPQwpBUUVBSmY1ZHZselVwcWFpeDI2cUpFdXFGRzBJUDU3UVFJNVRDUko2WHQvc3VwUkhvNjNlRHZLdzh6Ujd0bFdRCmxWNVAwTjJ4d3VTbDlacUFKdDcvay8zWmVCK25Zd1BveU8zS3ZLdkFUdW5SdmxQQm40RldWWGVhUHNHKzdmaFMKcXNlam1reW9uWXc3N0hSekdPekpINFpnOFVONm1mcGJhV1NzeWFFeHZxa25DcDlTb1RRUDNENjdBeldxYjF6WQpkb3FxZ0dJWjJueENrcDUvRlh4Ri9UTWI1NXZ0ZVRRd2ZnQnk2MGpWVmtiRjdlVk9XQ3YwS2FOSFBGNWhycWJOCmkrM1hqSjcvcGVGM3hNdlRNb3kzNURjVDNFMlplU1Zqb3VaczE1Tzkwa0kzazJkYVMyT0hKQUJXMHZTajRuTHoKK1BRenAvQjljUW1PTzhkQ2UwNDlRM29hVUE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCgo="}}}}
   172                          `),
   173  					),
   174  				)
   175  			})
   176  
   177  			It("should return connection", func() {
   178  				target := "crn:v1:staging:public:iam::::apikey:ApiKey-62fefdd1-4557-4c7d-8a1c-f6da7ee2ff3a"
   179  				userId := "anyone"
   180  				connection, err := newConnection(server.URL()).GetConnection(target, userId)
   181  				Expect(err).NotTo(HaveOccurred())
   182  				Expect(connection).ShouldNot(BeNil())
   183  				Expect(connection.Rediss).ShouldNot(BeNil())
   184  				Expect(connection.Rediss.Composed[0]).Should(Equal("rediss://admin:$PASSWORD@9f7c2c13-5061-46ca-8153-f7d6c0baba7b.974550db55eb4ec0983f023940bf637f.databases.appdomain.cloud:30348/0"))
   185  				// Expect(connection.Rediss.Type).Should(Equal("uri"))
   186  				// Expect(connection.Rediss.Scheme).Should(Equal("rediss"))
   187  				// Expect(connection.Rediss.Path).Should(Equal("/0"))
   188  				// Expect(connection.Rediss.Hosts[0].HostName).Should(Equal("9f7c2c13-5061-46ca-8153-f7d6c0baba7b.974550db55eb4ec0983f023940bf637f.databases.appdomain.cloud"))
   189  				// Expect(connection.Rediss.Hosts[0].Port).Should(Equal(30348))
   190  				// //Expect(connection.Rediss.QueryOptions).Should(Equal(""))
   191  				// Expect(connection.Rediss.Authentication.Method).Should(Equal("direct"))
   192  				// Expect(connection.Rediss.Authentication.UserName).Should(Equal("admin"))
   193  				// //Expect(connection.Rediss.Authentication.Password).Should(Equal("$PASSWORD"))
   194  				// Expect(connection.Rediss.Certificate.Name).Should(Equal("c5f07736-d94c-11e8-a2e9-62ec2ed68f84"))
   195  				// Expect(connection.Rediss.Certificate.CertificateBase64).Should(Equal("LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUREekNDQWZlZ0F3SUJBZ0lKQU5FSDU4eTIva3pITUEwR0NTcUdTSWIzRFFFQkN3VUFNQjR4SERBYUJnTlYKQkFNTUUwbENUU0JEYkc5MVpDQkVZWFJoWW1GelpYTXdIaGNOTVRnd05qSTFNVFF5T1RBd1doY05Namd3TmpJeQpNVFF5T1RBd1dqQWVNUnd3R2dZRFZRUUREQk5KUWswZ1EyeHZkV1FnUkdGMFlXSmhjMlZ6TUlJQklqQU5CZ2txCmhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBOGxwYVFHemNGZEdxZU1sbXFqZmZNUHBJUWhxcGQ4cUoKUHIzYklrclhKYlRjSko5dUlja1NVY0NqdzRaL3JTZzhublQxM1NDY09sKzF0bys3a2RNaVU4cU9XS2ljZVlaNQp5K3laWWZDa0dhaVpWZmF6UUJtNDV6QnRGV3YrQUIvOGhmQ1RkTkY3Vlk0c3BhQTNvQkUyYVM3T0FOTlNSWlNLCnB3eTI0SVVnVWNJTEpXK21jdlc4MFZ4K0dYUmZEOVl0dDZQUkpnQmhZdVVCcGd6dm5nbUNNR0JuK2wyS05pU2YKd2VvdllEQ0Q2Vm5nbDIrNlc5UUZBRnRXWFdnRjNpRFFENW5sL240bXJpcE1TWDZVRy9uNjY1N3U3VERkZ2t2QQoxZUtJMkZMellLcG9LQmU1cmNuck03bkhnTmMvbkNkRXM1SmVjSGIxZEh2MVFmUG02cHpJeHdJREFRQUJvMUF3ClRqQWRCZ05WSFE0RUZnUVVLMytYWm8xd3lLcytERW9ZWGJIcnV3U3BYamd3SHdZRFZSMGpCQmd3Rm9BVUszK1gKWm8xd3lLcytERW9ZWGJIcnV3U3BYamd3REFZRFZSMFRCQVV3QXdFQi96QU5CZ2txaGtpRzl3MEJBUXNGQUFPQwpBUUVBSmY1ZHZselVwcWFpeDI2cUpFdXFGRzBJUDU3UVFJNVRDUko2WHQvc3VwUkhvNjNlRHZLdzh6Ujd0bFdRCmxWNVAwTjJ4d3VTbDlacUFKdDcvay8zWmVCK25Zd1BveU8zS3ZLdkFUdW5SdmxQQm40RldWWGVhUHNHKzdmaFMKcXNlam1reW9uWXc3N0hSekdPekpINFpnOFVONm1mcGJhV1NzeWFFeHZxa25DcDlTb1RRUDNENjdBeldxYjF6WQpkb3FxZ0dJWjJueENrcDUvRlh4Ri9UTWI1NXZ0ZVRRd2ZnQnk2MGpWVmtiRjdlVk9XQ3YwS2FOSFBGNWhycWJOCmkrM1hqSjcvcGVGM3hNdlRNb3kzNURjVDNFMlplU1Zqb3VaczE1Tzkwa0kzazJkYVMyT0hKQUJXMHZTajRuTHoKK1BRenAvQjljUW1PTzhkQ2UwNDlRM29hVUE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCgo="))
   196  				// Expect(connection.Rediss.Database).Should(BeEquivalentTo("0"))
   197  				// Expect(connection.Cli.Composed[0]).Should(Equal("REDIS_CERTFILE=c5f07736-d94c-11e8-a2e9-62ec2ed68f84 redli -u rediss://admin:$PASSWORD@9f7c2c13-5061-46ca-8153-f7d6c0baba7b.974550db55eb4ec0983f023940bf637f.databases.appdomain.cloud:30348/0"))
   198  				// Expect(connection.Cli.Type).Should(Equal("cli"))
   199  				// Expect(connection.Cli.Bin).Should(Equal("redli"))
   200  				// Expect(connection.Cli.Arguments[0][0]).Should(Equal("-u"))
   201  				// Expect(connection.Cli.Arguments[0][1]).Should(Equal("rediss://admin:$PASSWORD@9f7c2c13-5061-46ca-8153-f7d6c0baba7b.974550db55eb4ec0983f023940bf637f.databases.appdomain.cloud:30348/0"))
   202  				// Expect(connection.Cli.Certificate.Name).Should(Equal("c5f07736-d94c-11e8-a2e9-62ec2ed68f84"))
   203  				// Expect(connection.Cli.Certificate.CertificateBase64).Should(Equal("LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUREekNDQWZlZ0F3SUJBZ0lKQU5FSDU4eTIva3pITUEwR0NTcUdTSWIzRFFFQkN3VUFNQjR4SERBYUJnTlYKQkFNTUUwbENUU0JEYkc5MVpDQkVZWFJoWW1GelpYTXdIaGNOTVRnd05qSTFNVFF5T1RBd1doY05Namd3TmpJeQpNVFF5T1RBd1dqQWVNUnd3R2dZRFZRUUREQk5KUWswZ1EyeHZkV1FnUkdGMFlXSmhjMlZ6TUlJQklqQU5CZ2txCmhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBOGxwYVFHemNGZEdxZU1sbXFqZmZNUHBJUWhxcGQ4cUoKUHIzYklrclhKYlRjSko5dUlja1NVY0NqdzRaL3JTZzhublQxM1NDY09sKzF0bys3a2RNaVU4cU9XS2ljZVlaNQp5K3laWWZDa0dhaVpWZmF6UUJtNDV6QnRGV3YrQUIvOGhmQ1RkTkY3Vlk0c3BhQTNvQkUyYVM3T0FOTlNSWlNLCnB3eTI0SVVnVWNJTEpXK21jdlc4MFZ4K0dYUmZEOVl0dDZQUkpnQmhZdVVCcGd6dm5nbUNNR0JuK2wyS05pU2YKd2VvdllEQ0Q2Vm5nbDIrNlc5UUZBRnRXWFdnRjNpRFFENW5sL240bXJpcE1TWDZVRy9uNjY1N3U3VERkZ2t2QQoxZUtJMkZMellLcG9LQmU1cmNuck03bkhnTmMvbkNkRXM1SmVjSGIxZEh2MVFmUG02cHpJeHdJREFRQUJvMUF3ClRqQWRCZ05WSFE0RUZnUVVLMytYWm8xd3lLcytERW9ZWGJIcnV3U3BYamd3SHdZRFZSMGpCQmd3Rm9BVUszK1gKWm8xd3lLcytERW9ZWGJIcnV3U3BYamd3REFZRFZSMFRCQVV3QXdFQi96QU5CZ2txaGtpRzl3MEJBUXNGQUFPQwpBUUVBSmY1ZHZselVwcWFpeDI2cUpFdXFGRzBJUDU3UVFJNVRDUko2WHQvc3VwUkhvNjNlRHZLdzh6Ujd0bFdRCmxWNVAwTjJ4d3VTbDlacUFKdDcvay8zWmVCK25Zd1BveU8zS3ZLdkFUdW5SdmxQQm40RldWWGVhUHNHKzdmaFMKcXNlam1reW9uWXc3N0hSekdPekpINFpnOFVONm1mcGJhV1NzeWFFeHZxa25DcDlTb1RRUDNENjdBeldxYjF6WQpkb3FxZ0dJWjJueENrcDUvRlh4Ri9UTWI1NXZ0ZVRRd2ZnQnk2MGpWVmtiRjdlVk9XQ3YwS2FOSFBGNWhycWJOCmkrM1hqSjcvcGVGM3hNdlRNb3kzNURjVDNFMlplU1Zqb3VaczE1Tzkwa0kzazJkYVMyT0hKQUJXMHZTajRuTHoKK1BRenAvQjljUW1PTzhkQ2UwNDlRM29hVUE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCgo="))
   204  			})
   205  		})
   206  		Context("When get is unsuccessful", func() {
   207  			BeforeEach(func() {
   208  				server = ghttp.NewServer()
   209  				server.SetAllowUnhandledRequests(true)
   210  				server.AppendHandlers(
   211  					ghttp.CombineHandlers(
   212  						ghttp.VerifyRequest(http.MethodGet, "/v4/ibm/deployments/crn:v1:staging:public:iam::::apikey:ApiKey-62fefdd1-4557-4c7d-8a1c-f6da7ee2ff3a/users/anyone/connections/public"),
   213  						ghttp.RespondWith(http.StatusInternalServerError, `Failed to get connection`),
   214  					),
   215  				)
   216  			})
   217  
   218  			It("should return error during get connection", func() {
   219  				target := "crn:v1:staging:public:iam::::apikey:ApiKey-62fefdd1-4557-4c7d-8a1c-f6da7ee2ff3a"
   220  				userId := "anyone"
   221  				_, err := newConnection(server.URL()).GetConnection(target, userId)
   222  				Expect(err).To(HaveOccurred())
   223  				//Expect(connection).Should(Equal(""))
   224  			})
   225  		})
   226  	})
   227  })
   228  
   229  func newConnection(url string) Connections {
   230  
   231  	sess, err := session.New()
   232  	if err != nil {
   233  		log.Fatal(err)
   234  	}
   235  	conf := sess.Config.Copy()
   236  	conf.HTTPClient = bluemixHttp.NewHTTPClient(conf)
   237  	conf.Endpoint = &url
   238  
   239  	client := client.Client{
   240  		Config:      conf,
   241  		ServiceName: bluemix.ICDService,
   242  	}
   243  	return newConnectionAPI(&client)
   244  }