github.com/IBM-Blockchain/fabric-operator@v1.0.4/version/version_test.go (about)

     1  /*
     2   * Copyright contributors to the Hyperledger Fabric Operator project
     3   *
     4   * SPDX-License-Identifier: Apache-2.0
     5   *
     6   * Licensed under the Apache License, Version 2.0 (the "License");
     7   * you may not use this file except in compliance with the License.
     8   * You may obtain a copy of the License at:
     9   *
    10   * 	  http://www.apache.org/licenses/LICENSE-2.0
    11   *
    12   * Unless required by applicable law or agreed to in writing, software
    13   * distributed under the License is distributed on an "AS IS" BASIS,
    14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    15   * See the License for the specific language governing permissions and
    16   * limitations under the License.
    17   */
    18  
    19  package version_test
    20  
    21  import (
    22  	. "github.com/onsi/ginkgo/v2"
    23  	. "github.com/onsi/gomega"
    24  
    25  	"github.com/IBM-Blockchain/fabric-operator/version"
    26  )
    27  
    28  var _ = Describe("Version", func() {
    29  
    30  	Context("get fabric version from", func() {
    31  		It("returns version from image tag", func() {
    32  			fabricVersion := version.GetFabricVersionFrom("1.4.3-12345-amd64")
    33  			Expect(fabricVersion).To(Equal("1.4.3"))
    34  		})
    35  
    36  		It("returns empty string if image tag is a sha256 digest", func() {
    37  			fabricVersion := version.GetFabricVersionFrom("sha256:2037c532f6c823667baed5af248c01c941b2344c2a939e451b81ea0e03938243")
    38  			Expect(fabricVersion).To(Equal(""))
    39  		})
    40  	})
    41  
    42  	Context("get old fabric version from", func() {
    43  		It("returns version from image tag", func() {
    44  			fabricVersion := version.GetOldFabricVersionFrom("1.4.3-12345-amd64")
    45  			Expect(fabricVersion).To(Equal("1.4.3"))
    46  		})
    47  
    48  		It("returns 'unsupported' if an old image tag with a version not found in the lookup table", func() {
    49  			fabricVersion := version.GetOldFabricVersionFrom("1.4.1-12345-amd64")
    50  			Expect(fabricVersion).To(Equal("unsupported"))
    51  		})
    52  	})
    53  
    54  	Context("is migrated fabric version", func() {
    55  		It("return true if version is found in old fabric versions lookup map", func() {
    56  			migrated := version.IsMigratedFabricVersion("1.4.6")
    57  			Expect(migrated).To(Equal(true))
    58  		})
    59  
    60  		It("returns true if version is 'unsupported''", func() {
    61  			migrated := version.IsMigratedFabricVersion("unsupported")
    62  			Expect(migrated).To(Equal(true))
    63  		})
    64  
    65  		It("returns false if version not found in old fabric versions lookup map", func() {
    66  			migrated := version.IsMigratedFabricVersion("1.4.9-4")
    67  			Expect(migrated).To(Equal(false))
    68  		})
    69  	})
    70  
    71  	Context("version string", func() {
    72  		var (
    73  			V147   version.String
    74  			V147_2 version.String
    75  			V225_5 version.String
    76  			V241_1 version.String
    77  		)
    78  
    79  		BeforeEach(func() {
    80  			V147 = version.String("1.4.7")
    81  			V147_2 = version.String("1.4.7-2")
    82  			V225_5 = version.String("2.2.5-5")
    83  			V241_1 = version.String("2.4.1-1")
    84  		})
    85  
    86  		Context("equal", func() {
    87  			It("returns 1.4.7 == 1.4.7 as true", func() {
    88  				equal := V147.Equal("1.4.7")
    89  				Expect(equal).To(Equal(true))
    90  			})
    91  
    92  			It("returns 1.4.7 == 1.4.6 as false", func() {
    93  				equal := V147.Equal("1.4.6")
    94  				Expect(equal).To(Equal(false))
    95  			})
    96  
    97  			It("returns 1.4.7 == 1.4.7-1 as false", func() {
    98  				equal := V147.Equal("1.4.7-1")
    99  				Expect(equal).To(Equal(false))
   100  			})
   101  		})
   102  
   103  		Context("greater than", func() {
   104  			It("returns 1.4.7 > 1.4.7 as false", func() {
   105  				equal := V147.GreaterThan("1.4.7")
   106  				Expect(equal).To(Equal(false))
   107  			})
   108  
   109  			It("returns 1.4.7 > 1.4.6 as true", func() {
   110  				equal := V147.GreaterThan("1.4.6")
   111  				Expect(equal).To(Equal(true))
   112  			})
   113  
   114  			It("returns 1.4.7 > 1.4.7-1 as false", func() {
   115  				equal := V147.GreaterThan("1.4.7-1")
   116  				Expect(equal).To(Equal(false))
   117  			})
   118  
   119  			It("returns 1.4.7-2 > 1.4.7-1 as true", func() {
   120  				equal := V147_2.GreaterThan("1.4.7-1")
   121  				Expect(equal).To(Equal(true))
   122  			})
   123  
   124  			It("returns 2.2.5-5 > 2.4.1-1 as false", func() {
   125  				equal := V225_5.GreaterThan("2.4.1-1")
   126  				Expect(equal).To(Equal(false))
   127  			})
   128  
   129  			It("returns 2.4.1-1 > 2.2.5-5 as true", func() {
   130  				equal := V241_1.GreaterThan("2.2.5-5")
   131  				Expect(equal).To(Equal(true))
   132  			})
   133  		})
   134  
   135  		Context("less than", func() {
   136  			It("returns 1.4.7 < 1.4.7 as false", func() {
   137  				equal := V147.LessThan("1.4.7")
   138  				Expect(equal).To(Equal(false))
   139  			})
   140  
   141  			It("returns 1.4.7 < 1.4.6 as false", func() {
   142  				equal := V147.LessThan("1.4.6")
   143  				Expect(equal).To(Equal(false))
   144  			})
   145  
   146  			It("returns 1.4.7 < 1.4.7-1 as true", func() {
   147  				equal := V147.LessThan("1.4.7-1")
   148  				Expect(equal).To(Equal(true))
   149  			})
   150  
   151  			It("returns 1.4.7-2 < 1.4.7-1 as false", func() {
   152  				equal := V147_2.LessThan("1.4.7-1")
   153  				Expect(equal).To(Equal(false))
   154  			})
   155  
   156  			It("returns 2.4.1-1 < 2.2.5-5 as false", func() {
   157  				equal := V241_1.LessThan("2.4.1-1")
   158  				Expect(equal).To(Equal(false))
   159  			})
   160  
   161  			It("returns 2.2.5-5 < 2.4.1-1 as true", func() {
   162  				equal := V225_5.LessThan("2.4.1-1")
   163  				Expect(equal).To(Equal(true))
   164  			})
   165  		})
   166  	})
   167  })