github.com/randomtask1155/cli@v6.41.1-0.20181227003417-a98eed78cbde+incompatible/util/checksum_test.go (about) 1 package util_test 2 3 import ( 4 "fmt" 5 "io/ioutil" 6 "os" 7 8 . "code.cloudfoundry.org/cli/util" 9 10 . "github.com/onsi/ginkgo" 11 . "github.com/onsi/gomega" 12 ) 13 14 var _ = Describe("Sha1Checksum", func() { 15 16 var ( 17 checksum Sha1Checksum 18 ) 19 20 Describe("CheckSha1", func() { 21 Context("file doesn't exist", func() { 22 It("returns false", func() { 23 checksum = NewSha1Checksum("file/path/to/no/where") 24 25 sha1, err := checksum.ComputeFileSha1() 26 Expect(len(sha1)).To(Equal(0)) 27 Expect(err).To(HaveOccurred()) 28 }) 29 }) 30 31 Context("If file does exist", func() { 32 var ( 33 f *os.File 34 err error 35 ) 36 37 BeforeEach(func() { 38 f, err = ioutil.TempFile("", "sha1_test_") 39 Expect(err).NotTo(HaveOccurred()) 40 defer f.Close() 41 f.Write([]byte("abc")) 42 }) 43 44 AfterEach(func() { 45 os.RemoveAll(f.Name()) 46 }) 47 48 It("returns false if sha1 doesn't match", func() { 49 checksum = NewSha1Checksum(f.Name()) 50 51 Expect(checksum.CheckSha1("skj33933dabs2292391223aa393fjs92")).To(BeFalse()) 52 }) 53 54 It("returns true if sha1 matches", func() { 55 checksum = NewSha1Checksum(f.Name()) 56 57 Expect(checksum.CheckSha1("a9993e364706816aba3e25717850c26c9cd0d89d")).To(BeTrue()) 58 }) 59 }) 60 61 }) 62 63 Describe("ComputeFileSha1", func() { 64 Context("If file does not exist", func() { 65 It("returns error", func() { 66 checksum = NewSha1Checksum("file/path/to/no/where") 67 68 sha1, err := checksum.ComputeFileSha1() 69 Expect(len(sha1)).To(Equal(0)) 70 Expect(err).To(HaveOccurred()) 71 }) 72 }) 73 74 Context("If file does exist", func() { 75 var ( 76 f *os.File 77 err error 78 ) 79 80 BeforeEach(func() { 81 f, err = ioutil.TempFile("", "sha1_test_") 82 Expect(err).NotTo(HaveOccurred()) 83 defer f.Close() 84 f.Write([]byte("abc")) 85 }) 86 87 AfterEach(func() { 88 os.RemoveAll(f.Name()) 89 }) 90 91 It("returns the sha1 of a file", func() { 92 checksum = NewSha1Checksum(f.Name()) 93 94 sha1, err := checksum.ComputeFileSha1() 95 Expect(err).NotTo(HaveOccurred()) 96 Expect(len(sha1)).To(Equal(20)) 97 Expect(fmt.Sprintf("%x", sha1)).To(Equal("a9993e364706816aba3e25717850c26c9cd0d89d")) 98 }) 99 }) 100 101 }) 102 })