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 })