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