github.com/cloudfoundry/cli@v7.1.0+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 IsSet: true, 15 Value: 0xBAD, 16 } 17 }) 18 19 Describe("String", func() { 20 When("a NullByteSize value is not set", func() { 21 It("returns an empty string", func() { 22 nullByteSize.IsSet = false 23 returnedString := nullByteSize.String() 24 Expect(returnedString).To(Equal("")) 25 }) 26 }) 27 28 When("a NullByteSize value is set", func() { 29 When("NullByteSize value is in megabytes", func() { 30 It("returns a formatted byte size", func() { 31 nullByteSize.IsSet = true 32 nullByteSize.Value = 1024 33 returnedString := nullByteSize.String() 34 Expect(returnedString).To(Equal("1G")) 35 }) 36 }) 37 }) 38 }) 39 40 Describe("ParseStringValue", func() { 41 When("the empty string is provided", func() { 42 It("sets IsSet to false", func() { 43 err := nullByteSize.ParseStringValue("") 44 Expect(err).ToNot(HaveOccurred()) 45 Expect(nullByteSize).To(Equal(NullByteSizeInMb{Value: 0, IsSet: false})) 46 }) 47 }) 48 49 When("an invalid byte size is provided", func() { 50 It("returns an error", func() { 51 err := nullByteSize.ParseStringValue("abcdef") 52 Expect(err).To(HaveOccurred()) 53 }) 54 }) 55 56 When("a unit size is not provided", func() { 57 It("returns an error", func() { 58 err := nullByteSize.ParseStringValue("1") 59 Expect(err).To(HaveOccurred()) 60 }) 61 }) 62 63 When("a valid byte size is provided", func() { 64 It("stores the integer and sets IsSet to true", func() { 65 err := nullByteSize.ParseStringValue("1G") 66 Expect(err).ToNot(HaveOccurred()) 67 Expect(nullByteSize).To(Equal(NullByteSizeInMb{Value: 1024, IsSet: true})) 68 }) 69 }) 70 }) 71 72 Describe("ParseUint64Value", func() { 73 When("nil is provided", func() { 74 It("sets IsSet to false", func() { 75 nullByteSize.ParseUint64Value(nil) 76 Expect(nullByteSize).To(Equal(NullByteSizeInMb{Value: 0, IsSet: false})) 77 }) 78 }) 79 80 When("non-nil pointer is provided", func() { 81 It("sets IsSet to true and Value to provided value", func() { 82 n := uint64(5) 83 nullByteSize.ParseUint64Value(&n) 84 Expect(nullByteSize).To(Equal(NullByteSizeInMb{Value: 5, IsSet: true})) 85 }) 86 }) 87 }) 88 89 Describe("UnmarshalJSON", func() { 90 When("integer value is provided", func() { 91 It("parses JSON number correctly", func() { 92 err := nullByteSize.UnmarshalJSON([]byte("42")) 93 Expect(err).ToNot(HaveOccurred()) 94 Expect(nullByteSize).To(Equal(NullByteSizeInMb{Value: 42, IsSet: true})) 95 }) 96 }) 97 98 When("a null value is provided", func() { 99 It("returns an unset NullByteSizeInMb", func() { 100 err := nullByteSize.UnmarshalJSON([]byte("null")) 101 Expect(err).ToNot(HaveOccurred()) 102 Expect(nullByteSize).To(Equal(NullByteSizeInMb{Value: 0, IsSet: false})) 103 }) 104 }) 105 106 When("empty string is provided", func() { 107 It("returns an unset NullByteSizeInMb", func() { 108 err := nullByteSize.UnmarshalJSON([]byte("")) 109 Expect(err).ToNot(HaveOccurred()) 110 Expect(nullByteSize).To(Equal(NullByteSizeInMb{Value: 0, IsSet: false})) 111 }) 112 }) 113 }) 114 })