github.com/rakutentech/cli@v6.12.5-0.20151006231303-24468b65536e+incompatible/cf/formatters/bytes_test.go (about)

     1  package formatters_test
     2  
     3  import (
     4  	. "github.com/cloudfoundry/cli/cf/formatters"
     5  	. "github.com/onsi/ginkgo"
     6  	. "github.com/onsi/gomega"
     7  )
     8  
     9  var _ = Describe("formatting bytes to / from strings", func() {
    10  	It("converts megabytes to a human readable description", func() {
    11  		Expect(ByteSize(100 * MEGABYTE)).To(Equal("100M"))
    12  		Expect(ByteSize(int64(100.5 * MEGABYTE))).To(Equal("100.5M"))
    13  	})
    14  
    15  	It("parses byte amounts with short units (e.g. M, G)", func() {
    16  		var (
    17  			megabytes int64
    18  			err       error
    19  		)
    20  
    21  		megabytes, err = ToMegabytes("5M")
    22  		Expect(megabytes).To(Equal(int64(5)))
    23  		Expect(err).NotTo(HaveOccurred())
    24  
    25  		megabytes, err = ToMegabytes("5m")
    26  		Expect(megabytes).To(Equal(int64(5)))
    27  		Expect(err).NotTo(HaveOccurred())
    28  
    29  		megabytes, err = ToMegabytes("2G")
    30  		Expect(megabytes).To(Equal(int64(2 * 1024)))
    31  		Expect(err).NotTo(HaveOccurred())
    32  
    33  		megabytes, err = ToMegabytes("3T")
    34  		Expect(megabytes).To(Equal(int64(3 * 1024 * 1024)))
    35  		Expect(err).NotTo(HaveOccurred())
    36  	})
    37  
    38  	It("parses byte amounts with long units (e.g MB, GB)", func() {
    39  		var (
    40  			megabytes int64
    41  			err       error
    42  		)
    43  
    44  		megabytes, err = ToMegabytes("5MB")
    45  		Expect(megabytes).To(Equal(int64(5)))
    46  		Expect(err).NotTo(HaveOccurred())
    47  
    48  		megabytes, err = ToMegabytes("5mb")
    49  		Expect(megabytes).To(Equal(int64(5)))
    50  		Expect(err).NotTo(HaveOccurred())
    51  
    52  		megabytes, err = ToMegabytes("2GB")
    53  		Expect(megabytes).To(Equal(int64(2 * 1024)))
    54  		Expect(err).NotTo(HaveOccurred())
    55  
    56  		megabytes, err = ToMegabytes("3TB")
    57  		Expect(megabytes).To(Equal(int64(3 * 1024 * 1024)))
    58  		Expect(err).NotTo(HaveOccurred())
    59  	})
    60  
    61  	It("returns an error when the unit is missing", func() {
    62  		_, err := ToMegabytes("5")
    63  		Expect(err).To(HaveOccurred())
    64  		Expect(err.Error()).To(ContainSubstring("unit of measurement"))
    65  	})
    66  
    67  	It("returns an error when the unit is unrecognized", func() {
    68  		_, err := ToMegabytes("5MBB")
    69  		Expect(err).To(HaveOccurred())
    70  		Expect(err.Error()).To(ContainSubstring("unit of measurement"))
    71  	})
    72  
    73  	It("allows whitespace before and after the value", func() {
    74  		megabytes, err := ToMegabytes("\t\n\r 5MB ")
    75  		Expect(megabytes).To(Equal(int64(5)))
    76  		Expect(err).NotTo(HaveOccurred())
    77  	})
    78  })