Merge branch '20485-optional-deploy-ssh-key'
[arvados.git] / sdk / go / arvados / config_test.go
index 8c77e292875f23b536edcf8dbdef2a1d4f46d51d..3c65643bea576a983b0b104f5cccef09024d1fb1 100644 (file)
@@ -5,6 +5,7 @@
 package arvados
 
 import (
+       "crypto/tls"
        "encoding/json"
 
        "github.com/ghodss/yaml"
@@ -15,7 +16,7 @@ var _ = check.Suite(&ConfigSuite{})
 
 type ConfigSuite struct{}
 
-func (s *ConfigSuite) TestInstanceTypesAsArray(c *check.C) {
+func (s *ConfigSuite) TestStringSetAsArray(c *check.C) {
        var cluster Cluster
        yaml.Unmarshal([]byte(`
 API:
@@ -25,13 +26,6 @@ API:
        c.Check(ok, check.Equals, true)
 }
 
-func (s *ConfigSuite) TestStringSetAsArray(c *check.C) {
-       var cluster Cluster
-       yaml.Unmarshal([]byte("InstanceTypes:\n- Name: foo\n"), &cluster)
-       c.Check(len(cluster.InstanceTypes), check.Equals, 1)
-       c.Check(cluster.InstanceTypes["foo"].Name, check.Equals, "foo")
-}
-
 func (s *ConfigSuite) TestInstanceTypesAsHash(c *check.C) {
        var cluster Cluster
        yaml.Unmarshal([]byte("InstanceTypes:\n  foo:\n    ProviderType: bar\n"), &cluster)
@@ -42,18 +36,16 @@ func (s *ConfigSuite) TestInstanceTypesAsHash(c *check.C) {
 
 func (s *ConfigSuite) TestInstanceTypeSize(c *check.C) {
        var it InstanceType
-       err := yaml.Unmarshal([]byte("Name: foo\nScratch: 4GB\nRAM: 4GiB\n"), &it)
+       err := yaml.Unmarshal([]byte("Name: foo\nIncludedScratch: 4GB\nRAM: 4GiB\n"), &it)
        c.Check(err, check.IsNil)
-       c.Check(int64(it.Scratch), check.Equals, int64(4000000000))
+       c.Check(int64(it.IncludedScratch), check.Equals, int64(4000000000))
        c.Check(int64(it.RAM), check.Equals, int64(4294967296))
 }
 
 func (s *ConfigSuite) TestInstanceTypeFixup(c *check.C) {
        for _, confdata := range []string{
                // Current format: map of entries
-               `{foo4: {IncludedScratch: 4GB}, foo8: {ProviderType: foo_8, Scratch: 8GB}}`,
-               // Legacy format: array of entries with key in "Name" field
-               `[{Name: foo4, IncludedScratch: 4GB}, {Name: foo8, ProviderType: foo_8, Scratch: 8GB}]`,
+               `{foo4: {IncludedScratch: 4GB}, foo8: {ProviderType: foo_8, AddedScratch: 8GB}}`,
        } {
                c.Log(confdata)
                var itm InstanceTypeMap
@@ -80,3 +72,19 @@ func (s *ConfigSuite) TestURLTrailingSlash(c *check.C) {
        json.Unmarshal([]byte(`{"https://foo.example/": true}`), &b)
        c.Check(a, check.DeepEquals, b)
 }
+
+func (s *ConfigSuite) TestTLSVersion(c *check.C) {
+       var v struct {
+               Version TLSVersion
+       }
+       err := json.Unmarshal([]byte(`{"Version": 1.0}`), &v)
+       c.Check(err, check.IsNil)
+       c.Check(v.Version, check.Equals, TLSVersion(tls.VersionTLS10))
+
+       err = json.Unmarshal([]byte(`{"Version": "1.3"}`), &v)
+       c.Check(err, check.IsNil)
+       c.Check(v.Version, check.Equals, TLSVersion(tls.VersionTLS13))
+
+       err = json.Unmarshal([]byte(`{"Version": "1.345"}`), &v)
+       c.Check(err, check.NotNil)
+}