github.com/cloudfoundry-community/cloudfoundry-cli@v6.44.1-0.20240130060226-cda5ed8e89a5+incompatible/types/null_bytesize_in_mb_test.go (about) 1 package types_test 2 3 import ( 4 . "code.cloudfoundry.org/cli/types" 5 . "github.com/onsi/ginkgo" 6 . "github.com/onsi/gomega" 7 ) 8 9 var _ = Describe("NullByteSizeInMb", func() { 10 var nullByteSize NullByteSizeInMb 11 12 BeforeEach(func() { 13 nullByteSize = NullByteSizeInMb{} 14 }) 15 16 Describe("String", func() { 17 When("a NullByteSize value is not set", func() { 18 It("returns an empty string", func() { 19 nullByteSize.IsSet = false 20 returnedString := nullByteSize.String() 21 Expect(returnedString).To(Equal("")) 22 }) 23 }) 24 25 When("a NullByteSize value is set", func() { 26 When("NullByteSize value is in megabytes", func() { 27 It("returns a formatted byte size", func() { 28 nullByteSize.IsSet = true 29 nullByteSize.Value = 1024 30 returnedString := nullByteSize.String() 31 Expect(returnedString).To(Equal("1G")) 32 }) 33 }) 34 }) 35 }) 36 37 Describe("ParseStringValue", func() { 38 When("the empty string is provided", func() { 39 It("sets IsSet to false", func() { 40 err := nullByteSize.ParseStringValue("") 41 Expect(err).ToNot(HaveOccurred()) 42 Expect(nullByteSize).To(Equal(NullByteSizeInMb{Value: 0, IsSet: false})) 43 }) 44 }) 45 46 When("an invalid byte size is provided", func() { 47 It("returns an error", func() { 48 err := nullByteSize.ParseStringValue("abcdef") 49 Expect(err).To(HaveOccurred()) 50 Expect(nullByteSize).To(Equal(NullByteSizeInMb{Value: 0, IsSet: false})) 51 }) 52 }) 53 54 When("a unit size is not provided", func() { 55 It("returns an error", func() { 56 err := nullByteSize.ParseStringValue("1") 57 Expect(err).To(HaveOccurred()) 58 Expect(nullByteSize).To(Equal(NullByteSizeInMb{Value: 0, IsSet: false})) 59 }) 60 }) 61 62 When("a valid byte size is provided", func() { 63 It("stores the integer and sets IsSet to true", func() { 64 err := nullByteSize.ParseStringValue("1G") 65 Expect(err).ToNot(HaveOccurred()) 66 Expect(nullByteSize).To(Equal(NullByteSizeInMb{Value: 1024, IsSet: true})) 67 }) 68 }) 69 }) 70 71 Describe("ParseUint64Value", func() { 72 When("nil is provided", func() { 73 It("sets IsSet to false", func() { 74 nullByteSize.ParseUint64Value(nil) 75 Expect(nullByteSize).To(Equal(NullByteSizeInMb{Value: 0, IsSet: false})) 76 }) 77 }) 78 79 When("non-nil pointer is provided", func() { 80 It("sets IsSet to true and Value to provided value", func() { 81 n := uint64(5) 82 nullByteSize.ParseUint64Value(&n) 83 Expect(nullByteSize).To(Equal(NullByteSizeInMb{Value: 5, IsSet: true})) 84 }) 85 }) 86 }) 87 88 Describe("UnmarshalJSON", func() { 89 When("integer value is provided", func() { 90 It("parses JSON number correctly", func() { 91 err := nullByteSize.UnmarshalJSON([]byte("42")) 92 Expect(err).ToNot(HaveOccurred()) 93 Expect(nullByteSize).To(Equal(NullByteSizeInMb{Value: 42, IsSet: true})) 94 }) 95 }) 96 97 When("empty json is provided", func() { 98 It("returns an unset NullUint64", func() { 99 err := nullByteSize.UnmarshalJSON([]byte(`""`)) 100 Expect(err).ToNot(HaveOccurred()) 101 Expect(nullByteSize).To(Equal(NullByteSizeInMb{Value: 0, IsSet: false})) 102 }) 103 }) 104 }) 105 })